about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2015-05-01 22:31:24 +0000
committerJoseph Myers <joseph@codesourcery.com>2015-05-01 22:31:24 +0000
commit86793ae758eeca100a67d1e32cb16d29e74a9149 (patch)
treeabdcc7efcf8b4fe55dbab318d1b3e322c7a816b4
parent038e4be99c48fac8dbe8b772ff673837eb22431d (diff)
downloadglibc-86793ae758eeca100a67d1e32cb16d29e74a9149.tar.gz
glibc-86793ae758eeca100a67d1e32cb16d29e74a9149.tar.xz
glibc-86793ae758eeca100a67d1e32cb16d29e74a9149.zip
Add another test of pow.
This patch adds a randomly-generated test of pow that is observed to
increase ulps on x86_64.

Tested for x86_64 and x86 and ulps updated accordingly.

	* math/auto-libm-test-in: Add another test of pow.
	* math/auto-libm-test-out: Regenerated.
	* sysdeps/x86_64/fpu/libm-test-ulps: Update.
-rw-r--r--ChangeLog4
-rw-r--r--math/auto-libm-test-in1
-rw-r--r--math/auto-libm-test-out25
-rw-r--r--sysdeps/x86_64/fpu/libm-test-ulps16
4 files changed, 38 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 77ce468046..7333ae5887 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2015-05-01  Joseph Myers  <joseph@codesourcery.com>
 
+	* math/auto-libm-test-in: Add another test of pow.
+	* math/auto-libm-test-out: Regenerated.
+	* sysdeps/x86_64/fpu/libm-test-ulps: Update.
+
 	* math/auto-libm-test-in: Add more tests of lgamma.
 	* math/auto-libm-test-out: Regenerated.
 	* sysdeps/i386/fpu/libm-test-ulps: Update.
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index caf3c93a0e..788c30a517 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -2200,6 +2200,7 @@ pow 2.0 -100000.0
 pow 1.0625 1.125
 pow 1.5 1.03125
 pow 0x1.7d1a0a6f2p+681 1.5
+pow 0x1.ce78f2p+0 -0x2.7f1f78p+4
 
 sin 0
 sin -0
diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out
index a99be4a791..ed5b311688 100644
--- a/math/auto-libm-test-out
+++ b/math/auto-libm-test-out
@@ -173504,6 +173504,31 @@ pow 0x1.7d1a0a6f2p+681 1.5
 = pow tonearest ldbl-128ibm 0x2.fa3414de4p+680L 0x1.8p+0L : 0x5.232efee41029ap+1020L : inexact-ok
 = pow towardzero ldbl-128ibm 0x2.fa3414de4p+680L 0x1.8p+0L : 0x5.232efee41029ap+1020L : inexact-ok
 = pow upward ldbl-128ibm 0x2.fa3414de4p+680L 0x1.8p+0L : 0x5.232efee41029ap+1020L : inexact-ok
+pow 0x1.ce78f2p+0 -0x2.7f1f78p+4
+= pow downward flt-32 0x1.ce78f2p+0f -0x2.7f1f78p+4f : 0x3.c74e2cp-36f : inexact-ok
+= pow tonearest flt-32 0x1.ce78f2p+0f -0x2.7f1f78p+4f : 0x3.c74e3p-36f : inexact-ok
+= pow towardzero flt-32 0x1.ce78f2p+0f -0x2.7f1f78p+4f : 0x3.c74e2cp-36f : inexact-ok
+= pow upward flt-32 0x1.ce78f2p+0f -0x2.7f1f78p+4f : 0x3.c74e3p-36f : inexact-ok
+= pow downward dbl-64 0x1.ce78f2p+0 -0x2.7f1f78p+4 : 0x3.c74e2eeb2cdp-36 : inexact-ok
+= pow tonearest dbl-64 0x1.ce78f2p+0 -0x2.7f1f78p+4 : 0x3.c74e2eeb2cdp-36 : inexact-ok
+= pow towardzero dbl-64 0x1.ce78f2p+0 -0x2.7f1f78p+4 : 0x3.c74e2eeb2cdp-36 : inexact-ok
+= pow upward dbl-64 0x1.ce78f2p+0 -0x2.7f1f78p+4 : 0x3.c74e2eeb2cd02p-36 : inexact-ok
+= pow downward ldbl-96-intel 0x1.ce78f2p+0L -0x2.7f1f78p+4L : 0x3.c74e2eeb2cd00268p-36L : inexact-ok
+= pow tonearest ldbl-96-intel 0x1.ce78f2p+0L -0x2.7f1f78p+4L : 0x3.c74e2eeb2cd00268p-36L : inexact-ok
+= pow towardzero ldbl-96-intel 0x1.ce78f2p+0L -0x2.7f1f78p+4L : 0x3.c74e2eeb2cd00268p-36L : inexact-ok
+= pow upward ldbl-96-intel 0x1.ce78f2p+0L -0x2.7f1f78p+4L : 0x3.c74e2eeb2cd0026cp-36L : inexact-ok
+= pow downward ldbl-96-m68k 0x1.ce78f2p+0L -0x2.7f1f78p+4L : 0x3.c74e2eeb2cd00268p-36L : inexact-ok
+= pow tonearest ldbl-96-m68k 0x1.ce78f2p+0L -0x2.7f1f78p+4L : 0x3.c74e2eeb2cd00268p-36L : inexact-ok
+= pow towardzero ldbl-96-m68k 0x1.ce78f2p+0L -0x2.7f1f78p+4L : 0x3.c74e2eeb2cd00268p-36L : inexact-ok
+= pow upward ldbl-96-m68k 0x1.ce78f2p+0L -0x2.7f1f78p+4L : 0x3.c74e2eeb2cd0026cp-36L : inexact-ok
+= pow downward ldbl-128 0x1.ce78f2p+0L -0x2.7f1f78p+4L : 0x3.c74e2eeb2cd0026957cffeb3a1f4p-36L : inexact-ok
+= pow tonearest ldbl-128 0x1.ce78f2p+0L -0x2.7f1f78p+4L : 0x3.c74e2eeb2cd0026957cffeb3a1f4p-36L : inexact-ok
+= pow towardzero ldbl-128 0x1.ce78f2p+0L -0x2.7f1f78p+4L : 0x3.c74e2eeb2cd0026957cffeb3a1f4p-36L : inexact-ok
+= pow upward ldbl-128 0x1.ce78f2p+0L -0x2.7f1f78p+4L : 0x3.c74e2eeb2cd0026957cffeb3a1f6p-36L : inexact-ok
+= pow downward ldbl-128ibm 0x1.ce78f2p+0L -0x2.7f1f78p+4L : 0x3.c74e2eeb2cd0026957cffeb3a1p-36L : inexact-ok
+= pow tonearest ldbl-128ibm 0x1.ce78f2p+0L -0x2.7f1f78p+4L : 0x3.c74e2eeb2cd0026957cffeb3a2p-36L : inexact-ok
+= pow towardzero ldbl-128ibm 0x1.ce78f2p+0L -0x2.7f1f78p+4L : 0x3.c74e2eeb2cd0026957cffeb3a1p-36L : inexact-ok
+= pow upward ldbl-128ibm 0x1.ce78f2p+0L -0x2.7f1f78p+4L : 0x3.c74e2eeb2cd0026957cffeb3a2p-36L : inexact-ok
 sin 0
 = sin downward flt-32 0x0p+0f : 0x0p+0f : inexact-ok
 = sin tonearest flt-32 0x0p+0f : 0x0p+0f : inexact-ok
diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps
index 3b342d69bb..ab2b0b7ed4 100644
--- a/sysdeps/x86_64/fpu/libm-test-ulps
+++ b/sysdeps/x86_64/fpu/libm-test-ulps
@@ -1816,8 +1816,8 @@ ildouble: 1
 ldouble: 1
 
 Function: "pow":
-float: 1
-ifloat: 1
+float: 3
+ifloat: 3
 ildouble: 1
 ldouble: 1
 
@@ -1853,25 +1853,25 @@ ldouble: 2
 
 Function: "pow_downward":
 double: 1
-float: 1
+float: 3
 idouble: 1
-ifloat: 1
+ifloat: 3
 ildouble: 4
 ldouble: 4
 
 Function: "pow_towardzero":
 double: 1
-float: 1
+float: 4
 idouble: 1
-ifloat: 1
+ifloat: 4
 ildouble: 1
 ldouble: 1
 
 Function: "pow_upward":
 double: 1
-float: 1
+float: 4
 idouble: 1
-ifloat: 1
+ifloat: 4
 ildouble: 2
 ldouble: 2