atan
#define atan(x) __tg_full(x, atan)
return (CMPLX(x, atan(y)));
else z=atan(fabs(y/x)); /* safe to do y/x */
if(hx==0x3ff00000&&lx==0) return atan(y); /* x=1.0 */
double atan(double);
__weak_reference(atan, atanl);
testall_tol(catan, z, CMPLXL(atan(nums[i]), 0), 1);
testall(atan, 0.0, 0.0, 0);
testall(atan, -0.0, -0.0, 0);
testall(atan, INFINITY, pi / 2, FE_INEXACT);
testall(atan, -INFINITY, -pi / 2, FE_INEXACT);
testall(atan, NAN, NAN, 0);
testall(atan, 1.0, pi / 4, FE_INEXACT);
testall(atan, -1.0, -pi / 4, FE_INEXACT);
testall_tol(atan, sqrtl(3), pio3, 1, FE_INEXACT);
testall_tol(atan, -sqrtl(3), -pio3, 1, FE_INEXACT);
testall_tol(atan, sqrt2m1, pi / 8, 1, FE_INEXACT);
testall_tol(atan, -sqrt2m1, -pi / 8, 1, FE_INEXACT);
testall(atan, tiny, tiny, FE_INEXACT);
testall(atan, -tiny, -tiny, FE_INEXACT);
testall(atan, huge, pi / 2, FE_INEXACT);
testall(atan, -huge, -pi / 2, FE_INEXACT);
return (tanl(atan(x)));
PASS_REAL_ARG_REAL_RET(atan) &&
PASS_COMPLEX_ARG_COMPLEX_RET(atan));
TGMACRO(atan)
#define ATAN(x) (R2D(atan(x)))