Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1.  
  2. /* @(#)w_atan2.c 5.1 93/09/24 */
  3. /*
  4.  * ====================================================
  5.  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
  6.  *
  7.  * Developed at SunPro, a Sun Microsystems, Inc. business.
  8.  * Permission to use, copy, modify, and distribute this
  9.  * software is freely granted, provided that this notice
  10.  * is preserved.
  11.  * ====================================================
  12.  *
  13.  */
  14.  
  15. /*
  16. FUNCTION
  17.         <<atan2>>, <<atan2f>>---arc tangent of y/x
  18.  
  19. INDEX
  20.    atan2
  21. INDEX
  22.    atan2f
  23.  
  24. ANSI_SYNOPSIS
  25.         #include <math.h>
  26.         double atan2(double <[y]>,double <[x]>);
  27.         float atan2f(float <[y]>,float <[x]>);
  28.  
  29. TRAD_SYNOPSIS
  30.         #include <math.h>
  31.         double atan2(<[y]>,<[x]>);
  32.         double <[y]>;
  33.         double <[x]>;
  34.  
  35.         float atan2f(<[y]>,<[x]>);
  36.         float <[y]>;
  37.         float <[x]>;
  38.  
  39. DESCRIPTION
  40.  
  41. <<atan2>> computes the inverse tangent (arc tangent) of <[y]>/<[x]>.
  42. <<atan2>> produces the correct result even for angles near
  43. @ifnottex
  44. pi/2 or -pi/2
  45. @end ifnottex
  46. @tex
  47. $\pi/2$ or $-\pi/2$
  48. @end tex
  49. (that is, when <[x]> is near 0).
  50.  
  51. <<atan2f>> is identical to <<atan2>>, save that it takes and returns
  52. <<float>>.
  53.  
  54. RETURNS
  55. <<atan2>> and <<atan2f>> return a value in radians, in the range of
  56. @ifnottex
  57. -pi to pi.
  58. @end ifnottex
  59. @tex
  60. $-\pi$ to $\pi$.
  61. @end tex
  62.  
  63. You can modify error handling for these functions using <<matherr>>.
  64.  
  65. PORTABILITY
  66. <<atan2>> is ANSI C.  <<atan2f>> is an extension.
  67.  
  68.  
  69. */
  70.  
  71. /*
  72.  * wrapper atan2(y,x)
  73.  */
  74.  
  75. #include "fdlibm.h"
  76. #include <errno.h>
  77.  
  78. #ifndef _DOUBLE_IS_32BITS
  79.  
  80. #ifdef __STDC__
  81.         double atan2(double y, double x)        /* wrapper atan2 */
  82. #else
  83.         double atan2(y,x)                       /* wrapper atan2 */
  84.         double y,x;
  85. #endif
  86. {
  87.         return __ieee754_atan2(y,x);
  88. }
  89.  
  90. #endif /* defined(_DOUBLE_IS_32BITS) */
  91.