aboutsummaryrefslogtreecommitdiff
path: root/math
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2013-05-17 14:45:50 +0000
committerJoseph Myers <joseph@codesourcery.com>2013-05-17 14:45:50 +0000
commit8269107fe654ac2bb286c97ff874407ffc920d1f (patch)
tree21846ea8672ed9c99af5406292e5ef31898a032e /math
parent48a18de1e1e7dfeab6d034765caaf732b53cfcb7 (diff)
downloadglibc-8269107fe654ac2bb286c97ff874407ffc920d1f.tar.xz
glibc-8269107fe654ac2bb286c97ff874407ffc920d1f.zip
Test more cases of "inexact" exceptions in libm-test.inc.
Diffstat (limited to 'math')
-rw-r--r--math/libm-test.inc2251
1 files changed, 1132 insertions, 1119 deletions
diff --git a/math/libm-test.inc b/math/libm-test.inc
index 379aa2c6c2..f5fabd327c 100644
--- a/math/libm-test.inc
+++ b/math/libm-test.inc
@@ -5953,12 +5953,13 @@ ccosh_test (void)
static const struct test_f_f_data ceil_test_data[] =
{
START_DATA (ceil),
- TEST_f_f (ceil, 0.0, 0.0),
- TEST_f_f (ceil, minus_zero, minus_zero),
- TEST_f_f (ceil, plus_infty, plus_infty),
- TEST_f_f (ceil, minus_infty, minus_infty),
- TEST_f_f (ceil, qnan_value, qnan_value),
+ TEST_f_f (ceil, 0.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (ceil, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_f_f (ceil, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_f_f (ceil, minus_infty, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_f_f (ceil, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ /* Bug 15479: spurious "inexact" exception may occur. */
TEST_f_f (ceil, M_PIl, 4.0),
TEST_f_f (ceil, -M_PIl, -3.0),
TEST_f_f (ceil, 0.1, 1.0),
@@ -6162,13 +6163,13 @@ cexp_test (void)
static const struct test_c_f_data cimag_test_data[] =
{
START_DATA (cimag);
- TEST_c_f (cimag, 1.0, 0.0, 0.0),
- TEST_c_f (cimag, 1.0, minus_zero, minus_zero),
- TEST_c_f (cimag, 1.0, qnan_value, qnan_value),
- TEST_c_f (cimag, qnan_value, qnan_value, qnan_value),
- TEST_c_f (cimag, 1.0, plus_infty, plus_infty),
- TEST_c_f (cimag, 1.0, minus_infty, minus_infty),
- TEST_c_f (cimag, 2.0, 3.0, 3.0),
+ TEST_c_f (cimag, 1.0, 0.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_f (cimag, 1.0, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_c_f (cimag, 1.0, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_c_f (cimag, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_c_f (cimag, 1.0, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_c_f (cimag, 1.0, minus_infty, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_c_f (cimag, 2.0, 3.0, 3.0, NO_INEXACT_EXCEPTION),
END_DATA (cimag);
};
@@ -6622,13 +6623,13 @@ clog10_test (void)
static const struct test_c_c_data conj_test_data[] =
{
START_DATA (conj),
- TEST_c_c (conj, 0.0, 0.0, 0.0, minus_zero),
- TEST_c_c (conj, 0.0, minus_zero, 0.0, 0.0),
- TEST_c_c (conj, qnan_value, qnan_value, qnan_value, qnan_value),
- TEST_c_c (conj, plus_infty, minus_infty, plus_infty, plus_infty),
- TEST_c_c (conj, plus_infty, plus_infty, plus_infty, minus_infty),
- TEST_c_c (conj, 1.0, 2.0, 1.0, -2.0),
- TEST_c_c (conj, 3.0, -4.0, 3.0, 4.0),
+ TEST_c_c (conj, 0.0, 0.0, 0.0, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_c_c (conj, 0.0, minus_zero, 0.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (conj, qnan_value, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_c_c (conj, plus_infty, minus_infty, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_c_c (conj, plus_infty, plus_infty, plus_infty, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_c_c (conj, 1.0, 2.0, 1.0, -2.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (conj, 3.0, -4.0, 3.0, 4.0, NO_INEXACT_EXCEPTION),
END_DATA (conj)
};
@@ -6644,26 +6645,26 @@ conj_test (void)
static const struct test_ff_f_data copysign_test_data[] =
{
START_DATA (copysign),
- TEST_ff_f (copysign, 0, 4, 0),
- TEST_ff_f (copysign, 0, -4, minus_zero),
- TEST_ff_f (copysign, minus_zero, 4, 0),
- TEST_ff_f (copysign, minus_zero, -4, minus_zero),
+ TEST_ff_f (copysign, 0, 4, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, 0, -4, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, minus_zero, 4, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, minus_zero, -4, minus_zero, NO_INEXACT_EXCEPTION),
- TEST_ff_f (copysign, plus_infty, 0, plus_infty),
- TEST_ff_f (copysign, plus_infty, minus_zero, minus_infty),
- TEST_ff_f (copysign, minus_infty, 0, plus_infty),
- TEST_ff_f (copysign, minus_infty, minus_zero, minus_infty),
+ TEST_ff_f (copysign, plus_infty, 0, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, plus_infty, minus_zero, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, minus_infty, 0, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, minus_infty, minus_zero, minus_infty, NO_INEXACT_EXCEPTION),
- TEST_ff_f (copysign, 0, plus_infty, 0),
- TEST_ff_f (copysign, 0, minus_zero, minus_zero),
- TEST_ff_f (copysign, minus_zero, plus_infty, 0),
- TEST_ff_f (copysign, minus_zero, minus_zero, minus_zero),
+ TEST_ff_f (copysign, 0, plus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, 0, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, minus_zero, plus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, minus_zero, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
/* XXX More correctly we would have to check the sign of the NaN. */
- TEST_ff_f (copysign, qnan_value, 0, qnan_value),
- TEST_ff_f (copysign, qnan_value, minus_zero, qnan_value),
- TEST_ff_f (copysign, -qnan_value, 0, qnan_value),
- TEST_ff_f (copysign, -qnan_value, minus_zero, qnan_value),
+ TEST_ff_f (copysign, qnan_value, 0, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, qnan_value, minus_zero, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, -qnan_value, 0, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, -qnan_value, minus_zero, qnan_value, NO_INEXACT_EXCEPTION),
END_DATA (copysign)
};
@@ -6983,20 +6984,20 @@ cpow_test (void)
static const struct test_c_c_data cproj_test_data[] =
{
START_DATA (cproj),
- TEST_c_c (cproj, 0.0, 0.0, 0.0, 0.0),
- TEST_c_c (cproj, minus_zero, minus_zero, minus_zero, minus_zero),
- TEST_c_c (cproj, 0.0, minus_zero, 0.0, minus_zero),
- TEST_c_c (cproj, minus_zero, 0.0, minus_zero, 0.0),
+ TEST_c_c (cproj, 0.0, 0.0, 0.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, minus_zero, minus_zero, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, 0.0, minus_zero, 0.0, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, minus_zero, 0.0, minus_zero, 0.0, NO_INEXACT_EXCEPTION),
- TEST_c_c (cproj, qnan_value, qnan_value, qnan_value, qnan_value),
+ TEST_c_c (cproj, qnan_value, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
- TEST_c_c (cproj, plus_infty, plus_infty, plus_infty, 0.0),
- TEST_c_c (cproj, plus_infty, minus_infty, plus_infty, minus_zero),
- TEST_c_c (cproj, minus_infty, plus_infty, plus_infty, 0.0),
- TEST_c_c (cproj, minus_infty, minus_infty, plus_infty, minus_zero),
+ TEST_c_c (cproj, plus_infty, plus_infty, plus_infty, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, plus_infty, minus_infty, plus_infty, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, minus_infty, plus_infty, plus_infty, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, minus_infty, minus_infty, plus_infty, minus_zero, NO_INEXACT_EXCEPTION),
- TEST_c_c (cproj, 1.0, 0.0, 1.0, 0.0),
- TEST_c_c (cproj, 2.0, 3.0, 2.0, 3.0),
+ TEST_c_c (cproj, 1.0, 0.0, 1.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, 2.0, 3.0, 2.0, 3.0, NO_INEXACT_EXCEPTION),
END_DATA (cproj)
};
@@ -7012,13 +7013,13 @@ cproj_test (void)
static const struct test_c_f_data creal_test_data[] =
{
START_DATA (creal);
- TEST_c_f (creal, 0.0, 1.0, 0.0),
- TEST_c_f (creal, minus_zero, 1.0, minus_zero),
- TEST_c_f (creal, qnan_value, 1.0, qnan_value),
- TEST_c_f (creal, qnan_value, qnan_value, qnan_value),
- TEST_c_f (creal, plus_infty, 1.0, plus_infty),
- TEST_c_f (creal, minus_infty, 1.0, minus_infty),
- TEST_c_f (creal, 2.0, 3.0, 2.0),
+ TEST_c_f (creal, 0.0, 1.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_f (creal, minus_zero, 1.0, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_c_f (creal, qnan_value, 1.0, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_c_f (creal, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_c_f (creal, plus_infty, 1.0, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_c_f (creal, minus_infty, 1.0, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_c_f (creal, 2.0, 3.0, 2.0, NO_INEXACT_EXCEPTION),
END_DATA (creal);
};
@@ -8047,15 +8048,15 @@ expm1_test (void)
static const struct test_f_f_data fabs_test_data[] =
{
START_DATA (fabs),
- TEST_f_f (fabs, 0, 0),
- TEST_f_f (fabs, minus_zero, 0),
+ TEST_f_f (fabs, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (fabs, minus_zero, 0, NO_INEXACT_EXCEPTION),
- TEST_f_f (fabs, plus_infty, plus_infty),
- TEST_f_f (fabs, minus_infty, plus_infty),
- TEST_f_f (fabs, qnan_value, qnan_value),
+ TEST_f_f (fabs, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_f_f (fabs, minus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_f_f (fabs, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
- TEST_f_f (fabs, 38.0, 38.0),
- TEST_f_f (fabs, -M_El, M_El),
+ TEST_f_f (fabs, 38.0, 38.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (fabs, -M_El, M_El, NO_INEXACT_EXCEPTION),
END_DATA (fabs)
};
@@ -8071,33 +8072,33 @@ fabs_test (void)
static const struct test_ff_f_data fdim_test_data[] =
{
START_DATA (fdim),
- TEST_ff_f (fdim, 0, 0, 0),
- TEST_ff_f (fdim, 9, 0, 9),
- TEST_ff_f (fdim, 0, 9, 0),
- TEST_ff_f (fdim, -9, 0, 0),
- TEST_ff_f (fdim, 0, -9, 9),
-
- TEST_ff_f (fdim, plus_infty, 9, plus_infty),
- TEST_ff_f (fdim, plus_infty, -9, plus_infty),
- TEST_ff_f (fdim, minus_infty, 9, 0),
- TEST_ff_f (fdim, minus_infty, -9, 0),
- TEST_ff_f (fdim, 9, minus_infty, plus_infty),
- TEST_ff_f (fdim, -9, minus_infty, plus_infty),
- TEST_ff_f (fdim, 9, plus_infty, 0),
- TEST_ff_f (fdim, -9, plus_infty, 0),
-
- TEST_ff_f (fdim, 0, qnan_value, qnan_value),
- TEST_ff_f (fdim, 9, qnan_value, qnan_value),
- TEST_ff_f (fdim, -9, qnan_value, qnan_value),
- TEST_ff_f (fdim, qnan_value, 9, qnan_value),
- TEST_ff_f (fdim, qnan_value, -9, qnan_value),
- TEST_ff_f (fdim, plus_infty, qnan_value, qnan_value),
- TEST_ff_f (fdim, minus_infty, qnan_value, qnan_value),
- TEST_ff_f (fdim, qnan_value, plus_infty, qnan_value),
- TEST_ff_f (fdim, qnan_value, minus_infty, qnan_value),
- TEST_ff_f (fdim, qnan_value, qnan_value, qnan_value),
-
- TEST_ff_f (fdim, plus_infty, plus_infty, 0),
+ TEST_ff_f (fdim, 0, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, 9, 0, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, 0, 9, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, -9, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, 0, -9, 9, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (fdim, plus_infty, 9, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, plus_infty, -9, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, minus_infty, 9, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, minus_infty, -9, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, 9, minus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, -9, minus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, 9, plus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, -9, plus_infty, 0, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (fdim, 0, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, 9, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, -9, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, qnan_value, 9, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, qnan_value, -9, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, plus_infty, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, minus_infty, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, qnan_value, plus_infty, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, qnan_value, minus_infty, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (fdim, plus_infty, plus_infty, 0, NO_INEXACT_EXCEPTION),
END_DATA (fdim)
};
@@ -8113,13 +8114,13 @@ fdim_test (void)
static const struct test_f_i_data finite_test_data[] =
{
START_DATA (finite),
- TEST_f_b (finite, 0, 1),
- TEST_f_b (finite, minus_zero, 1),
- TEST_f_b (finite, 10, 1),
- TEST_f_b (finite, min_subnorm_value, 1),
- TEST_f_b (finite, plus_infty, 0),
- TEST_f_b (finite, minus_infty, 0),
- TEST_f_b (finite, qnan_value, 0),
+ TEST_f_b (finite, 0, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_b (finite, minus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_b (finite, 10, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_b (finite, min_subnorm_value, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_b (finite, plus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (finite, minus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (finite, qnan_value, 0, NO_INEXACT_EXCEPTION),
END_DATA (finite)
};
@@ -8135,12 +8136,13 @@ finite_test (void)
static const struct test_f_f_data floor_test_data[] =
{
START_DATA (floor),
- TEST_f_f (floor, 0.0, 0.0),
- TEST_f_f (floor, minus_zero, minus_zero),
- TEST_f_f (floor, plus_infty, plus_infty),
- TEST_f_f (floor, minus_infty, minus_infty),
- TEST_f_f (floor, qnan_value, qnan_value),
+ TEST_f_f (floor, 0.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (floor, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_f_f (floor, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_f_f (floor, minus_infty, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_f_f (floor, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ /* Bug 15479: spurious "inexact" exception may occur. */
TEST_f_f (floor, M_PIl, 3.0),
TEST_f_f (floor, -M_PIl, -4.0),
@@ -9186,34 +9188,34 @@ fma_test_upward (void)
static const struct test_ff_f_data fmax_test_data[] =
{
START_DATA (fmax),
- TEST_ff_f (fmax, 0, 0, 0),
- TEST_ff_f (fmax, minus_zero, minus_zero, minus_zero),
- TEST_ff_f (fmax, 9, 0, 9),
- TEST_ff_f (fmax, 0, 9, 9),
- TEST_ff_f (fmax, -9, 0, 0),
- TEST_ff_f (fmax, 0, -9, 0),
-
- TEST_ff_f (fmax, plus_infty, 9, plus_infty),
- TEST_ff_f (fmax, 0, plus_infty, plus_infty),
- TEST_ff_f (fmax, -9, plus_infty, plus_infty),
- TEST_ff_f (fmax, plus_infty, -9, plus_infty),
-
- TEST_ff_f (fmax, minus_infty, 9, 9),
- TEST_ff_f (fmax, minus_infty, -9, -9),
- TEST_ff_f (fmax, 9, minus_infty, 9),
- TEST_ff_f (fmax, -9, minus_infty, -9),
-
- TEST_ff_f (fmax, 0, qnan_value, 0),
- TEST_ff_f (fmax, 9, qnan_value, 9),
- TEST_ff_f (fmax, -9, qnan_value, -9),
- TEST_ff_f (fmax, qnan_value, 0, 0),
- TEST_ff_f (fmax, qnan_value, 9, 9),
- TEST_ff_f (fmax, qnan_value, -9, -9),
- TEST_ff_f (fmax, plus_infty, qnan_value, plus_infty),
- TEST_ff_f (fmax, minus_infty, qnan_value, minus_infty),
- TEST_ff_f (fmax, qnan_value, plus_infty, plus_infty),
- TEST_ff_f (fmax, qnan_value, minus_infty, minus_infty),
- TEST_ff_f (fmax, qnan_value, qnan_value, qnan_value),
+ TEST_ff_f (fmax, 0, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, minus_zero, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, 9, 0, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, 0, 9, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, -9, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, 0, -9, 0, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (fmax, plus_infty, 9, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, 0, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, -9, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, plus_infty, -9, plus_infty, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (fmax, minus_infty, 9, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, minus_infty, -9, -9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, 9, minus_infty, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, -9, minus_infty, -9, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (fmax, 0, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, 9, qnan_value, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, -9, qnan_value, -9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, qnan_value, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, qnan_value, 9, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, qnan_value, -9, -9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, plus_infty, qnan_value, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, minus_infty, qnan_value, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, qnan_value, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, qnan_value, minus_infty, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
END_DATA (fmax)
};
@@ -9229,33 +9231,33 @@ fmax_test (void)
static const struct test_ff_f_data fmin_test_data[] =
{
START_DATA (fmin),
- TEST_ff_f (fmin, 0, 0, 0),
- TEST_ff_f (fmin, minus_zero, minus_zero, minus_zero),
- TEST_ff_f (fmin, 9, 0, 0),
- TEST_ff_f (fmin, 0, 9, 0),
- TEST_ff_f (fmin, -9, 0, -9),
- TEST_ff_f (fmin, 0, -9, -9),
-
- TEST_ff_f (fmin, plus_infty, 9, 9),
- TEST_ff_f (fmin, 9, plus_infty, 9),
- TEST_ff_f (fmin, plus_infty, -9, -9),
- TEST_ff_f (fmin, -9, plus_infty, -9),
- TEST_ff_f (fmin, minus_infty, 9, minus_infty),
- TEST_ff_f (fmin, minus_infty, -9, minus_infty),
- TEST_ff_f (fmin, 9, minus_infty, minus_infty),
- TEST_ff_f (fmin, -9, minus_infty, minus_infty),
-
- TEST_ff_f (fmin, 0, qnan_value, 0),
- TEST_ff_f (fmin, 9, qnan_value, 9),
- TEST_ff_f (fmin, -9, qnan_value, -9),
- TEST_ff_f (fmin, qnan_value, 0, 0),
- TEST_ff_f (fmin, qnan_value, 9, 9),
- TEST_ff_f (fmin, qnan_value, -9, -9),
- TEST_ff_f (fmin, plus_infty, qnan_value, plus_infty),
- TEST_ff_f (fmin, minus_infty, qnan_value, minus_infty),
- TEST_ff_f (fmin, qnan_value, plus_infty, plus_infty),
- TEST_ff_f (fmin, qnan_value, minus_infty, minus_infty),
- TEST_ff_f (fmin, qnan_value, qnan_value, qnan_value),
+ TEST_ff_f (fmin, 0, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, minus_zero, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, 9, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, 0, 9, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, -9, 0, -9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, 0, -9, -9, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (fmin, plus_infty, 9, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, 9, plus_infty, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, plus_infty, -9, -9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, -9, plus_infty, -9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, minus_infty, 9, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, minus_infty, -9, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, 9, minus_infty, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, -9, minus_infty, minus_infty, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (fmin, 0, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, 9, qnan_value, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, -9, qnan_value, -9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, qnan_value, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, qnan_value, 9, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, qnan_value, -9, -9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, plus_infty, qnan_value, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, minus_infty, qnan_value, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, qnan_value, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, qnan_value, minus_infty, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
END_DATA (fmin)
};
@@ -9272,38 +9274,38 @@ static const struct test_ff_f_data fmod_test_data[] =
{
START_DATA (fmod),
/* fmod (+0, y) == +0 for y != 0. */
- TEST_ff_f (fmod, 0, 3, 0),
+ TEST_ff_f (fmod, 0, 3, 0, NO_INEXACT_EXCEPTION),
/* fmod (-0, y) == -0 for y != 0. */
- TEST_ff_f (fmod, minus_zero, 3, minus_zero),
+ TEST_ff_f (fmod, minus_zero, 3, minus_zero, NO_INEXACT_EXCEPTION),
/* fmod (+inf, y) == qNaN plus invalid exception. */
- TEST_ff_f (fmod, plus_infty, 3, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (fmod, plus_infty, 3, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
/* fmod (-inf, y) == qNaN plus invalid exception. */
- TEST_ff_f (fmod, minus_infty, 3, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (fmod, minus_infty, 3, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
/* fmod (x, +0) == qNaN plus invalid exception. */
- TEST_ff_f (fmod, 3, 0, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (fmod, 3, 0, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
/* fmod (x, -0) == qNaN plus invalid exception. */
- TEST_ff_f (fmod, 3, minus_zero, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (fmod, 3, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
/* fmod (x, +inf) == x for x not infinite. */
- TEST_ff_f (fmod, 3.0, plus_infty, 3.0),
+ TEST_ff_f (fmod, 3.0, plus_infty, 3.0, NO_INEXACT_EXCEPTION),
/* fmod (x, -inf) == x for x not infinite. */
- TEST_ff_f (fmod, 3.0, minus_infty, 3.0),
+ TEST_ff_f (fmod, 3.0, minus_infty, 3.0, NO_INEXACT_EXCEPTION),
- TEST_ff_f (fmod, qnan_value, qnan_value, qnan_value),
+ TEST_ff_f (fmod, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
- TEST_ff_f (fmod, 6.5, 2.25L, 2.0L),
- TEST_ff_f (fmod, -6.5, 2.25L, -2.0L),
- TEST_ff_f (fmod, 6.5, -2.25L, 2.0L),
- TEST_ff_f (fmod, -6.5, -2.25L, -2.0L),
+ TEST_ff_f (fmod, 6.5, 2.25L, 2.0L, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmod, -6.5, 2.25L, -2.0L, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmod, 6.5, -2.25L, 2.0L, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmod, -6.5, -2.25L, -2.0L, NO_INEXACT_EXCEPTION),
- TEST_ff_f (fmod, 0x0.fffffep-126L, 0x1p-149L, plus_zero),
+ TEST_ff_f (fmod, 0x0.fffffep-126L, 0x1p-149L, plus_zero, NO_INEXACT_EXCEPTION),
#ifndef TEST_FLOAT
- TEST_ff_f (fmod, 0x0.fffffffffffffp-1022L, 0x1p-1074L, plus_zero),
+ TEST_ff_f (fmod, 0x0.fffffffffffffp-1022L, 0x1p-1074L, plus_zero, NO_INEXACT_EXCEPTION),
#endif
#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
- TEST_ff_f (fmod, 0x0.fffffffffffffffep-16382L, 0x1p-16445L, plus_zero),
+ TEST_ff_f (fmod, 0x0.fffffffffffffffep-16382L, 0x1p-16445L, plus_zero, NO_INEXACT_EXCEPTION),
#endif
END_DATA (fmod)
};
@@ -9320,13 +9322,13 @@ fmod_test (void)
static const struct test_f_i_data fpclassify_test_data[] =
{
START_DATA (fpclassify),
- TEST_f_i (fpclassify, qnan_value, FP_NAN),
- TEST_f_i (fpclassify, plus_infty, FP_INFINITE),
- TEST_f_i (fpclassify, minus_infty, FP_INFINITE),
- TEST_f_i (fpclassify, plus_zero, FP_ZERO),
- TEST_f_i (fpclassify, minus_zero, FP_ZERO),
- TEST_f_i (fpclassify, 1000, FP_NORMAL),
- TEST_f_i (fpclassify, min_subnorm_value, FP_SUBNORMAL),
+ TEST_f_i (fpclassify, qnan_value, FP_NAN, NO_INEXACT_EXCEPTION),
+ TEST_f_i (fpclassify, plus_infty, FP_INFINITE, NO_INEXACT_EXCEPTION),
+ TEST_f_i (fpclassify, minus_infty, FP_INFINITE, NO_INEXACT_EXCEPTION),
+ TEST_f_i (fpclassify, plus_zero, FP_ZERO, NO_INEXACT_EXCEPTION),
+ TEST_f_i (fpclassify, minus_zero, FP_ZERO, NO_INEXACT_EXCEPTION),
+ TEST_f_i (fpclassify, 1000, FP_NORMAL, NO_INEXACT_EXCEPTION),
+ TEST_f_i (fpclassify, min_subnorm_value, FP_SUBNORMAL, NO_INEXACT_EXCEPTION),
END_DATA (fpclassify)
};
@@ -9342,15 +9344,15 @@ fpclassify_test (void)
static const struct test_f_f1_data frexp_test_data[] =
{
START_DATA (frexp),
- TEST_fI_f1 (frexp, plus_infty, plus_infty, IGNORE),
- TEST_fI_f1 (frexp, minus_infty, minus_infty, IGNORE),
- TEST_fI_f1 (frexp, qnan_value, qnan_value, IGNORE),
+ TEST_fI_f1 (frexp, plus_infty, plus_infty, IGNORE, NO_INEXACT_EXCEPTION),
+ TEST_fI_f1 (frexp, minus_infty, minus_infty, IGNORE, NO_INEXACT_EXCEPTION),
+ TEST_fI_f1 (frexp, qnan_value, qnan_value, IGNORE, NO_INEXACT_EXCEPTION),
- TEST_fI_f1 (frexp, 0.0, 0.0, 0.0),
- TEST_fI_f1 (frexp, minus_zero, minus_zero, 0.0),
+ TEST_fI_f1 (frexp, 0.0, 0.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_fI_f1 (frexp, minus_zero, minus_zero, 0.0, NO_INEXACT_EXCEPTION),
- TEST_fI_f1 (frexp, 12.8L, 0.8L, 4),
- TEST_fI_f1 (frexp, -27.34L, -0.854375L, 5),
+ TEST_fI_f1 (frexp, 12.8L, 0.8L, 4, NO_INEXACT_EXCEPTION),
+ TEST_fI_f1 (frexp, -27.34L, -0.854375L, 5, NO_INEXACT_EXCEPTION),
END_DATA (frexp)
};
@@ -9456,19 +9458,19 @@ hypot_test (void)
static const struct test_f_i_data ilogb_test_data[] =
{
START_DATA (ilogb),
- TEST_f_i (ilogb, 1, 0),
- TEST_f_i (ilogb, M_El, 1),
- TEST_f_i (ilogb, 1024, 10),
- TEST_f_i (ilogb, -2000, 10),
+ TEST_f_i (ilogb, 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_i (ilogb, M_El, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_i (ilogb, 1024, 10, NO_INEXACT_EXCEPTION),
+ TEST_f_i (ilogb, -2000, 10, NO_INEXACT_EXCEPTION),
/* ilogb (0.0) == FP_ILOGB0 plus invalid exception */
- TEST_f_i (ilogb, 0.0, FP_ILOGB0, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_i (ilogb, 0.0, FP_ILOGB0, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
/* ilogb (qNaN) == FP_ILOGBNAN plus invalid exception */
- TEST_f_i (ilogb, qnan_value, FP_ILOGBNAN, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_i (ilogb, qnan_value, FP_ILOGBNAN, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
/* ilogb (inf) == INT_MAX plus invalid exception */
- TEST_f_i (ilogb, plus_infty, INT_MAX, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_i (ilogb, plus_infty, INT_MAX, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
/* ilogb (-inf) == INT_MAX plus invalid exception */
- TEST_f_i (ilogb, minus_infty, INT_MAX, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_i (ilogb, minus_infty, INT_MAX, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
END_DATA (ilogb)
};
@@ -9483,13 +9485,13 @@ ilogb_test (void)
static const struct test_f_i_data isfinite_test_data[] =
{
START_DATA (isfinite),
- TEST_f_b (isfinite, 0, 1),
- TEST_f_b (isfinite, minus_zero, 1),
- TEST_f_b (isfinite, 10, 1),
- TEST_f_b (isfinite, min_subnorm_value, 1),
- TEST_f_b (isfinite, plus_infty, 0),
- TEST_f_b (isfinite, minus_infty, 0),
- TEST_f_b (isfinite, qnan_value, 0),
+ TEST_f_b (isfinite, 0, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isfinite, minus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isfinite, 10, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isfinite, min_subnorm_value, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isfinite, plus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isfinite, minus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isfinite, qnan_value, 0, NO_INEXACT_EXCEPTION),
END_DATA (isfinit