This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Add more tests of pow [committed]


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.  Committed.

2015-11-10  Joseph Myers  <joseph@codesourcery.com>

	* 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.

diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index 0baca59..f1abcba 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 22c4b41..9d3819c 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 669b060..a09cf90 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),

-- 
Joseph S. Myers
joseph@codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]