atan2
#define DIR_FROM_DXDY(dx,dy) ((int) (atan2((double)(dy), (double)(dx)) \
angle = atan2(dy, dx);
b->angle = atan2(dy, dx);
anglefactor = atan2(dy, dx) - b->angle;
double atan2(double, double);
#define atan2(x, y) __tg_simple2(x, y, atan2)
PROTO_NORMAL(atan2);
DEF_STD(atan2);
LDBL_MAYBE_CLONE(atan2);
return atan2 (__imag__ z, __real__ z);
t = 0.5 * atan2 (2.0 * x, a);
rr = atan2 (cimag (z), creal (z));
double atan2 (double, double);
{"atan2", atan2, &ZERO, &ONE, &ZERO, 0},
{"atan2", atan2, &MZERO, &ONE, &MZERO, 0},
{"atan2", atan2, &ZERO, &ZERO, &ZERO, 0},
{"atan2", atan2, &MZERO, &ZERO, &MZERO, 0},
{"atan2", atan2, &ZERO, &MONE, &PI, 0},
{"atan2", atan2, &MZERO, &MONE, &MPI, 0},
{"atan2", atan2, &ZERO, &MZERO, &PI, 0},
{"atan2", atan2, &MZERO, &MZERO, &MPI, 0},
{"atan2", atan2, &ONE, &ZERO, &PIO2, 0},
{"atan2", atan2, &ONE, &MZERO, &PIO2, 0},
{"atan2", atan2, &MONE, &ZERO, &MPIO2, 0},
{"atan2", atan2, &MONE, &MZERO, &MPIO2, 0},
{"atan2", atan2, &ONE, &INF, &ZERO, 0},
{"atan2", atan2, &MONE, &INF, &MZERO, 0},
{"atan2", atan2, &INF, &ONE, &PIO2, 0},
{"atan2", atan2, &INF, &MONE, &PIO2, 0},
{"atan2", atan2, &MINF, &ONE, &MPIO2, 0},
{"atan2", atan2, &MINF, &MONE, &MPIO2, 0},
{"atan2", atan2, &ONE, &MINF, &PI, 0},
{"atan2", atan2, &MONE, &MINF, &MPI, 0},
{"atan2", atan2, &INF, &INF, &PIO4, 0},
{"atan2", atan2, &MINF, &INF, &MPIO4, 0},
{"atan2", atan2, &INF, &MINF, &THPIO4, 0},
{"atan2", atan2, &MINF, &MINF, &MTHPIO4, 0},
{"atan2", atan2, &ONE, &ONE, &PIO4, 0},
{"atan2", atan2, &NAN, &ONE, &NAN, 0},
{"atan2", atan2, &ONE, &NAN, &NAN, 0},
{"atan2", atan2, &NAN, &NAN, &NAN, 0},
testall2(atan2, 0.0, -0.0, pi, FE_INEXACT);
testall2(atan2, -0.0, -0.0, -pi, FE_INEXACT);
testall2(atan2, 0.0, 0.0, 0.0, 0);
testall2(atan2, -0.0, 0.0, -0.0, 0);
testall2(atan2, INFINITY, -INFINITY, c3pi / 4, FE_INEXACT);
testall2(atan2, -INFINITY, -INFINITY, -c3pi / 4, FE_INEXACT);
testall2(atan2, INFINITY, INFINITY, pi / 4, FE_INEXACT);
testall2(atan2, -INFINITY, INFINITY, -pi / 4, FE_INEXACT);
test2(atan2, 0.0, ldexp(z, e), 0.0, 0);
test2(atan2, -0.0, ldexp(z, e), -0.0, 0);
test2(atan2, 0.0, ldexp(-z, e), (double)pi, FE_INEXACT);
test2(atan2, -0.0, ldexp(-z, e), (double)-pi, FE_INEXACT);
test2(atan2, ldexp(z, e), 0.0, (double)pi / 2, FE_INEXACT);
test2(atan2, ldexp(z, e), -0.0, (double)pi / 2, FE_INEXACT);
test2(atan2, ldexp(-z, e), 0.0, (double)-pi / 2, FE_INEXACT);
test2(atan2, ldexp(-z, e), -0.0, (double)-pi / 2, FE_INEXACT);
test2(atan2, ldexp(z, e), INFINITY, 0.0, 0);
test2(atan2, ldexp(-z,e), INFINITY, -0.0, 0);
test2(atan2, ldexp(z, e), -INFINITY, (double)pi, FE_INEXACT);
test2(atan2, ldexp(-z,e), -INFINITY, (double)-pi, FE_INEXACT);
test2(atan2, INFINITY, ldexp(z,e), (double)pi/2, FE_INEXACT);
test2(atan2, INFINITY, ldexp(-z,e), (double)pi/2, FE_INEXACT);
test2(atan2, -INFINITY, ldexp(z,e), (double)-pi/2,FE_INEXACT);
test2(atan2, -INFINITY, ldexp(-z,e),(double)-pi/2,FE_INEXACT);
testall2(atan2, 1.0, 1.0, pi / 4, FE_INEXACT);
testall2(atan2, 1.0, -1.0, c3pi / 4, FE_INEXACT);
testall2(atan2, -1.0, 1.0, -pi / 4, FE_INEXACT);
testall2(atan2, -1.0, -1.0, -c3pi / 4, FE_INEXACT);
testall2_tol(atan2, sqrt2m1 * 2, 2.0, pi / 8, 1, FE_INEXACT);
testall2_tol(atan2, sqrt2m1 * 2, -2.0, c7pi / 8, 1, FE_INEXACT);
testall2_tol(atan2, -sqrt2m1 * 2, 2.0, -pi / 8, 1, FE_INEXACT);
testall2_tol(atan2, -sqrt2m1 * 2, -2.0, -c7pi / 8, 1, FE_INEXACT);
testall2_tol(atan2, sqrtl(3) * 0.5, 0.5, pio3, 1, FE_INEXACT);
testall2_tol(atan2, sqrtl(3) * 0.5, -0.5, pio3 * 2, 1, FE_INEXACT);
testall2_tol(atan2, -sqrtl(3) * 0.5, 0.5, -pio3, 1, FE_INEXACT);
testall2_tol(atan2, -sqrtl(3) * 0.5, -0.5, -pio3 * 2, 1, FE_INEXACT);
test2(atan2, 0x1.0p-1000, 0x1.0p1000, 0.0, FE_INEXACT | FE_UNDERFLOW);
test2(atan2, -0x1.0p-1000, 0x1.0p1000, -0.0, FE_INEXACT | FE_UNDERFLOW);
test2(atan2, 0x1.0p-1000, -0x1.0p1000, (double)pi, FE_INEXACT);
test2(atan2, -0x1.0p-1000, -0x1.0p1000, (double)-pi, FE_INEXACT);
test2(atan2, 0x1.0p1000, 0x1.0p-1000, (double)pi / 2, FE_INEXACT);
test2(atan2, -0x1.0p1000, 0x1.0p-1000, (double)-pi / 2, FE_INEXACT);
test2(atan2, 0x1.0p1000, -0x1.0p-1000, (double)pi / 2, FE_INEXACT);
test2(atan2, -0x1.0p1000, -0x1.0p-1000, (double)-pi / 2, FE_INEXACT);
u = atan2(getfval(x), getfval(y));