1.5700463269355215718L, CHOOSE(2e-19L, 0, 0));
1.5700463269355215718L, CHOOSE(2e-19L, 0, 1.2e-7));
atan2_test (void){  MATHTYPE x;  x = random_greater (0);  check ("atan2 (0,x) == 0 for x > 0",	 FUNC(atan2) (0, x), 0);  x = random_greater (0);  check ("atan2 (-0,x) == -0 for x > 0",	 FUNC(atan2) (minus_zero, x), minus_zero);  check ("atan2 (+0,+0) == +0", FUNC(atan2) (0, 0), 0);  check ("atan2 (-0,+0) == -0", FUNC(atan2) (minus_zero, 0), minus_zero);  x = -random_greater (0);  check ("atan2 (+0,x) == +pi for x < 0", FUNC(atan2) (0, x), M_PIl);  x = -random_greater (0);  check ("atan2 (-0,x) == -pi for x < 0", FUNC(atan2) (minus_zero, x), -M_PIl);  check ("atan2 (+0,-0) == +pi", FUNC(atan2) (0, minus_zero), M_PIl);  check ("atan2 (-0,-0) == -pi", FUNC(atan2) (minus_zero, minus_zero), -M_PIl);  x = random_greater (0);  check ("atan2 (y,+0) == pi/2 for y > 0", FUNC(atan2) (x, 0), M_PI_2l);  x = random_greater (0);  check ("atan2 (y,-0) == pi/2 for y > 0", FUNC(atan2) (x, minus_zero),	 M_PI_2l);  x = random_less (0);  check ("atan2 (y,+0) == -pi/2 for y < 0", FUNC(atan2) (x, 0), -M_PI_2l);  x = random_less (0);  check ("atan2 (y,-0) == -pi/2 for y < 0", FUNC(atan2) (x, minus_zero),	 -M_PI_2l);  x = random_greater (0);  check ("atan2 (y,inf) == +0 for finite y > 0",	 FUNC(atan2) (x, plus_infty), 0);  x = -random_greater (0);  check ("atan2 (y,inf) == -0 for finite y < 0",	 FUNC(atan2) (x, plus_infty), minus_zero);  x = random_value (-1e4, 1e4);  check ("atan2(+inf, x) == pi/2 for finite x",         FUNC(atan2) (plus_infty, x), M_PI_2l);  x = random_value (-1e4, 1e4);  check ("atan2(-inf, x) == -pi/2 for finite x",         FUNC(atan2) (minus_infty, x), -M_PI_2l);  x = random_greater (0);  check ("atan2 (y,-inf) == +pi for finite y > 0",	 FUNC(atan2) (x, minus_infty), M_PIl);  x = -random_greater (0);  check ("atan2 (y,-inf) == -pi for finite y < 0",	 FUNC(atan2) (x, minus_infty), -M_PIl);  check ("atan2 (+inf,+inf) == +pi/4",	 FUNC(atan2) (plus_infty, plus_infty), M_PI_4l);  check ("atan2 (-inf,+inf) == -pi/4",	 FUNC(atan2) (minus_infty, plus_infty), -M_PI_4l);  check ("atan2 (+inf,-inf) == +3*pi/4",	 FUNC(atan2) (plus_infty, minus_infty), 3 * M_PI_4l);  check ("atan2 (-inf,-inf) == -3*pi/4",	 FUNC(atan2) (minus_infty, minus_infty), -3 * M_PI_4l);  /* FIXME: Add some specific tests */  check_eps ("atan2 (0.7,1) == 0.61072...", FUNC(atan2) (0.7,1),	     0.6107259643892086165L, CHOOSE(3e-17L, 0, 0));  check_eps ("atan2 (0.4,0.0003) == 1.57004...", FUNC(atan2) (0.4, 0.0003),	     1.5700463269355215718L, CHOOSE(2e-19L, 0, 0));}