diff options
author | thevenyp <thevenyp@211d60ee-9f03-0410-a15a-8952a2c7a4e4> | 2009-07-16 17:44:54 +0000 |
---|---|---|
committer | thevenyp <thevenyp@211d60ee-9f03-0410-a15a-8952a2c7a4e4> | 2009-07-16 17:44:54 +0000 |
commit | d7c8881323268cee3f3455504422dc2fa139f60f (patch) | |
tree | 6206ef08e628f7b8ca4738a7b29e7e6a30a71ddd /tests/pow.dat | |
parent | ec8c536dd3bc32c173dd61c2159998b057a8382a (diff) | |
download | mpc-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.dat | 142 |
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 |