summaryrefslogtreecommitdiff
path: root/tests/pow.dat
diff options
context:
space:
mode:
authorthevenyp <thevenyp@211d60ee-9f03-0410-a15a-8952a2c7a4e4>2009-07-16 17:44:54 +0000
committerthevenyp <thevenyp@211d60ee-9f03-0410-a15a-8952a2c7a4e4>2009-07-16 17:44:54 +0000
commitd7c8881323268cee3f3455504422dc2fa139f60f (patch)
tree6206ef08e628f7b8ca4738a7b29e7e6a30a71ddd /tests/pow.dat
parentec8c536dd3bc32c173dd61c2159998b057a8382a (diff)
downloadmpc-d7c8881323268cee3f3455504422dc2fa139f60f.tar.gz
doc/algorithms.tex: Analyse cases where Re(x^y)>0 and Im(x^y) = 0.
tests/pow.dat: add tests with Re(x^y)>0 and Im(x^y) = 0, fix tests with undefined sign of the zero part. src/pow.c: fix sign of zero when Re(x^y)>0 and Im(x^y) = 0. git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@624 211d60ee-9f03-0410-a15a-8952a2c7a4e4
Diffstat (limited to 'tests/pow.dat')
-rw-r--r--tests/pow.dat142
1 files changed, 134 insertions, 8 deletions
diff --git a/tests/pow.dat b/tests/pow.dat
index 7baaad0..281853a 100644
--- a/tests/pow.dat
+++ b/tests/pow.dat
@@ -169,6 +169,128 @@
# (1-0*i)^(-0-0*i) -> 1+0*i
0 0 53 +1 53 +0 53 +1 53 -0 53 -0 53 -0 N N
+# (x-0i)^(y-0i) = +a +0i when 0 < x < 1 and y <= -0
+0 0 53 4 53 +0 53 +0.5 53 -0 53 -2 53 -0 N N
+0 0 53 1 53 +0 53 +0.5 53 -0 53 -0 53 -0 N N
+# x^(-0-0i) = +1 +0i when |x| < 1 and Im(x) < 0
+0 0 53 1 53 +0 53 -0.5 53 -0.5 53 -0 53 -0 N N
+0 0 53 1 53 +0 53 -0 53 -0.5 53 -0 53 -0 N N
+0 0 53 1 53 +0 53 +0 53 -0.5 53 -0 53 -0 N N
+0 0 53 1 53 +0 53 +0.5 53 -0.5 53 -0 53 -0 N N
+# x^(+0-0i) = +1 +0i when |x| < 1 and Im(x) > 0
+0 0 53 1 53 +0 53 +0.5 53 +0.5 53 +0 53 -0 N N
+0 0 53 1 53 +0 53 +0 53 +0.5 53 +0 53 -0 N N
+0 0 53 1 53 +0 53 -0 53 +0.5 53 +0 53 -0 N N
+0 0 53 1 53 +0 53 -0.5 53 +0.5 53 +0 53 -0 N N
+# (x+0i)^(y-0i) = +a +0i when 0 < x < 1 and y >= +0
+0 0 53 1 53 +0 53 +0.5 53 +0 53 +0 53 -0 N N
+0 0 53 0.25 53 +0 53 +0.5 53 +0 53 +2 53 -0 N N
+
+# (x-0i)^(y+0i) = +a +0i when x >= 1 and y <= -0
+0 0 53 0.5 53 +0 53 +2 53 -0 53 -1 53 +0 N N
+0 0 53 1 53 +0 53 +3 53 -0 53 -0 53 +0 N N
+0 0 53 1 53 +0 53 +1 53 -0 53 -1 53 +0 N N
+0 0 53 1 53 +0 53 +1 53 -0 53 -0 53 +0 N N
+# x^(-0+0i) = +1 +0i when |x| >= 1 and Im(x) < 0
+0 0 53 1 53 +0 53 +0.5 53 -0.5 53 -0 53 +0 N N
+0 0 53 1 53 +0 53 +0 53 -0.5 53 -0 53 +0 N N
+0 0 53 1 53 +0 53 -0 53 -0.5 53 -0 53 +0 N N
+0 0 53 1 53 +0 53 -0.5 53 -0.5 53 -0 53 +0 N N
+# x^(+0+0i) = +1 +0i when |x| >= 1 and Im(x) > 0
+0 0 53 1 53 +0 53 +0.5 53 +0.5 53 +0 53 +0 N N
+0 0 53 1 53 +0 53 +0 53 -1 53 +0 53 +0 N N
+0 0 53 1 53 +0 53 -0 53 +1 53 +0 53 +0 N N
+0 0 53 1 53 +0 53 -0.5 53 +0.5 53 +0 53 +0 N N
+# (x+0i)^(y+0i) = +a +0i when x >= 1 and y >= +0
+0 0 53 1 53 +0 53 +2 53 +0 53 +0 53 +0 N N
+0 0 53 4 53 +0 53 +2 53 +0 53 +2 53 +0 N N
+0 0 53 1 53 +0 53 +1 53 +0 53 +0 53 +0 N N
+0 0 53 1 53 +0 53 +1 53 +0 53 +2 53 +0 N N
+
+# (+1-0i)^(y1+y2 i) = +1 +0i when y1 <= -0 and y2 > 0
+0 0 53 1 53 +0 53 +1 53 -0 53 -2 53 +1 N N
+0 0 53 1 53 +0 53 +1 53 -0 53 -1 53 +2 N N
+# (+/-1-0i)^(+0+y i) = +a +0i when y > 0
+0 0 53 1 53 +0 53 +1 53 -0 53 -0 53 +1 N N
+- 0 53 +0x10BBEEE9177E19p-43 53 +0 53 -1 53 -0 53 -0 53 +2 N N
+# x^(-0-y i) = +a +0i when |x| = 1, Im(x) < 0 and y > 0
++ 0 53 +0x1724046EB0933Ap-48 53 +0 53 -1 53 -0 53 -0 53 +1 N N
++ 0 53 +0x1724046EB0933Ap-48 53 +0 53 -0 53 -1 53 -0 53 +2 N N
+- 0 53 +0x1BD4567B975381p-46 53 +0 53 +0 53 -1 53 -0 53 +3 N N
+0 0 53 1 53 +0 53 +1 53 -0 53 -0 53 +4 N N
+# x^(+0+y i) = +a +0i when |x| = 1, Im(x) > 0 and y > 0
+0 0 53 1 53 +0 53 +1 53 +0 53 +0 53 +1 N N
++ 0 53 +0x1620227B598EF9p-57 53 +0 53 +0 53 +1 53 +0 53 +2 N N
+- 0 53 +0x1265D4E92B6B9Bp-59 53 +0 53 -0 53 +1 53 +0 53 +3 N N
++ 0 53 +0x1D4102BC3F7D4Cp-71 53 +0 53 -1 53 +0 53 +0 53 +4 N N
+# (+/-1+0i)^(0+yi) = +a +0i when y > 0
++ 0 53 +0x1E989F5D6DFF5Cp-62 53 +0 53 -1 53 +0 53 +0 53 +2 N N
+0 0 53 1 53 +0 53 +1 53 +0 53 +0 53 +2 N N
+# (+1 +0i)^(y1+y2 i) = +1 +0i when y1 >= +0 and y2 >0
+0 0 53 1 53 +0 53 +1 53 +0 53 +2 53 +2 N N
+0 0 53 1 53 +0 53 +1 53 +0 53 +0 53 +2 N N
+
+# (+1 +0i)^y = +1 -0i when Re(y) <= -0 and Im(y) < 0
+0 0 53 1 53 -0 53 +1 53 +0 53 -1 53 -1 N N
+# (+/-1 +0i)^(-0 +yi) = +a -0i when y < 0
+0 0 53 1 53 -0 53 +1 53 +0 53 -0 53 -1 N N
++ 0 53 +0x1724046EB0933Ap-48 53 -0 53 -1 53 +0 53 -0 53 -1 N N
+# x^(-0+y i) = +a -0i when |x| = 1, Im(x) >= +0 and y < 0
++ 0 53 +0x1724046EB0933Ap-48 53 -0 53 +0 53 +1 53 -0 53 -2 N N
+- 0 53 +0x1BD4567B975381p-46 53 -0 53 -0 53 +1 53 -0 53 -3 N N
+# x^(+0+y i) = +a -0i when |x| = 1, Im(x) <= -0 and y < 0
+- 0 53 +0x1A9BCC46F767DFp-55 53 -0 53 +0 53 -1 53 +0 53 -1 N N
++ 0 53 +0x1620227B598EF9p-57 53 -0 53 -0 53 -1 53 +0 53 -2 N N
+# (+/-1 -0i)^(+0+y i) = +a -0i when y < 0
+0 0 53 1 53 -0 53 +1 53 -0 53 +0 53 -1 N N
++ 0 53 +0x1620227B598EF9p-57 53 -0 53 -1 53 -0 53 +0 53 -1 N N
+# (+1 -0i)^y = +1 -0i when Re(y) > 0 and Im(y) < 0
+0 0 53 1 53 -0 53 +1 53 -0 53 +2 53 -3 N N
+
+# (x +0i)^(y -0i) = +a -0i when x >= 1 and y < 0
+0 0 53 0.5 53 -0 53 +2 53 +0 53 -1 53 -0 N N
+0 0 53 1 53 -0 53 +1 53 +0 53 -1 53 -0 N N
+# x^(-0 -0i) = +1 -0i when |x| >= 1 and Im (x) >= +0
+0 0 53 1 53 -0 53 +1.5 53 +0 53 -0 53 -0 N N
+0 0 53 1 53 -0 53 +1 53 +0 53 -0 53 -0 N N
+0 0 53 1 53 -0 53 -1 53 +0 53 -0 53 -0 N N
+0 0 53 1 53 -0 53 -1.5 53 +0 53 -0 53 -0 N N
+0 0 53 1 53 -0 53 +1.5 53 +4 53 -0 53 -0 N N
+0 0 53 1 53 -0 53 +1 53 +4 53 -0 53 -0 N N
+0 0 53 1 53 -0 53 -1 53 +4 53 -0 53 -0 N N
+0 0 53 1 53 -0 53 -1.5 53 +4 53 -0 53 -0 N N
+# x^(+0 -0i) = +1 -0i when |x| >= 1 and Im (x) <= -0
+0 0 53 1 53 -0 53 +1.5 53 -0 53 +0 53 -0 N N
+0 0 53 1 53 -0 53 +1 53 -0 53 +0 53 -0 N N
+0 0 53 1 53 -0 53 -1 53 -0 53 +0 53 -0 N N
+0 0 53 1 53 -0 53 -1.5 53 -0 53 +0 53 -0 N N
+0 0 53 1 53 -0 53 +1.5 53 -4 53 +0 53 -0 N N
+0 0 53 1 53 -0 53 +1 53 -4 53 +0 53 -0 N N
+0 0 53 1 53 -0 53 -1 53 -4 53 +0 53 -0 N N
+0 0 53 1 53 -0 53 -1.5 53 -4 53 +0 53 -0 N N
+# (x -0i)^(y -0i) = x^y -0i when x >= 1 and y > 0
+0 0 53 9 53 -0 53 +3 53 -0 53 +2 53 -0 N N
+0 0 53 1 53 -0 53 +1 53 -0 53 +2 53 -0 N N
+
+# (x +0i)^(y +0i) = x^y -0i when 0 < x < 1 and y < 0
+0 0 53 2 53 -0 53 +0.5 53 +0 53 -1 53 +0 N N
+# x^(-0+0i) = +1 -0i when |x| < 1 and Im(x) >= +0
+0 0 53 1 53 -0 53 -0.5 53 +0 53 -0 53 +0 N N
+0 0 53 1 53 -0 53 -0.1 53 +0.3 53 -0 53 +0 N N
+0 0 53 1 53 -0 53 -0.0 53 +0.3 53 -0 53 +0 N N
+0 0 53 1 53 -0 53 +0.0 53 +0.3 53 -0 53 +0 N N
+0 0 53 1 53 -0 53 +0.1 53 +0.3 53 -0 53 +0 N N
+0 0 53 1 53 -0 53 +0.5 53 +0 53 -0 53 +0 N N
+# x^(+0+0i) = +1 -0i when |x| < 1 and Im(x) <= -0
+0 0 53 1 53 -0 53 -0.5 53 -0 53 +0 53 +0 N N
+0 0 53 1 53 -0 53 -0.1 53 -0.3 53 +0 53 +0 N N
+0 0 53 1 53 -0 53 -0.0 53 -0.3 53 +0 53 +0 N N
+0 0 53 1 53 -0 53 +0.0 53 -0.3 53 +0 53 +0 N N
+0 0 53 1 53 -0 53 +0.1 53 -0.3 53 +0 53 +0 N N
+0 0 53 1 53 -0 53 +0.5 53 -0 53 +0 53 +0 N N
+# (x-0i)^(y+0i) = x^y -0i when 0 < x < 1 and y > 0
+0 0 53 +0.25 53 -0 53 +0.5 53 -0 53 +2 53 +0 N N
+
# exact cases
# (-4)^(1/4) = 1+i
0 0 2 1 2 1 2 -4 2 0 2 0x1p-2 2 0 N N
@@ -195,14 +317,18 @@
# x = -2 - epsilon*i, y = -3 - delta*i
# log(x) = log(2) - [Pi-epsilon/2]*i + O(epsilon^2)
# y*log(x) ~ -3*log(2) + [3*Pi-3*epsilon/2-delta*log(2)]*i
-0 0 2 -0x1p-3 2 +0 2 -2 2 -0 2 -3 2 -0 N N
-0 0 2 +0 2 -2 2 +0 2 0x1p-1 2 -1 2 -0 N N
-0 - 2 +0 3 -5 2 +0 53 0xCCCCCCCCCCCCDp-54 2 -1 2 -0 N N
-- 0 5 -25 2 +0 2 +0 53 0xCCCCCCCCCCCCDp-54 2 -2 2 -0 N N
-- - 53 -0x85649E3220691p-63 53 -0x14A25D455A9D0Dp-60 3 5 2 3 2 -3 2 +0 N N
-+ 0 53 0xABCC77118461Dp-74 2 +0 3 5 3 5 2 -8 2 0 N N
-+ 0 53 -0x127DB86014739Dp-93 2 +0 2 -1 2 -0 2 1 4 -9 N N
-+ + 24 0xC1F98Dp-21 24 0x12FF89p-2 24 -7 24 +0 24 0xCFFFF3p-21 24 +0 N N
+0 0 2 -0x1p-3 2 +0 2 -2 2 -0 2 -3 2 -0 N N
+0 0 2 +0 2 -2 2 +0 2 0x1p-1 2 -1 2 -0 N N
+
+0 - 2 +0 3 -5 2 +0 53 0xCCCCCCCCCCCCDp-54 2 -1 2 -0 N N
+# undefined zero sign in result
+- 0 5 -25 2 0 2 +0 53 0xCCCCCCCCCCCCDp-54 2 -2 2 -0 N N
+
+- - 53 -0x85649E3220691p-63 53 -0x14A25D455A9D0Dp-60 3 5 2 3 2 -3 2 +0 N N
++ 0 53 0xABCC77118461Dp-74 2 +0 3 5 3 5 2 -8 2 +0 N N
+
++ 0 53 -0x127DB86014739Dp-93 2 -0 2 -1 2 -0 2 1 4 -9 N N
++ + 24 0xC1F98Dp-21 24 0x12FF89p-2 24 -7 24 +0 24 0xCFFFF3p-21 24 +0 N N
# underflow case
- - 24 +0 24 +0 24 2 24 0x44CCCDp-20 24 -0x7FFFF200 24 -0x7FFFF200 N N
- 0 53 0x14D55AFA6E0BB0p210433620 53 0 53 +0 53 0x44CCCCFFFFFFFp-48 53 0x5F5E100 53 +0 N N