diff options
author | Joseph Myers <joseph@codesourcery.com> | 2015-11-10 17:34:13 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2015-11-10 17:34:13 +0000 |
commit | 685312298fcc5b24ed9700bcc43787d5f83553c5 (patch) | |
tree | 98c4fe12f8634c62d5357a5137292e8e1987072a /math | |
parent | 71bbdde7f53951f6a1d59492f36f80769090a8b3 (diff) | |
download | glibc-685312298fcc5b24ed9700bcc43787d5f83553c5.tar glibc-685312298fcc5b24ed9700bcc43787d5f83553c5.tar.gz glibc-685312298fcc5b24ed9700bcc43787d5f83553c5.tar.bz2 glibc-685312298fcc5b24ed9700bcc43787d5f83553c5.zip |
Add more tests of pow.
Prompted by a gcc-patches discussion, this patch adds tests of pow for
the cases where pow (x, 0.5) is required to return a different result
from sqrt (x), as those cases were previously missing from the tests
(although they worked correctly).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add another test of pow.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (pow_test_data): Add another test.
Diffstat (limited to 'math')
-rw-r--r-- | math/auto-libm-test-in | 1 | ||||
-rw-r--r-- | math/auto-libm-test-out | 25 | ||||
-rw-r--r-- | math/libm-test.inc | 1 |
3 files changed, 27 insertions, 0 deletions
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in index 0baca59e88..f1abcba578 100644 --- a/math/auto-libm-test-in +++ b/math/auto-libm-test-in @@ -3254,6 +3254,7 @@ pow 0.0 max pow 0.0 min_subnorm # pow (-0, y) == +0 for y > 0 and not an odd integer. +pow -0 0.5 pow -0 4 pow -0 0x1p24 pow -0 0x1p127 diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out index 22c4b41881..9d3819ca01 100644 --- a/math/auto-libm-test-out +++ b/math/auto-libm-test-out @@ -219802,6 +219802,31 @@ pow 0.0 min_subnorm = pow tonearest ldbl-128 0x0p+0L 0x4p-16496L : 0x0p+0L : inexact-ok = pow towardzero ldbl-128 0x0p+0L 0x4p-16496L : 0x0p+0L : inexact-ok = pow upward ldbl-128 0x0p+0L 0x4p-16496L : 0x0p+0L : inexact-ok +pow -0 0.5 += pow downward flt-32 -0x0p+0f 0x8p-4f : 0x0p+0f : inexact-ok += pow tonearest flt-32 -0x0p+0f 0x8p-4f : 0x0p+0f : inexact-ok += pow towardzero flt-32 -0x0p+0f 0x8p-4f : 0x0p+0f : inexact-ok += pow upward flt-32 -0x0p+0f 0x8p-4f : 0x0p+0f : inexact-ok += pow downward dbl-64 -0x0p+0 0x8p-4 : 0x0p+0 : inexact-ok += pow tonearest dbl-64 -0x0p+0 0x8p-4 : 0x0p+0 : inexact-ok += pow towardzero dbl-64 -0x0p+0 0x8p-4 : 0x0p+0 : inexact-ok += pow upward dbl-64 -0x0p+0 0x8p-4 : 0x0p+0 : inexact-ok += pow downward ldbl-96-intel -0x0p+0L 0x8p-4L : 0x0p+0L : inexact-ok += pow tonearest ldbl-96-intel -0x0p+0L 0x8p-4L : 0x0p+0L : inexact-ok += pow towardzero ldbl-96-intel -0x0p+0L 0x8p-4L : 0x0p+0L : inexact-ok += pow upward ldbl-96-intel -0x0p+0L 0x8p-4L : 0x0p+0L : inexact-ok += pow downward ldbl-96-m68k -0x0p+0L 0x8p-4L : 0x0p+0L : inexact-ok += pow tonearest ldbl-96-m68k -0x0p+0L 0x8p-4L : 0x0p+0L : inexact-ok += pow towardzero ldbl-96-m68k -0x0p+0L 0x8p-4L : 0x0p+0L : inexact-ok += pow upward ldbl-96-m68k -0x0p+0L 0x8p-4L : 0x0p+0L : inexact-ok += pow downward ldbl-128 -0x0p+0L 0x8p-4L : 0x0p+0L : inexact-ok += pow tonearest ldbl-128 -0x0p+0L 0x8p-4L : 0x0p+0L : inexact-ok += pow towardzero ldbl-128 -0x0p+0L 0x8p-4L : 0x0p+0L : inexact-ok += pow upward ldbl-128 -0x0p+0L 0x8p-4L : 0x0p+0L : inexact-ok += pow downward ldbl-128ibm -0x0p+0L 0x8p-4L : 0x0p+0L : inexact-ok += pow tonearest ldbl-128ibm -0x0p+0L 0x8p-4L : 0x0p+0L : inexact-ok += pow towardzero ldbl-128ibm -0x0p+0L 0x8p-4L : 0x0p+0L : inexact-ok += pow upward ldbl-128ibm -0x0p+0L 0x8p-4L : 0x0p+0L : inexact-ok pow -0 4 = pow downward flt-32 -0x0p+0f 0x4p+0f : 0x0p+0f : inexact-ok = pow tonearest flt-32 -0x0p+0f 0x4p+0f : 0x0p+0f : inexact-ok diff --git a/math/libm-test.inc b/math/libm-test.inc index 669b060dc9..a09cf90826 100644 --- a/math/libm-test.inc +++ b/math/libm-test.inc @@ -10285,6 +10285,7 @@ static const struct test_ff_f_data pow_test_data[] = #endif /* pow (-inf, y) == +inf for y > 0 and not an odd integer. */ + TEST_ff_f (pow, minus_infty, 0.5, plus_infty, ERRNO_UNCHANGED), TEST_ff_f (pow, minus_infty, 28, plus_infty, ERRNO_UNCHANGED), TEST_ff_f (pow, minus_infty, 0x1p24, plus_infty, ERRNO_UNCHANGED), TEST_ff_f (pow, minus_infty, 0x1p127, plus_infty, ERRNO_UNCHANGED), |