nextafter
double nextafter(double, double);
#define nextafter(a,b) __TG_FN2(nextafter, (a), (b))
return (nextafter(z, 0));
return (nextafter(z, -INFINITY));
return (nextafter(z, INFINITY));
__strong_alias(nextafterl, nextafter)
__strong_alias(nexttoward, nextafter)
__strong_alias(nexttowardl, nextafter)
nextafter(double x, double y)
DFUNC_DBL_DBL(nextafter)
CHECK(i, nextafter, -x[i], -x[i + 1], -x[i + 1]);
CHECK(i, nextafter, -x[i], -x[n - 1], -x[i + 1]);
CHECK(i, nextafter, -x[i], -INFINITY, -x[i + 1]);
CHECK(i, nextafter, x[i], x[i - 1], x[i - 1]);
CHECK(i, nextafter, x[i], x[0], x[i - 1]);
CHECK(i, nextafter, x[i], +0., x[i - 1]);
CHECK(i, nextafter, x[i], -0., x[i - 1]);
CHECK(i, nextafter, x[i], -x[0], x[i - 1]);
CHECK(i, nextafter, x[i], -x[i], x[i - 1]);
CHECK(i, nextafter, x[i], -INFINITY, x[i - 1]);
CHECK(i, nextafter, -x[i], -x[i - 1], -x[i - 1]);
CHECK(i, nextafter, -x[i], -x[0], -x[i - 1]);
CHECK(i, nextafter, -x[i], -0., -x[i - 1]);
CHECK(i, nextafter, -x[i], +0., -x[i - 1]);
CHECK(i, nextafter, -x[i], x[0], -x[i - 1]);
CHECK(i, nextafter, -x[i], INFINITY, -x[i - 1]);
ATF_CHECK(isnan(nextafter(NAN, 0)));
ATF_CHECK(isnan(nextafter(0, NAN)));
CHECK(0, nextafter, z_neg, +INFINITY, m);
CHECK(2, nextafter, z_pos, +INFINITY, m);
CHECK(4, nextafter, z_pos, -INFINITY, -m);
CHECK(6, nextafter, z_neg, -INFINITY, -m);
CHECK(8, nextafter, -m, +INFINITY, 0);
ATF_CHECK(signbit(nextafter(-m, +INFINITY)) != 0);
CHECK(10, nextafter, m, -INFINITY, 0);
ATF_CHECK(signbit(nextafter(m, -INFINITY)) == 0);
ATF_CHECK_EQ_MSG((t = nextafter(INFINITY, INFINITY)), INFINITY,
ATF_CHECK_EQ_MSG((t = nextafter(-INFINITY, -INFINITY)), -INFINITY,
CHECK(i, nextafter, x[i], x[i], x[i]);
CHECK(i, nextafter, -x[i], -x[i], -x[i]);
CHECK(i, nextafter, x[i], x[i + 1], x[i + 1]);
CHECK(i, nextafter, x[i], x[n - 1], x[i + 1]);
CHECK(i, nextafter, x[i], INFINITY, x[i + 1]);
TEST(nextafter(1.0e-14, 1.0));