diff options
| author | Joseph Myers <joseph@codesourcery.com> | 2013-05-17 14:45:50 +0000 |
|---|---|---|
| committer | Joseph Myers <joseph@codesourcery.com> | 2013-05-17 14:45:50 +0000 |
| commit | 8269107fe654ac2bb286c97ff874407ffc920d1f (patch) | |
| tree | 21846ea8672ed9c99af5406292e5ef31898a032e /math | |
| parent | 48a18de1e1e7dfeab6d034765caaf732b53cfcb7 (diff) | |
| download | glibc-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.inc | 2251 |
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 |
