1 1.1 mrg # Data test file for mpc_log. 2 1.1 mrg # 3 1.1 mrg # Copyright (C) 2008, 2009, 2010, 2012 INRIA 4 1.1 mrg # 5 1.1 mrg # This file is part of GNU MPC. 6 1.1 mrg # 7 1.1 mrg # GNU MPC is free software; you can redistribute it and/or modify it under 8 1.1 mrg # the terms of the GNU Lesser General Public License as published by the 9 1.1 mrg # Free Software Foundation; either version 3 of the License, or (at your 10 1.1 mrg # option) any later version. 11 1.1 mrg # 12 1.1 mrg # GNU MPC is distributed in the hope that it will be useful, but WITHOUT ANY 13 1.1 mrg # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 14 1.1 mrg # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 15 1.1 mrg # more details. 16 1.1 mrg # 17 1.1 mrg # You should have received a copy of the GNU Lesser General Public License 18 1.1 mrg # along with this program. If not, see http://www.gnu.org/licenses/ . 19 1.1 mrg 20 1.1 mrg # See file sin.dat for the format description. 21 1.1 mrg 22 1.1 mrg # Special values, following ISO C99 standard, Annex G, 23 1.1 mrg # more precisely Section G.6.3.2 "The clog functions". 24 1.1 mrg 25 1.1 mrg # Rule [conj]: log(conj(z)) = conj(log(z)) 26 1.1 mrg 27 1.1 mrg # log(-0 + i*0) = -inf + i*pi 28 1.1 mrg 0 - 2 -inf 53 +0x3243F6A8885A3p-48 2 -0 2 +0 N N 29 1.1 mrg 0 + 2 -inf 53 -0x3243F6A8885A3p-48 2 -0 2 -0 N N 30 1.1 mrg 0 - 2 -inf 53 +0x3243F6A8885A3p-48 2 -0 2 +0 N D 31 1.1 mrg 0 - 2 -inf 53 -0x3243F6A8885A32p-52 2 -0 2 -0 N D 32 1.1 mrg 33 1.1 mrg # log(+0 + i*0) = -inf + i*0 34 1.1 mrg 0 0 2 -inf 2 +0 2 +0 2 +0 N N 35 1.1 mrg 0 0 2 -inf 2 -0 2 +0 2 -0 N N 36 1.1 mrg 37 1.1 mrg # log(+1 +- i*0) = +0 +- i*0 38 1.1 mrg 0 0 2 +0 2 +0 2 1 2 +0 N N 39 1.1 mrg 0 0 2 +0 2 -0 2 1 2 -0 N N 40 1.1 mrg 41 1.1 mrg # log(-1 +- i*0) = +0 +- i*pi 42 1.1 mrg 0 - 2 +0 53 +0x3243F6A8885A3p-48 2 -1 2 +0 N N 43 1.1 mrg 0 + 2 +0 53 -0x3243F6A8885A3p-48 2 -1 2 -0 N N 44 1.1 mrg 45 1.1 mrg # log(x + i*inf) = +inf + i*pi/2 for finite x 46 1.1 mrg 0 - 2 +inf 53 +0x3243F6A8885A3p-49 2 1 2 +inf N N 47 1.1 mrg 0 - 2 +inf 53 +0x3243F6A8885A3p-49 2 +0 2 +inf N N 48 1.1 mrg 0 - 2 +inf 53 +0x3243F6A8885A3p-49 2 -0 2 +inf N N 49 1.1 mrg 0 - 2 +inf 53 +0x3243F6A8885A3p-49 2 -1 2 +inf N N 50 1.1 mrg # by [conj]: log(x - i*inf) = +inf - i*pi/2 for finite x 51 1.1 mrg 0 + 2 +inf 53 -0x3243F6A8885A3p-49 2 1 2 -inf N N 52 1.1 mrg 0 + 2 +inf 53 -0x3243F6A8885A3p-49 2 +0 2 -inf N N 53 1.1 mrg 0 + 2 +inf 53 -0x3243F6A8885A3p-49 2 -0 2 -inf N N 54 1.1 mrg 0 + 2 +inf 53 -0x3243F6A8885A3p-49 2 -1 2 -inf N N 55 1.1 mrg 56 1.1 mrg # log(x + i*nan) = nan+i*nan for finite x 57 1.1 mrg 0 0 2 nan 2 nan 2 1 2 nan N N 58 1.1 mrg 0 0 2 nan 2 nan 2 +0 2 nan N N 59 1.1 mrg 0 0 2 nan 2 nan 2 -0 2 nan N N 60 1.1 mrg 0 0 2 nan 2 nan 2 -1 2 nan N N 61 1.1 mrg 62 1.1 mrg # log(-inf + i*y) = +inf + i*pi for finite positive-signed y 63 1.1 mrg 0 - 2 +inf 53 0x3243F6A8885A3p-48 2 -inf 2 1 N N 64 1.1 mrg 0 - 2 +inf 53 0x3243F6A8885A3p-48 2 -inf 2 +0 N N 65 1.1 mrg # by [conj]: log(-inf + i*y) = +inf - i*pi for finite negative-signed y 66 1.1 mrg 0 + 2 +inf 53 -0x3243F6A8885A3p-48 2 -inf 2 -1 N N 67 1.1 mrg 0 + 2 +inf 53 -0x3243F6A8885A3p-48 2 -inf 2 -0 N N 68 1.1 mrg 69 1.1 mrg # log(+inf + i*y) = +inf + i*0 for finite positive-signed y 70 1.1 mrg 0 0 2 +inf 2 +0 2 +inf 2 1 N N 71 1.1 mrg 0 0 2 +inf 2 +0 2 +inf 2 +0 N N 72 1.1 mrg # by [conj]: log(+inf + i*y) = +inf - i*0 for finite negative-signed y 73 1.1 mrg 0 0 2 +inf 2 -0 2 +inf 2 -1 N N 74 1.1 mrg 0 0 2 +inf 2 -0 2 +inf 2 -0 N N 75 1.1 mrg 76 1.1 mrg # log(-inf + i*inf) = +inf + i*(3*pi/4) 77 1.1 mrg 0 - 2 +inf 53 0x96CBE3F9990E9p-50 2 -inf 2 +inf N N 78 1.1 mrg # by [conj]: log(-inf - i*inf) = +inf - i*(3*pi/4) 79 1.1 mrg 0 + 2 +inf 53 -0x96CBE3F9990E9p-50 2 -inf 2 -inf N N 80 1.1 mrg 81 1.1 mrg # log(+inf + i*inf) = +inf + i*(pi/4) 82 1.1 mrg 0 - 2 +inf 53 0x3243F6A8885A3p-50 2 +inf 2 +inf N N 83 1.1 mrg # by [conj]: log(+inf - i*inf) = +inf - i*(pi/4) 84 1.1 mrg 0 + 2 +inf 53 -0x3243F6A8885A3p-50 2 +inf 2 -inf N N 85 1.1 mrg 86 1.1 mrg # log(+/-inf + i*nan) = +inf + i*nan 87 1.1 mrg 0 0 2 +inf 2 nan 2 +inf 2 nan N N 88 1.1 mrg 0 0 2 +inf 2 nan 2 -inf 2 nan N N 89 1.1 mrg 90 1.1 mrg # log(nan + i*y) = nan + i*nan for finite y 91 1.1 mrg 0 0 2 nan 2 nan 2 nan 2 1 N N 92 1.1 mrg 0 0 2 nan 2 nan 2 nan 2 +0 N N 93 1.1 mrg 0 0 2 nan 2 nan 2 nan 2 -0 N N 94 1.1 mrg 0 0 2 nan 2 nan 2 nan 2 -1 N N 95 1.1 mrg 96 1.1 mrg # log(nan + i*inf) = +inf + i*nan 97 1.1 mrg 0 0 2 +inf 2 nan 2 nan 2 +inf N N 98 1.1 mrg 0 0 2 +inf 2 nan 2 nan 2 -inf N N 99 1.1 mrg 100 1.1 mrg # log(nan + i*nan) = nan + i*nan 101 1.1 mrg 0 0 2 nan 2 nan 2 nan 2 nan N N 102 1.1 mrg 103 1.1 mrg # log(x + i*y) with either x or y zero and the other non-zero 104 1.1 mrg + 0 53 0xB5535E0FD3FBDp-50 2 0 5 0x11 2 0 N N 105 1.1 mrg + - 53 0xB5535E0FD3FBDp-50 53 0x3243F6A8885A3p-49 2 0 5 0x11 N N 106 1.1 mrg - - 53 0x5E38D81812CCBp-49 53 0x3243F6A8885A3p-48 5 -0x13 2 +0 N N 107 1.1 mrg - + 53 0x5E38D81812CCBp-49 53 -0x3243F6A8885A3p-48 5 -0x13 2 -0 N N 108 1.1 mrg - + 53 0x5E38D81812CCBp-49 53 -0x3243F6A8885A3p-49 2 0 5 -0x13 N N 109 1.1 mrg 110 1.1 mrg - + 53 0x19157DFDD1B3Fp-47 53 0x1921FB54442D19p-51 5 -0x17 2 +0 Z U 111 1.1 mrg - - 53 0x19157DFDD1B3Fp-47 53 -0x1921FB54442D19p-51 5 -0x17 2 -0 N D 112 1.1 mrg + - 53 0x19157DFDD1B3F1p-51 53 0x3243F6A8885A3p-48 5 -0x17 2 +0 U Z 113 1.1 mrg - + 53 0x19157DFDD1B3Fp-47 53 -0x3243F6A8885A3p-48 5 -0x17 2 -0 D N 114 1.1 mrg - - 53 0x8611A6D2511D3p-49 53 0x3243F6A8885A3p-48 7 -0x42 2 +0 Z D 115 1.1 mrg - + 53 0x8611A6D2511D3p-49 53 -0x3243F6A8885A3p-48 7 -0x42 2 -0 N Z 116 1.1 mrg + - 53 0x10C234DA4A23A7p-50 53 0x3243F6A8885A3p-48 7 -0x42 2 +0 U N 117 1.1 mrg - + 53 0x8611A6D2511D3p-49 53 -0x3243F6A8885A3p-48 7 -0x42 2 -0 D U 118 1.1 mrg 119 1.1 mrg # normal non-zero numbers 120 1.1 mrg - - 17 0x6701p-15 42 0x3b58ce0ac37p-43 2 2 2 1 N N 121 1.1 mrg - + 17 0x6701p-15 42 -0x3b58ce0ac37p-43 2 2 2 -1 N N 122 1.1 mrg - + 17 0x6701p-15 42 0x2ad8dce72ffp-40 2 -2 2 1 N N 123 1.1 mrg - - 17 0x6701p-15 42 -0x2ad8dce72ffp-40 2 -2 2 -1 N N 124 1.1 mrg - + 17 0x6701p-15 42 0x46db864bafp-38 2 1 2 2 N N 125 1.1 mrg - - 17 0x6701p-15 42 -0x46db864bafp-38 2 1 2 -2 N N 126 1.1 mrg - + 17 0x6701p-15 42 0x10468a8ace5p-39 2 -1 2 2 N N 127 1.1 mrg - - 17 0x6701p-15 42 -0x10468a8ace5p-39 2 -1 2 -2 N N 128 1.1 mrg 129 1.1 mrg # huge values 130 1.1 mrg + 0 53 0x162E42FEFA39Fp-39 2 0 2 0x1p1024 2 +0 U U 131 1.1 mrg + 0 53 0x162E42FEFA39Fp-38 2 0 2 0x1p2048 2 +0 U U 132 1.1 mrg + 0 53 0x162E42FEFA39Fp-37 2 0 2 0x1p4096 2 +0 U U 133 1.1 mrg + 0 53 0x162E42FEFA39Fp-36 2 0 2 0x1p8192 2 +0 U U 134 1.1 mrg + 0 53 0x162E42FEFA39Fp-35 2 0 2 0x1p16384 2 +0 U U 135 1.1 mrg + 0 53 0x162E42FEFA39Fp-34 2 0 2 0x1p32768 2 +0 U U 136 1.1 mrg + 0 53 0x162E42FEFA39Fp-33 2 0 2 0x1p65536 2 +0 U U 137 1.1 mrg + 0 53 0x162E42FEFA39Fp-32 2 0 2 0x1p131072 2 +0 U U 138 1.1 mrg + 0 53 0x162E42FEFA39Fp-31 2 0 2 0x1p262144 2 +0 U U 139 1.1 mrg + 0 53 0x162E42FEFA39Fp-30 2 0 2 0x1p524288 2 +0 U U 140 1.1 mrg + 0 53 0x162E42FEFA39Fp-29 2 0 2 0x1p1048576 2 +0 U U 141 1.1 mrg + 0 53 0x162E42FEFA39Fp-28 2 0 2 0x1p2097152 2 +0 U U 142 1.1 mrg + 0 53 0x162E42FEFA39Fp-27 2 0 2 0x1p4194304 2 +0 U U 143 1.1 mrg + 0 53 0x162E42FEFA39Fp-26 2 0 2 0x1p8388608 2 +0 U U 144 1.1 mrg + 0 53 0x162E42FEFA39Fp-25 2 0 2 0x1p16777216 2 +0 U U 145 1.1 mrg + 0 53 0x162E42FEFA39Fp-24 2 0 2 0x1p33554432 2 +0 U U 146 1.1 mrg + 0 53 0x162E42FEFA39Fp-23 2 0 2 0x1p67108864 2 +0 U U 147 1.1 mrg + 0 53 0x162E42FEFA39Fp-22 2 0 2 0x1p134217728 2 +0 U U 148 1.1 mrg + 0 53 0x162E42FEFA39Fp-21 2 0 2 0x1p268435456 2 +0 U U 149 1.1 mrg + 0 53 0x162E42FEFA39Fp-20 2 0 2 0x1p536870912 2 +0 U U 150 1.1 mrg + + 53 0x163108C75A1937p-43 53 0x1921FB54442D19p-53 2 0x1p1024 2 0x1p1024 U U 151 1.1 mrg + + 53 0x162FA5E32A2993p-42 53 0x1921FB54442D19p-53 2 0x1p2048 2 0x1p2048 U U 152 1.1 mrg + + 53 0xB177A388918E1p-40 53 0x1921FB54442D19p-53 2 0x1p4096 2 0x1p4096 U U 153 1.1 mrg + + 53 0x162E9BB80635D9p-40 53 0x1921FB54442D19p-53 2 0x1p8192 2 0x1p8192 U U 154 1.1 mrg + + 53 0x58B9BD6E00DF9p-37 53 0x1921FB54442D19p-53 2 0x1p16384 2 0x1p16384 U U 155 1.1 mrg + + 53 0xB172C969E9C75p-37 53 0x1921FB54442D19p-53 2 0x1p32768 2 0x1p32768 U U 156 1.1 mrg + + 53 0x162E4E161BB96Dp-37 53 0x1921FB54442D19p-53 2 0x1p65536 2 0x1p65536 U U 157 1.1 mrg + + 53 0xB172445457CD7p-35 2 0x1p0 2 0x1p131072 2 0x1p131072 U U 158 1.1 mrg + + 53 0x162E45C4C299CFp-35 2 0x1p0 2 0x1p262144 2 0x1p262144 U U 159 1.1 mrg + + 53 0x162E4461DE69DFp-34 2 0x1p0 2 0x1p524288 2 0x1p524288 U U 160 1.1 mrg + + 53 0x2C5C8760D8A3Dp-30 2 0x1p0 2 0x1p1048576 2 0x1p1048576 U U 161 1.1 mrg + + 53 0x58B90D5ECD17Bp-30 2 0x1p0 2 0x1p2097152 2 0x1p2097152 U U 162 1.1 mrg + + 53 0xB172195AB5FF7p-30 2 0x1p0 2 0x1p4194304 2 0x1p4194304 U U 163 1.1 mrg + + 53 0x162E4315287CEFp-30 2 0x1p0 2 0x1p8388608 2 0x1p8388608 U U 164 1.1 mrg + + 53 0x162E430A115B6Fp-29 2 0x1p0 2 0x1p16777216 2 0x1p16777216 U U 165 1.1 mrg + + 53 0x162E430485CAAFp-28 2 0x1p0 2 0x1p33554432 2 0x1p33554432 U U 166 1.1 mrg + + 53 0x162E4301C0025p-23 2 0x1p0 2 0x1p67108864 2 0x1p67108864 U U 167 1.1 mrg + + 53 0xB1721802E8F1p-21 2 0x1p0 2 0x1p134217728 2 0x1p134217728 U U 168 1.1 mrg + + 53 0x2C5C85FF57581p-22 2 0x1p0 2 0x1p268435456 2 0x1p268435456 U U 169 1.1 mrg 170 1.1 mrg # Example leading to intermediate overflow in x^2+y^2 171 1.1 mrg + + 53 0x58B90BFD4BCBFp-22 2 0x1p0 2 0x1p536870912 2 0x1p536870912 U U 172 1.1.1.2 mrg + + 53 0xb17217efbcc47p-22 2 0x1p0 2 0x3p1073741819 2 0x3p1073741819 U U 173 1.1 mrg # Example leading to intermediate underflow in x^2+y^2 174 1.1.1.2 mrg - - 53 -0xb17217f0e35a9p-22 2 0x3p-2 2 0x1p-1073741822 2 0x1p-1073741822 D D 175 1.1 mrg 176 1.1 mrg # log (-1 + i*eps), looped in previous version 177 1.1 mrg - - 2 0 2 3 2 -1 2 0x1p-1073741813 N N 178 1.1 mrg - - 2 0 2 3 2 -1 2 0x1p-1073741813 D D 179 1.1.1.2 mrg + + 2 0x1p-1073741822 2 4 2 -1 2 0x1p-1073741813 U U 180 1.1 mrg # log(1 + i*eps), could cause similar problems 181 1.1.1.2 mrg - + 2 0 2 0x1p-1073741822 2 1 2 0x1p-1073741822 N N 182 1.1.1.2 mrg - - 2 0 2 0 2 1 2 0x1p-1073741822 D D 183 1.1.1.2 mrg + + 2 0x1p-1073741822 2 0x1p-1073741822 2 1 2 0x1p-1073741822 U U 184 1.1 mrg # log (eps + i) 185 1.1.1.2 mrg - - 2 0 2 0x3p-1 2 0x1p-1073741822 2 1 N N 186 1.1.1.2 mrg - - 2 0 2 0x3p-1 2 0x1p-1073741822 2 1 D D 187 1.1.1.2 mrg + + 2 0x1p-1073741822 2 2 2 0x1p-1073741822 2 1 U U 188 1.1 mrg 189 1.1 mrg # log (close to 1 + i*eps), improves test coverage 190 1.1.1.2 mrg + - 2 -0x1p-36 2 0x1p-1073741822 36 0x0.FFFFFFFFF 2 0x1p-1073741822 N N 191