1 #include <stdio.h> 2 #include <math.h> 3 #include <float.h> 4 5 extern double _pi; 6 extern double _halfpi; 7 8 /* arc tangent of y/x */ atan2(y,x)9double atan2(y,x) 10 double x, y ; 11 { 12 double a; 13 14 if (fabs(x) >= fabs(y)) { 15 a = atan(y/x) ; 16 if (x < 0.0) { 17 if (y >= 0.0) a += _pi ; 18 else a -= _pi ; 19 } 20 } 21 else { 22 a = -atan(x/y) ; 23 if (y < 0.0) a -= _halfpi ; 24 else a += _halfpi ; 25 } 26 return a ; 27 } 28