From ed587be0d0383f2925bf7650e8ccf1bf3adc44f9 Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Thu, 21 Sep 2023 22:14:41 +0300 Subject: gh-108303: Move all math files to `Lib/test/mathdata/` (#109512) --- Lib/test/cmath_testcases.txt | 2514 --------------------------- Lib/test/floating_points.txt | 1028 ----------- Lib/test/formatfloat_testcases.txt | 355 ---- Lib/test/ieee754.txt | 183 -- Lib/test/math_testcases.txt | 633 ------- Lib/test/mathdata/cmath_testcases.txt | 2514 +++++++++++++++++++++++++++ Lib/test/mathdata/floating_points.txt | 1028 +++++++++++ Lib/test/mathdata/formatfloat_testcases.txt | 355 ++++ Lib/test/mathdata/ieee754.txt | 183 ++ Lib/test/mathdata/math_testcases.txt | 633 +++++++ Lib/test/test_float.py | 3 +- Lib/test/test_math.py | 6 +- Makefile.pre.in | 1 + 13 files changed, 4719 insertions(+), 4717 deletions(-) delete mode 100644 Lib/test/cmath_testcases.txt delete mode 100644 Lib/test/floating_points.txt delete mode 100644 Lib/test/formatfloat_testcases.txt delete mode 100644 Lib/test/ieee754.txt delete mode 100644 Lib/test/math_testcases.txt create mode 100644 Lib/test/mathdata/cmath_testcases.txt create mode 100644 Lib/test/mathdata/floating_points.txt create mode 100644 Lib/test/mathdata/formatfloat_testcases.txt create mode 100644 Lib/test/mathdata/ieee754.txt create mode 100644 Lib/test/mathdata/math_testcases.txt diff --git a/Lib/test/cmath_testcases.txt b/Lib/test/cmath_testcases.txt deleted file mode 100644 index 0165e17..0000000 --- a/Lib/test/cmath_testcases.txt +++ /dev/null @@ -1,2514 +0,0 @@ --- Testcases for functions in cmath. --- --- Each line takes the form: --- --- -> --- --- where: --- --- is a short name identifying the test, --- --- is the function to be tested (exp, cos, asinh, ...), --- --- is a pair of floats separated by whitespace --- representing real and imaginary parts of a complex number, and --- --- is the expected (ideal) output value, again --- represented as a pair of floats. --- --- is a list of the floating-point flags required by C99 --- --- The possible flags are: --- --- divide-by-zero : raised when a finite input gives a --- mathematically infinite result. --- --- overflow : raised when a finite input gives a finite result whose --- real or imaginary part is too large to fit in the usual range --- of an IEEE 754 double. --- --- invalid : raised for invalid inputs. --- --- ignore-real-sign : indicates that the sign of the real part of --- the result is unspecified; if the real part of the result is --- given as inf, then both -inf and inf should be accepted as --- correct. --- --- ignore-imag-sign : indicates that the sign of the imaginary part --- of the result is unspecified. --- --- Flags may appear in any order. --- --- Lines beginning with '--' (like this one) start a comment, and are --- ignored. Blank lines, or lines containing only whitespace, are also --- ignored. - --- The majority of the values below were computed with the help of --- version 2.3 of the MPFR library for multiple-precision --- floating-point computations with correct rounding. All output --- values in this file are (modulo yet-to-be-discovered bugs) --- correctly rounded, provided that each input and output decimal --- floating-point value below is interpreted as a representation of --- the corresponding nearest IEEE 754 double-precision value. See the --- MPFR homepage at http://www.mpfr.org for more information about the --- MPFR project. - --- A minority of the test cases were generated with the help of --- mpmath 0.19 at 100 bit accuracy (http://mpmath.org) to improve --- coverage of real functions with real-valued arguments. These are --- used in test.test_math.MathTests.test_testfile, as well as in --- test_cmath. - - --------------------------- --- acos: Inverse cosine -- --------------------------- - --- zeros -acos0000 acos 0.0 0.0 -> 1.5707963267948966 -0.0 -acos0001 acos 0.0 -0.0 -> 1.5707963267948966 0.0 -acos0002 acos -0.0 0.0 -> 1.5707963267948966 -0.0 -acos0003 acos -0.0 -0.0 -> 1.5707963267948966 0.0 - --- branch points: +/-1 -acos0010 acos 1.0 0.0 -> 0.0 -0.0 -acos0011 acos 1.0 -0.0 -> 0.0 0.0 -acos0012 acos -1.0 0.0 -> 3.1415926535897931 -0.0 -acos0013 acos -1.0 -0.0 -> 3.1415926535897931 0.0 - --- values along both sides of real axis -acos0020 acos -9.8813129168249309e-324 0.0 -> 1.5707963267948966 -0.0 -acos0021 acos -9.8813129168249309e-324 -0.0 -> 1.5707963267948966 0.0 -acos0022 acos -1e-305 0.0 -> 1.5707963267948966 -0.0 -acos0023 acos -1e-305 -0.0 -> 1.5707963267948966 0.0 -acos0024 acos -1e-150 0.0 -> 1.5707963267948966 -0.0 -acos0025 acos -1e-150 -0.0 -> 1.5707963267948966 0.0 -acos0026 acos -9.9999999999999998e-17 0.0 -> 1.5707963267948968 -0.0 -acos0027 acos -9.9999999999999998e-17 -0.0 -> 1.5707963267948968 0.0 -acos0028 acos -0.001 0.0 -> 1.5717963269615634 -0.0 -acos0029 acos -0.001 -0.0 -> 1.5717963269615634 0.0 -acos0030 acos -0.57899999999999996 0.0 -> 2.1882979816120667 -0.0 -acos0031 acos -0.57899999999999996 -0.0 -> 2.1882979816120667 0.0 -acos0032 acos -0.99999999999999989 0.0 -> 3.1415926386886319 -0.0 -acos0033 acos -0.99999999999999989 -0.0 -> 3.1415926386886319 0.0 -acos0034 acos -1.0000000000000002 0.0 -> 3.1415926535897931 -2.1073424255447014e-08 -acos0035 acos -1.0000000000000002 -0.0 -> 3.1415926535897931 2.1073424255447014e-08 -acos0036 acos -1.0009999999999999 0.0 -> 3.1415926535897931 -0.044717633608306849 -acos0037 acos -1.0009999999999999 -0.0 -> 3.1415926535897931 0.044717633608306849 -acos0038 acos -2.0 0.0 -> 3.1415926535897931 -1.3169578969248168 -acos0039 acos -2.0 -0.0 -> 3.1415926535897931 1.3169578969248168 -acos0040 acos -23.0 0.0 -> 3.1415926535897931 -3.8281684713331012 -acos0041 acos -23.0 -0.0 -> 3.1415926535897931 3.8281684713331012 -acos0042 acos -10000000000000000.0 0.0 -> 3.1415926535897931 -37.534508668464674 -acos0043 acos -10000000000000000.0 -0.0 -> 3.1415926535897931 37.534508668464674 -acos0044 acos -9.9999999999999998e+149 0.0 -> 3.1415926535897931 -346.08091112966679 -acos0045 acos -9.9999999999999998e+149 -0.0 -> 3.1415926535897931 346.08091112966679 -acos0046 acos -1.0000000000000001e+299 0.0 -> 3.1415926535897931 -689.16608998577965 -acos0047 acos -1.0000000000000001e+299 -0.0 -> 3.1415926535897931 689.16608998577965 -acos0048 acos 9.8813129168249309e-324 0.0 -> 1.5707963267948966 -0.0 -acos0049 acos 9.8813129168249309e-324 -0.0 -> 1.5707963267948966 0.0 -acos0050 acos 1e-305 0.0 -> 1.5707963267948966 -0.0 -acos0051 acos 1e-305 -0.0 -> 1.5707963267948966 0.0 -acos0052 acos 1e-150 0.0 -> 1.5707963267948966 -0.0 -acos0053 acos 1e-150 -0.0 -> 1.5707963267948966 0.0 -acos0054 acos 9.9999999999999998e-17 0.0 -> 1.5707963267948966 -0.0 -acos0055 acos 9.9999999999999998e-17 -0.0 -> 1.5707963267948966 0.0 -acos0056 acos 0.001 0.0 -> 1.56979632662823 -0.0 -acos0057 acos 0.001 -0.0 -> 1.56979632662823 0.0 -acos0058 acos 0.57899999999999996 0.0 -> 0.95329467197772655 -0.0 -acos0059 acos 0.57899999999999996 -0.0 -> 0.95329467197772655 0.0 -acos0060 acos 0.99999999999999989 0.0 -> 1.4901161193847656e-08 -0.0 -acos0061 acos 0.99999999999999989 -0.0 -> 1.4901161193847656e-08 0.0 -acos0062 acos 1.0000000000000002 0.0 -> 0.0 -2.1073424255447014e-08 -acos0063 acos 1.0000000000000002 -0.0 -> 0.0 2.1073424255447014e-08 -acos0064 acos 1.0009999999999999 0.0 -> 0.0 -0.044717633608306849 -acos0065 acos 1.0009999999999999 -0.0 -> 0.0 0.044717633608306849 -acos0066 acos 2.0 0.0 -> 0.0 -1.3169578969248168 -acos0067 acos 2.0 -0.0 -> 0.0 1.3169578969248168 -acos0068 acos 23.0 0.0 -> 0.0 -3.8281684713331012 -acos0069 acos 23.0 -0.0 -> 0.0 3.8281684713331012 -acos0070 acos 10000000000000000.0 0.0 -> 0.0 -37.534508668464674 -acos0071 acos 10000000000000000.0 -0.0 -> 0.0 37.534508668464674 -acos0072 acos 9.9999999999999998e+149 0.0 -> 0.0 -346.08091112966679 -acos0073 acos 9.9999999999999998e+149 -0.0 -> 0.0 346.08091112966679 -acos0074 acos 1.0000000000000001e+299 0.0 -> 0.0 -689.16608998577965 -acos0075 acos 1.0000000000000001e+299 -0.0 -> 0.0 689.16608998577965 - --- random inputs -acos0100 acos -3.3307113324596682 -10.732007530863266 -> 1.8706085694482339 3.113986806554613 -acos0101 acos -2863.952991743291 -2681013315.2571239 -> 1.5707973950301699 22.402607843274758 -acos0102 acos -0.33072639793220088 -0.85055464658253055 -> 1.8219426895922601 0.79250166729311966 -acos0103 acos -2.5722325842097802 -12.703940809821574 -> 1.7699942413107408 3.2565170156527325 -acos0104 acos -42.495233785459583 -0.54039320751337161 -> 3.1288732573153304 4.4424815519735601 -acos0105 acos -1.1363818625856401 9641.1325498630376 -> 1.5709141948820049 -9.8669410553254284 -acos0106 acos -2.4398426824157866e-11 0.33002051890266165 -> 1.570796326818066 -0.32430578041578667 -acos0107 acos -1.3521340428186552 2.9369737912076772 -> 1.9849059192339338 -1.8822893674117942 -acos0108 acos -1.827364706477915 1.0355459232147557 -> 2.5732246307960032 -1.4090688267854969 -acos0109 acos -0.25978373706403546 10.09712669185833 -> 1.5963940386378306 -3.0081673050196063 -acos0110 acos 0.33561778471072551 -4587350.6823999118 -> 1.5707962536333251 16.031960402579539 -acos0111 acos 0.49133444610998445 -0.8071422362990015 -> 1.1908761712801788 0.78573345813187867 -acos0112 acos 0.42196734507823974 -2.4812965431745115 -> 1.414091186100692 1.651707260988172 -acos0113 acos 2.961426210100655 -219.03295695248664 -> 1.5572768319822778 6.0824659885827304 -acos0114 acos 2.886209063652641 -20.38011207220606 -> 1.4302765252297889 3.718201853147642 -acos0115 acos 0.4180568075276509 1.4833433990823484 -> 1.3393834558303042 -1.2079847758301576 -acos0116 acos 52.376111405924718 0.013930429001941001 -> 0.00026601761804024188 -4.6515066691204714 -acos0117 acos 41637948387.625969 1.563418292894041 -> 3.7547918507883548e-11 -25.145424989809381 -acos0118 acos 0.061226659122249526 0.8447234394615154 -> 1.5240280306367315 -0.76791798971140812 -acos0119 acos 2.4480466420442959e+26 0.18002339201384662 -> 7.353756620564798e-28 -61.455650015996376 - --- values near infinity -acos0200 acos 1.6206860518683021e+308 1.0308426226285283e+308 -> 0.56650826093826223 -710.54206874241561 -acos0201 acos 1.2067735875070062e+308 -1.3429173724390276e+308 -> 0.83874369390864889 710.48017794027498 -acos0202 acos -7.4130145132549047e+307 1.1759130543927645e+308 -> 2.1332729346478536 -710.21871115698752 -acos0203 acos -8.6329426442257249e+307 -1.2316282952184133e+308 -> 2.1821511032444838 710.29752145697148 -acos0204 acos 0.0 1.4289713855849746e+308 -> 1.5707963267948966 -710.24631069738996 -acos0205 acos -0.0 1.3153524545987432e+308 -> 1.5707963267948966 -710.1634604787539 -acos0206 acos 0.0 -9.6229037669269321e+307 -> 1.5707963267948966 709.85091679573691 -acos0207 acos -0.0 -4.9783616421107088e+307 -> 1.5707963267948966 709.19187157911233 -acos0208 acos 1.3937541925739389e+308 0.0 -> 0.0 -710.22135678707264 -acos0209 acos 9.1362388967371536e+307 -0.0 -> 0.0 709.79901953124613 -acos0210 acos -1.3457361220697436e+308 0.0 -> 3.1415926535897931 -710.18629698871848 -acos0211 acos -5.4699090056144284e+307 -0.0 -> 3.1415926535897931 709.28603271085649 -acos0212 acos 1.5880716932358901e+308 5.5638401252339929 -> 3.503519487773873e-308 -710.35187633140583 -acos0213 acos 1.2497211663463164e+308 -3.0456477717911024 -> 2.4370618453197486e-308 710.11227628223412 -acos0214 acos -9.9016224006029528e+307 4.9570427340789056 -> 3.1415926535897931 -709.87946935229468 -acos0215 acos -1.5854071066874139e+308 -4.4233577741497783 -> 3.1415926535897931 710.35019704672004 -acos0216 acos 9.3674623083647628 1.5209559051877979e+308 -> 1.5707963267948966 -710.30869484491086 -acos0217 acos 8.1773832021784383 -6.6093445795000056e+307 -> 1.5707963267948966 709.4752552227792 -acos0218 acos -3.1845935000665104 1.5768856396650893e+308 -> 1.5707963267948966 -710.34480761042687 -acos0219 acos -1.0577303880953903 -6.4574626815735613e+307 -> 1.5707963267948966 709.45200719662046 - --- values near 0 -acos0220 acos 1.8566986970714045e-320 3.1867234156760402e-321 -> 1.5707963267948966 -3.1867234156760402e-321 -acos0221 acos 7.9050503334599447e-323 -8.8931816251424378e-323 -> 1.5707963267948966 8.8931816251424378e-323 -acos0222 acos -4.4465908125712189e-323 2.4654065097222727e-311 -> 1.5707963267948966 -2.4654065097222727e-311 -acos0223 acos -6.1016916408192619e-311 -2.4703282292062327e-323 -> 1.5707963267948966 2.4703282292062327e-323 -acos0224 acos 0.0 3.4305783621842729e-311 -> 1.5707963267948966 -3.4305783621842729e-311 -acos0225 acos -0.0 1.6117409498633145e-319 -> 1.5707963267948966 -1.6117409498633145e-319 -acos0226 acos 0.0 -4.9900630229965901e-322 -> 1.5707963267948966 4.9900630229965901e-322 -acos0227 acos -0.0 -4.4889279210592818e-311 -> 1.5707963267948966 4.4889279210592818e-311 -acos0228 acos 5.3297678681477214e-312 0.0 -> 1.5707963267948966 -0.0 -acos0229 acos 6.2073425897211614e-313 -0.0 -> 1.5707963267948966 0.0 -acos0230 acos -4.9406564584124654e-324 0.0 -> 1.5707963267948966 -0.0 -acos0231 acos -1.7107517052899003e-318 -0.0 -> 1.5707963267948966 0.0 - --- special values -acos1000 acos 0.0 0.0 -> 1.5707963267948966 -0.0 -acos1001 acos 0.0 -0.0 -> 1.5707963267948966 0.0 -acos1002 acos -0.0 0.0 -> 1.5707963267948966 -0.0 -acos1003 acos -0.0 -0.0 -> 1.5707963267948966 0.0 -acos1004 acos 0.0 nan -> 1.5707963267948966 nan -acos1005 acos -0.0 nan -> 1.5707963267948966 nan -acos1006 acos -2.3 inf -> 1.5707963267948966 -inf -acos1007 acos -0.0 inf -> 1.5707963267948966 -inf -acos1008 acos 0.0 inf -> 1.5707963267948966 -inf -acos1009 acos 2.3 inf -> 1.5707963267948966 -inf -acos1010 acos -2.3 nan -> nan nan -acos1011 acos 2.3 nan -> nan nan -acos1012 acos -inf 2.3 -> 3.1415926535897931 -inf -acos1013 acos -inf 0.0 -> 3.1415926535897931 -inf -acos1014 acos inf 2.3 -> 0.0 -inf -acos1015 acos inf 0.0 -> 0.0 -inf -acos1016 acos -inf inf -> 2.3561944901923448 -inf -acos1017 acos inf inf -> 0.78539816339744828 -inf -acos1018 acos inf nan -> nan inf ignore-imag-sign -acos1019 acos -inf nan -> nan inf ignore-imag-sign -acos1020 acos nan 0.0 -> nan nan -acos1021 acos nan 2.3 -> nan nan -acos1022 acos nan inf -> nan -inf -acos1023 acos nan nan -> nan nan -acos1024 acos -2.3 -inf -> 1.5707963267948966 inf -acos1025 acos -0.0 -inf -> 1.5707963267948966 inf -acos1026 acos 0.0 -inf -> 1.5707963267948966 inf -acos1027 acos 2.3 -inf -> 1.5707963267948966 inf -acos1028 acos -inf -2.3 -> 3.1415926535897931 inf -acos1029 acos -inf -0.0 -> 3.1415926535897931 inf -acos1030 acos inf -2.3 -> 0.0 inf -acos1031 acos inf -0.0 -> 0.0 inf -acos1032 acos -inf -inf -> 2.3561944901923448 inf -acos1033 acos inf -inf -> 0.78539816339744828 inf -acos1034 acos nan -0.0 -> nan nan -acos1035 acos nan -2.3 -> nan nan -acos1036 acos nan -inf -> nan inf - - --------------------------------------- --- acosh: Inverse hyperbolic cosine -- --------------------------------------- - --- zeros -acosh0000 acosh 0.0 0.0 -> 0.0 1.5707963267948966 -acosh0001 acosh 0.0 -0.0 -> 0.0 -1.5707963267948966 -acosh0002 acosh -0.0 0.0 -> 0.0 1.5707963267948966 -acosh0003 acosh -0.0 -0.0 -> 0.0 -1.5707963267948966 - --- branch points: +/-1 -acosh0010 acosh 1.0 0.0 -> 0.0 0.0 -acosh0011 acosh 1.0 -0.0 -> 0.0 -0.0 -acosh0012 acosh -1.0 0.0 -> 0.0 3.1415926535897931 -acosh0013 acosh -1.0 -0.0 -> 0.0 -3.1415926535897931 - --- values along both sides of real axis -acosh0020 acosh -9.8813129168249309e-324 0.0 -> 0.0 1.5707963267948966 -acosh0021 acosh -9.8813129168249309e-324 -0.0 -> 0.0 -1.5707963267948966 -acosh0022 acosh -1e-305 0.0 -> 0.0 1.5707963267948966 -acosh0023 acosh -1e-305 -0.0 -> 0.0 -1.5707963267948966 -acosh0024 acosh -1e-150 0.0 -> 0.0 1.5707963267948966 -acosh0025 acosh -1e-150 -0.0 -> 0.0 -1.5707963267948966 -acosh0026 acosh -9.9999999999999998e-17 0.0 -> 0.0 1.5707963267948968 -acosh0027 acosh -9.9999999999999998e-17 -0.0 -> 0.0 -1.5707963267948968 -acosh0028 acosh -0.001 0.0 -> 0.0 1.5717963269615634 -acosh0029 acosh -0.001 -0.0 -> 0.0 -1.5717963269615634 -acosh0030 acosh -0.57899999999999996 0.0 -> 0.0 2.1882979816120667 -acosh0031 acosh -0.57899999999999996 -0.0 -> 0.0 -2.1882979816120667 -acosh0032 acosh -0.99999999999999989 0.0 -> 0.0 3.1415926386886319 -acosh0033 acosh -0.99999999999999989 -0.0 -> 0.0 -3.1415926386886319 -acosh0034 acosh -1.0000000000000002 0.0 -> 2.1073424255447014e-08 3.1415926535897931 -acosh0035 acosh -1.0000000000000002 -0.0 -> 2.1073424255447014e-08 -3.1415926535897931 -acosh0036 acosh -1.0009999999999999 0.0 -> 0.044717633608306849 3.1415926535897931 -acosh0037 acosh -1.0009999999999999 -0.0 -> 0.044717633608306849 -3.1415926535897931 -acosh0038 acosh -2.0 0.0 -> 1.3169578969248168 3.1415926535897931 -acosh0039 acosh -2.0 -0.0 -> 1.3169578969248168 -3.1415926535897931 -acosh0040 acosh -23.0 0.0 -> 3.8281684713331012 3.1415926535897931 -acosh0041 acosh -23.0 -0.0 -> 3.8281684713331012 -3.1415926535897931 -acosh0042 acosh -10000000000000000.0 0.0 -> 37.534508668464674 3.1415926535897931 -acosh0043 acosh -10000000000000000.0 -0.0 -> 37.534508668464674 -3.1415926535897931 -acosh0044 acosh -9.9999999999999998e+149 0.0 -> 346.08091112966679 3.1415926535897931 -acosh0045 acosh -9.9999999999999998e+149 -0.0 -> 346.08091112966679 -3.1415926535897931 -acosh0046 acosh -1.0000000000000001e+299 0.0 -> 689.16608998577965 3.1415926535897931 -acosh0047 acosh -1.0000000000000001e+299 -0.0 -> 689.16608998577965 -3.1415926535897931 -acosh0048 acosh 9.8813129168249309e-324 0.0 -> 0.0 1.5707963267948966 -acosh0049 acosh 9.8813129168249309e-324 -0.0 -> 0.0 -1.5707963267948966 -acosh0050 acosh 1e-305 0.0 -> 0.0 1.5707963267948966 -acosh0051 acosh 1e-305 -0.0 -> 0.0 -1.5707963267948966 -acosh0052 acosh 1e-150 0.0 -> 0.0 1.5707963267948966 -acosh0053 acosh 1e-150 -0.0 -> 0.0 -1.5707963267948966 -acosh0054 acosh 9.9999999999999998e-17 0.0 -> 0.0 1.5707963267948966 -acosh0055 acosh 9.9999999999999998e-17 -0.0 -> 0.0 -1.5707963267948966 -acosh0056 acosh 0.001 0.0 -> 0.0 1.56979632662823 -acosh0057 acosh 0.001 -0.0 -> 0.0 -1.56979632662823 -acosh0058 acosh 0.57899999999999996 0.0 -> 0.0 0.95329467197772655 -acosh0059 acosh 0.57899999999999996 -0.0 -> 0.0 -0.95329467197772655 -acosh0060 acosh 0.99999999999999989 0.0 -> 0.0 1.4901161193847656e-08 -acosh0061 acosh 0.99999999999999989 -0.0 -> 0.0 -1.4901161193847656e-08 -acosh0062 acosh 1.0000000000000002 0.0 -> 2.1073424255447014e-08 0.0 -acosh0063 acosh 1.0000000000000002 -0.0 -> 2.1073424255447014e-08 -0.0 -acosh0064 acosh 1.0009999999999999 0.0 -> 0.044717633608306849 0.0 -acosh0065 acosh 1.0009999999999999 -0.0 -> 0.044717633608306849 -0.0 -acosh0066 acosh 2.0 0.0 -> 1.3169578969248168 0.0 -acosh0067 acosh 2.0 -0.0 -> 1.3169578969248168 -0.0 -acosh0068 acosh 23.0 0.0 -> 3.8281684713331012 0.0 -acosh0069 acosh 23.0 -0.0 -> 3.8281684713331012 -0.0 -acosh0070 acosh 10000000000000000.0 0.0 -> 37.534508668464674 0.0 -acosh0071 acosh 10000000000000000.0 -0.0 -> 37.534508668464674 -0.0 -acosh0072 acosh 9.9999999999999998e+149 0.0 -> 346.08091112966679 0.0 -acosh0073 acosh 9.9999999999999998e+149 -0.0 -> 346.08091112966679 -0.0 -acosh0074 acosh 1.0000000000000001e+299 0.0 -> 689.16608998577965 0.0 -acosh0075 acosh 1.0000000000000001e+299 -0.0 -> 689.16608998577965 -0.0 - --- random inputs -acosh0100 acosh -1.4328589581250843 -1.8370347775558309 -> 1.5526962646549587 -2.190250168435786 -acosh0101 acosh -0.31075819156220957 -1.0772555786839297 -> 0.95139168286193709 -1.7812228089636479 -acosh0102 acosh -1.9044776578070453 -20.485370158932124 -> 3.7177411088932359 -1.6633888745861227 -acosh0103 acosh -0.075642506000858742 -21965976320.873051 -> 24.505907742881991 -1.5707963267983402 -acosh0104 acosh -1.6162271181056307 -3.0369343458696099 -> 1.9407057262861227 -2.0429549461750209 -acosh0105 acosh -0.3103780280298063 0.00018054880018078987 -> 0.00018992877058761416 1.886386995096728 -acosh0106 acosh -9159468751.5897655 5.8014747664273649 -> 23.631201197959193 3.1415926529564078 -acosh0107 acosh -0.037739157550933884 0.21841357493510705 -> 0.21685844960602488 1.6076735133449402 -acosh0108 acosh -8225991.0508394297 0.28318543008913644 -> 16.615956520420287 3.1415926191641019 -acosh0109 acosh -35.620070502302639 0.31303237005015 -> 4.2658980006943965 3.1328013255541873 -acosh0110 acosh 96.729939906820917 -0.029345228372365334 -> 5.2650434775863548 -0.00030338895866972843 -acosh0111 acosh 0.59656024007966491 -2.0412294654163978 -> 1.4923002024287835 -1.312568421900338 -acosh0112 acosh 109.29384112677828 -0.00015454863061533812 -> 5.3871662961545477 -1.4141245154061214e-06 -acosh0113 acosh 8.6705651969361597 -3.6723631649787465 -> 2.9336180958363545 -0.40267362031872861 -acosh0114 acosh 1.8101646445052686 -0.012345132721855478 -> 1.1997148566285769 -0.0081813912760150265 -acosh0115 acosh 52.56897195025288 0.001113916065985443 -> 4.6551827622264135 2.1193445872040307e-05 -acosh0116 acosh 0.28336786164214739 355643992457.40485 -> 27.290343226816528 1.5707963267940999 -acosh0117 acosh 0.73876621291911437 2.8828594541104322e-20 -> 4.2774820978159067e-20 0.73955845836827927 -acosh0118 acosh 0.025865471781718878 37125746064318.492 -> 31.938478989418012 1.5707963267948959 -acosh0119 acosh 2.2047353511780132 0.074712248143489271 -> 1.4286403248698021 0.037997904971626598 - --- values near infinity -acosh0200 acosh 8.1548592876467785e+307 9.0943779335951128e+307 -> 710.08944620800605 0.83981165425478954 -acosh0201 acosh 1.4237229680972531e+308 -1.0336966617874858e+308 -> 710.4543331094759 -0.6279972876348755 -acosh0202 acosh -1.5014526899738939e+308 1.5670700378448792e+308 -> 710.66420706795464 2.3348137299106697 -acosh0203 acosh -1.0939040375213928e+308 -1.0416960351127978e+308 -> 710.30182863115886 -2.380636147787027 -acosh0204 acosh 0.0 1.476062433559588e+308 -> 710.27873384716929 1.5707963267948966 -acosh0205 acosh -0.0 6.2077210326221094e+307 -> 709.41256457484769 1.5707963267948966 -acosh0206 acosh 0.0 -1.5621899909968308e+308 -> 710.33544449990734 -1.5707963267948966 -acosh0207 acosh -0.0 -8.3556624833839122e+307 -> 709.70971018048317 -1.5707963267948966 -acosh0208 acosh 1.3067079752499342e+308 0.0 -> 710.15686680107228 0.0 -acosh0209 acosh 1.5653640340214026e+308 -0.0 -> 710.33747422926706 -0.0 -acosh0210 acosh -6.9011375992290636e+307 0.0 -> 709.51845699719922 3.1415926535897931 -acosh0211 acosh -9.9539576809926973e+307 -0.0 -> 709.88474095870185 -3.1415926535897931 -acosh0212 acosh 7.6449598518914925e+307 9.5706540768268358 -> 709.62081731754802 1.2518906916769345e-307 -acosh0213 acosh 5.4325410972602197e+307 -7.8064807816522706 -> 709.279177727925 -1.4369851312471974e-307 -acosh0214 acosh -1.1523626112360465e+308 7.0617510038869336 -> 710.03117010216909 3.1415926535897931 -acosh0215 acosh -1.1685027786862599e+308 -5.1568558357925625 -> 710.04507907571417 -3.1415926535897931 -acosh0216 acosh 3.0236370339788721 1.7503248720096417e+308 -> 710.44915723458064 1.5707963267948966 -acosh0217 acosh 6.6108007926031149 -9.1469968225806149e+307 -> 709.80019633903328 -1.5707963267948966 -acosh0218 acosh -5.1096262905623959 6.4484926785412395e+307 -> 709.45061713997973 1.5707963267948966 -acosh0219 acosh -2.8080920608735846 -1.7716118836519368e+308 -> 710.46124562363445 -1.5707963267948966 - --- values near 0 -acosh0220 acosh 4.5560530326699304e-317 7.3048989121436657e-318 -> 7.3048989121436657e-318 1.5707963267948966 -acosh0221 acosh 4.8754274133585331e-314 -9.8469794897684199e-315 -> 9.8469794897684199e-315 -1.5707963267948966 -acosh0222 acosh -4.6748876009960097e-312 9.7900342887557606e-318 -> 9.7900342887557606e-318 1.5707963267948966 -acosh0223 acosh -4.3136871538399236e-320 -4.9406564584124654e-323 -> 4.9406564584124654e-323 -1.5707963267948966 -acosh0224 acosh 0.0 4.3431013866496774e-314 -> 4.3431013866496774e-314 1.5707963267948966 -acosh0225 acosh -0.0 6.0147334335829184e-317 -> 6.0147334335829184e-317 1.5707963267948966 -acosh0226 acosh 0.0 -1.2880291387081297e-320 -> 1.2880291387081297e-320 -1.5707963267948966 -acosh0227 acosh -0.0 -1.4401563976534621e-317 -> 1.4401563976534621e-317 -1.5707963267948966 -acosh0228 acosh 1.3689680570863091e-313 0.0 -> 0.0 1.5707963267948966 -acosh0229 acosh 1.5304346893494371e-312 -0.0 -> 0.0 -1.5707963267948966 -acosh0230 acosh -3.7450175954766488e-320 0.0 -> 0.0 1.5707963267948966 -acosh0231 acosh -8.4250563080885801e-311 -0.0 -> 0.0 -1.5707963267948966 - --- special values -acosh1000 acosh 0.0 0.0 -> 0.0 1.5707963267948966 -acosh1001 acosh -0.0 0.0 -> 0.0 1.5707963267948966 -acosh1002 acosh 0.0 inf -> inf 1.5707963267948966 -acosh1003 acosh 2.3 inf -> inf 1.5707963267948966 -acosh1004 acosh -0.0 inf -> inf 1.5707963267948966 -acosh1005 acosh -2.3 inf -> inf 1.5707963267948966 -acosh1006 acosh 0.0 nan -> nan nan -acosh1007 acosh 2.3 nan -> nan nan -acosh1008 acosh -0.0 nan -> nan nan -acosh1009 acosh -2.3 nan -> nan nan -acosh1010 acosh -inf 0.0 -> inf 3.1415926535897931 -acosh1011 acosh -inf 2.3 -> inf 3.1415926535897931 -acosh1012 acosh inf 0.0 -> inf 0.0 -acosh1013 acosh inf 2.3 -> inf 0.0 -acosh1014 acosh -inf inf -> inf 2.3561944901923448 -acosh1015 acosh inf inf -> inf 0.78539816339744828 -acosh1016 acosh inf nan -> inf nan -acosh1017 acosh -inf nan -> inf nan -acosh1018 acosh nan 0.0 -> nan nan -acosh1019 acosh nan 2.3 -> nan nan -acosh1020 acosh nan inf -> inf nan -acosh1021 acosh nan nan -> nan nan -acosh1022 acosh 0.0 -0.0 -> 0.0 -1.5707963267948966 -acosh1023 acosh -0.0 -0.0 -> 0.0 -1.5707963267948966 -acosh1024 acosh 0.0 -inf -> inf -1.5707963267948966 -acosh1025 acosh 2.3 -inf -> inf -1.5707963267948966 -acosh1026 acosh -0.0 -inf -> inf -1.5707963267948966 -acosh1027 acosh -2.3 -inf -> inf -1.5707963267948966 -acosh1028 acosh -inf -0.0 -> inf -3.1415926535897931 -acosh1029 acosh -inf -2.3 -> inf -3.1415926535897931 -acosh1030 acosh inf -0.0 -> inf -0.0 -acosh1031 acosh inf -2.3 -> inf -0.0 -acosh1032 acosh -inf -inf -> inf -2.3561944901923448 -acosh1033 acosh inf -inf -> inf -0.78539816339744828 -acosh1034 acosh nan -0.0 -> nan nan -acosh1035 acosh nan -2.3 -> nan nan -acosh1036 acosh nan -inf -> inf nan - - ------------------------- --- asin: Inverse sine -- ------------------------- - --- zeros -asin0000 asin 0.0 0.0 -> 0.0 0.0 -asin0001 asin 0.0 -0.0 -> 0.0 -0.0 -asin0002 asin -0.0 0.0 -> -0.0 0.0 -asin0003 asin -0.0 -0.0 -> -0.0 -0.0 - --- branch points: +/-1 -asin0010 asin 1.0 0.0 -> 1.5707963267948966 0.0 -asin0011 asin 1.0 -0.0 -> 1.5707963267948966 -0.0 -asin0012 asin -1.0 0.0 -> -1.5707963267948966 0.0 -asin0013 asin -1.0 -0.0 -> -1.5707963267948966 -0.0 - --- values along both sides of real axis -asin0020 asin -9.8813129168249309e-324 0.0 -> -9.8813129168249309e-324 0.0 -asin0021 asin -9.8813129168249309e-324 -0.0 -> -9.8813129168249309e-324 -0.0 -asin0022 asin -1e-305 0.0 -> -1e-305 0.0 -asin0023 asin -1e-305 -0.0 -> -1e-305 -0.0 -asin0024 asin -1e-150 0.0 -> -1e-150 0.0 -asin0025 asin -1e-150 -0.0 -> -1e-150 -0.0 -asin0026 asin -9.9999999999999998e-17 0.0 -> -9.9999999999999998e-17 0.0 -asin0027 asin -9.9999999999999998e-17 -0.0 -> -9.9999999999999998e-17 -0.0 -asin0028 asin -0.001 0.0 -> -0.0010000001666667416 0.0 -asin0029 asin -0.001 -0.0 -> -0.0010000001666667416 -0.0 -asin0030 asin -0.57899999999999996 0.0 -> -0.61750165481717001 0.0 -asin0031 asin -0.57899999999999996 -0.0 -> -0.61750165481717001 -0.0 -asin0032 asin -0.99999999999999989 0.0 -> -1.5707963118937354 0.0 -asin0033 asin -0.99999999999999989 -0.0 -> -1.5707963118937354 -0.0 -asin0034 asin -1.0000000000000002 0.0 -> -1.5707963267948966 2.1073424255447014e-08 -asin0035 asin -1.0000000000000002 -0.0 -> -1.5707963267948966 -2.1073424255447014e-08 -asin0036 asin -1.0009999999999999 0.0 -> -1.5707963267948966 0.044717633608306849 -asin0037 asin -1.0009999999999999 -0.0 -> -1.5707963267948966 -0.044717633608306849 -asin0038 asin -2.0 0.0 -> -1.5707963267948966 1.3169578969248168 -asin0039 asin -2.0 -0.0 -> -1.5707963267948966 -1.3169578969248168 -asin0040 asin -23.0 0.0 -> -1.5707963267948966 3.8281684713331012 -asin0041 asin -23.0 -0.0 -> -1.5707963267948966 -3.8281684713331012 -asin0042 asin -10000000000000000.0 0.0 -> -1.5707963267948966 37.534508668464674 -asin0043 asin -10000000000000000.0 -0.0 -> -1.5707963267948966 -37.534508668464674 -asin0044 asin -9.9999999999999998e+149 0.0 -> -1.5707963267948966 346.08091112966679 -asin0045 asin -9.9999999999999998e+149 -0.0 -> -1.5707963267948966 -346.08091112966679 -asin0046 asin -1.0000000000000001e+299 0.0 -> -1.5707963267948966 689.16608998577965 -asin0047 asin -1.0000000000000001e+299 -0.0 -> -1.5707963267948966 -689.16608998577965 -asin0048 asin 9.8813129168249309e-324 0.0 -> 9.8813129168249309e-324 0.0 -asin0049 asin 9.8813129168249309e-324 -0.0 -> 9.8813129168249309e-324 -0.0 -asin0050 asin 1e-305 0.0 -> 1e-305 0.0 -asin0051 asin 1e-305 -0.0 -> 1e-305 -0.0 -asin0052 asin 1e-150 0.0 -> 1e-150 0.0 -asin0053 asin 1e-150 -0.0 -> 1e-150 -0.0 -asin0054 asin 9.9999999999999998e-17 0.0 -> 9.9999999999999998e-17 0.0 -asin0055 asin 9.9999999999999998e-17 -0.0 -> 9.9999999999999998e-17 -0.0 -asin0056 asin 0.001 0.0 -> 0.0010000001666667416 0.0 -asin0057 asin 0.001 -0.0 -> 0.0010000001666667416 -0.0 -asin0058 asin 0.57899999999999996 0.0 -> 0.61750165481717001 0.0 -asin0059 asin 0.57899999999999996 -0.0 -> 0.61750165481717001 -0.0 -asin0060 asin 0.99999999999999989 0.0 -> 1.5707963118937354 0.0 -asin0061 asin 0.99999999999999989 -0.0 -> 1.5707963118937354 -0.0 -asin0062 asin 1.0000000000000002 0.0 -> 1.5707963267948966 2.1073424255447014e-08 -asin0063 asin 1.0000000000000002 -0.0 -> 1.5707963267948966 -2.1073424255447014e-08 -asin0064 asin 1.0009999999999999 0.0 -> 1.5707963267948966 0.044717633608306849 -asin0065 asin 1.0009999999999999 -0.0 -> 1.5707963267948966 -0.044717633608306849 -asin0066 asin 2.0 0.0 -> 1.5707963267948966 1.3169578969248168 -asin0067 asin 2.0 -0.0 -> 1.5707963267948966 -1.3169578969248168 -asin0068 asin 23.0 0.0 -> 1.5707963267948966 3.8281684713331012 -asin0069 asin 23.0 -0.0 -> 1.5707963267948966 -3.8281684713331012 -asin0070 asin 10000000000000000.0 0.0 -> 1.5707963267948966 37.534508668464674 -asin0071 asin 10000000000000000.0 -0.0 -> 1.5707963267948966 -37.534508668464674 -asin0072 asin 9.9999999999999998e+149 0.0 -> 1.5707963267948966 346.08091112966679 -asin0073 asin 9.9999999999999998e+149 -0.0 -> 1.5707963267948966 -346.08091112966679 -asin0074 asin 1.0000000000000001e+299 0.0 -> 1.5707963267948966 689.16608998577965 -asin0075 asin 1.0000000000000001e+299 -0.0 -> 1.5707963267948966 -689.16608998577965 - --- random inputs -asin0100 asin -1.5979555835086083 -0.15003009814595247 -> -1.4515369557405788 -1.0544476399790823 -asin0101 asin -0.57488225895317679 -9.6080397838952743e-13 -> -0.61246024460412851 -1.174238005400403e-12 -asin0102 asin -3.6508087930516249 -0.36027527093220152 -> -1.4685890605305874 -1.9742273007152038 -asin0103 asin -1.5238659792326819 -1.1360813516996364 -> -0.86080051691147275 -1.3223742205689195 -asin0104 asin -1592.0639045555306 -0.72362427935018236 -> -1.5703418071175179 -8.0659336918729228 -asin0105 asin -0.19835471371312019 4.2131508416697709 -> -0.045777831019935149 2.1461732751933171 -asin0106 asin -1.918471054430213 0.40603305079779234 -> -1.3301396585791556 1.30263642314981 -asin0107 asin -254495.01623373642 0.71084414434470822 -> -1.5707935336394359 13.140183712762321 -asin0108 asin -0.31315882715691157 3.9647994288429866 -> -0.076450403840916004 2.0889762138713457 -asin0109 asin -0.90017064284720816 1.2530659485907105 -> -0.53466509741943447 1.1702811557577 -asin0110 asin 2.1615181696571075 -0.14058647488229523 -> 1.4976166323896871 -1.4085811039334604 -asin0111 asin 1.2104749210707795 -0.85732484485298999 -> 0.83913071588343924 -1.0681719250525901 -asin0112 asin 1.7059733185128891 -0.84032966373156581 -> 1.0510900815816229 -1.2967979791361652 -asin0113 asin 9.9137085017290687 -1.4608383970250893 -> 1.4237704820128891 -2.995414677560686 -asin0114 asin 117.12344751041495 -5453908091.5334015 -> 2.1475141411392012e-08 -23.112745450217066 -asin0115 asin 0.081041187798029227 0.067054349860173196 -> 0.080946786856771813 0.067223991060639698 -asin0116 asin 46.635472322049949 2.3835190718056678 -> 1.5197194940010779 4.5366989600972083 -asin0117 asin 3907.0687961127105 19.144021886390181 -> 1.5658965233083235 8.9637018715924217 -asin0118 asin 1.0889312322308273 509.01577883554768 -> 0.0021392803817829316 6.9256294494524706 -asin0119 asin 0.10851518277509224 1.5612510908217476 -> 0.058491014243902621 1.2297075725621327 - --- values near infinity -asin0200 asin 1.5230241998821499e+308 5.5707228994084525e+307 -> 1.2201446370892068 710.37283486535966 -asin0201 asin 8.1334317698672204e+307 -9.2249425197872451e+307 -> 0.72259991284020042 -710.0962453049026 -asin0202 asin -9.9138506659241768e+307 6.701544526434995e+307 -> -0.97637511742194594 710.06887486671371 -asin0203 asin -1.4141298868173842e+308 -5.401505134514191e+307 -> -1.2059319055160587 -710.30396478954628 -asin0204 asin 0.0 9.1618092977897431e+307 -> 0.0 709.80181441050593 -asin0205 asin -0.0 6.8064342551939755e+307 -> -0.0 709.50463910853489 -asin0206 asin 0.0 -6.4997516454798215e+307 -> 0.0 -709.45853469751592 -asin0207 asin -0.0 -1.6767449053345242e+308 -> -0.0 -710.4062101803022 -asin0208 asin 5.4242749957378916e+307 0.0 -> 1.5707963267948966 709.27765497888902 -asin0209 asin 9.5342145121164749e+307 -0.0 -> 1.5707963267948966 -709.84165758595907 -asin0210 asin -7.0445698006201847e+307 0.0 -> -1.5707963267948966 709.53902780872136 -asin0211 asin -1.0016025569769706e+308 -0.0 -> -1.5707963267948966 -709.89095709697881 -asin0212 asin 1.6552203778877204e+308 0.48761543336249491 -> 1.5707963267948966 710.39328998153474 -asin0213 asin 1.2485712830384869e+308 -4.3489311161278899 -> 1.5707963267948966 -710.1113557467786 -asin0214 asin -1.5117842813353125e+308 5.123452666102434 -> -1.5707963267948966 710.30264641923031 -asin0215 asin -1.3167634313008016e+308 -0.52939679793528982 -> -1.5707963267948966 -710.16453260239768 -asin0216 asin 0.80843929176985907 1.0150851827767876e+308 -> 7.9642507396113875e-309 709.90432835561637 -asin0217 asin 8.2544809829680901 -1.7423548140539474e+308 -> 4.7375430746865733e-308 -710.44459336242164 -asin0218 asin -5.2499000118824295 4.6655578977512214e+307 -> -1.1252459249113292e-307 709.1269781491103 -asin0219 asin -5.9904782760833433 -4.7315689314781163e+307 -> -1.2660659419394637e-307 -709.14102757522312 - --- special values -asin1000 asin -0.0 0.0 -> -0.0 0.0 -asin1001 asin 0.0 0.0 -> 0.0 0.0 -asin1002 asin -0.0 -0.0 -> -0.0 -0.0 -asin1003 asin 0.0 -0.0 -> 0.0 -0.0 -asin1004 asin -inf 0.0 -> -1.5707963267948966 inf -asin1005 asin -inf 2.2999999999999998 -> -1.5707963267948966 inf -asin1006 asin nan 0.0 -> nan nan -asin1007 asin nan 2.2999999999999998 -> nan nan -asin1008 asin -0.0 inf -> -0.0 inf -asin1009 asin -2.2999999999999998 inf -> -0.0 inf -asin1010 asin -inf inf -> -0.78539816339744828 inf -asin1011 asin nan inf -> nan inf -asin1012 asin -0.0 nan -> -0.0 nan -asin1013 asin -2.2999999999999998 nan -> nan nan -asin1014 asin -inf nan -> nan inf ignore-imag-sign -asin1015 asin nan nan -> nan nan -asin1016 asin inf 0.0 -> 1.5707963267948966 inf -asin1017 asin inf 2.2999999999999998 -> 1.5707963267948966 inf -asin1018 asin 0.0 inf -> 0.0 inf -asin1019 asin 2.2999999999999998 inf -> 0.0 inf -asin1020 asin inf inf -> 0.78539816339744828 inf -asin1021 asin 0.0 nan -> 0.0 nan -asin1022 asin 2.2999999999999998 nan -> nan nan -asin1023 asin inf nan -> nan inf ignore-imag-sign -asin1024 asin inf -0.0 -> 1.5707963267948966 -inf -asin1025 asin inf -2.2999999999999998 -> 1.5707963267948966 -inf -asin1026 asin nan -0.0 -> nan nan -asin1027 asin nan -2.2999999999999998 -> nan nan -asin1028 asin 0.0 -inf -> 0.0 -inf -asin1029 asin 2.2999999999999998 -inf -> 0.0 -inf -asin1030 asin inf -inf -> 0.78539816339744828 -inf -asin1031 asin nan -inf -> nan -inf -asin1032 asin -inf -0.0 -> -1.5707963267948966 -inf -asin1033 asin -inf -2.2999999999999998 -> -1.5707963267948966 -inf -asin1034 asin -0.0 -inf -> -0.0 -inf -asin1035 asin -2.2999999999999998 -inf -> -0.0 -inf -asin1036 asin -inf -inf -> -0.78539816339744828 -inf - - ------------------------------------- --- asinh: Inverse hyperbolic sine -- ------------------------------------- - --- zeros -asinh0000 asinh 0.0 0.0 -> 0.0 0.0 -asinh0001 asinh 0.0 -0.0 -> 0.0 -0.0 -asinh0002 asinh -0.0 0.0 -> -0.0 0.0 -asinh0003 asinh -0.0 -0.0 -> -0.0 -0.0 - --- branch points: +/-i -asinh0010 asinh 0.0 1.0 -> 0.0 1.5707963267948966 -asinh0011 asinh 0.0 -1.0 -> 0.0 -1.5707963267948966 -asinh0012 asinh -0.0 1.0 -> -0.0 1.5707963267948966 -asinh0013 asinh -0.0 -1.0 -> -0.0 -1.5707963267948966 - --- values along both sides of imaginary axis -asinh0020 asinh 0.0 -9.8813129168249309e-324 -> 0.0 -9.8813129168249309e-324 -asinh0021 asinh -0.0 -9.8813129168249309e-324 -> -0.0 -9.8813129168249309e-324 -asinh0022 asinh 0.0 -1e-305 -> 0.0 -1e-305 -asinh0023 asinh -0.0 -1e-305 -> -0.0 -1e-305 -asinh0024 asinh 0.0 -1e-150 -> 0.0 -1e-150 -asinh0025 asinh -0.0 -1e-150 -> -0.0 -1e-150 -asinh0026 asinh 0.0 -9.9999999999999998e-17 -> 0.0 -9.9999999999999998e-17 -asinh0027 asinh -0.0 -9.9999999999999998e-17 -> -0.0 -9.9999999999999998e-17 -asinh0028 asinh 0.0 -0.001 -> 0.0 -0.0010000001666667416 -asinh0029 asinh -0.0 -0.001 -> -0.0 -0.0010000001666667416 -asinh0030 asinh 0.0 -0.57899999999999996 -> 0.0 -0.61750165481717001 -asinh0031 asinh -0.0 -0.57899999999999996 -> -0.0 -0.61750165481717001 -asinh0032 asinh 0.0 -0.99999999999999989 -> 0.0 -1.5707963118937354 -asinh0033 asinh -0.0 -0.99999999999999989 -> -0.0 -1.5707963118937354 -asinh0034 asinh 0.0 -1.0000000000000002 -> 2.1073424255447014e-08 -1.5707963267948966 -asinh0035 asinh -0.0 -1.0000000000000002 -> -2.1073424255447014e-08 -1.5707963267948966 -asinh0036 asinh 0.0 -1.0009999999999999 -> 0.044717633608306849 -1.5707963267948966 -asinh0037 asinh -0.0 -1.0009999999999999 -> -0.044717633608306849 -1.5707963267948966 -asinh0038 asinh 0.0 -2.0 -> 1.3169578969248168 -1.5707963267948966 -asinh0039 asinh -0.0 -2.0 -> -1.3169578969248168 -1.5707963267948966 -asinh0040 asinh 0.0 -20.0 -> 3.6882538673612966 -1.5707963267948966 -asinh0041 asinh -0.0 -20.0 -> -3.6882538673612966 -1.5707963267948966 -asinh0042 asinh 0.0 -10000000000000000.0 -> 37.534508668464674 -1.5707963267948966 -asinh0043 asinh -0.0 -10000000000000000.0 -> -37.534508668464674 -1.5707963267948966 -asinh0044 asinh 0.0 -9.9999999999999998e+149 -> 346.08091112966679 -1.5707963267948966 -asinh0045 asinh -0.0 -9.9999999999999998e+149 -> -346.08091112966679 -1.5707963267948966 -asinh0046 asinh 0.0 -1.0000000000000001e+299 -> 689.16608998577965 -1.5707963267948966 -asinh0047 asinh -0.0 -1.0000000000000001e+299 -> -689.16608998577965 -1.5707963267948966 -asinh0048 asinh 0.0 9.8813129168249309e-324 -> 0.0 9.8813129168249309e-324 -asinh0049 asinh -0.0 9.8813129168249309e-324 -> -0.0 9.8813129168249309e-324 -asinh0050 asinh 0.0 1e-305 -> 0.0 1e-305 -asinh0051 asinh -0.0 1e-305 -> -0.0 1e-305 -asinh0052 asinh 0.0 1e-150 -> 0.0 1e-150 -asinh0053 asinh -0.0 1e-150 -> -0.0 1e-150 -asinh0054 asinh 0.0 9.9999999999999998e-17 -> 0.0 9.9999999999999998e-17 -asinh0055 asinh -0.0 9.9999999999999998e-17 -> -0.0 9.9999999999999998e-17 -asinh0056 asinh 0.0 0.001 -> 0.0 0.0010000001666667416 -asinh0057 asinh -0.0 0.001 -> -0.0 0.0010000001666667416 -asinh0058 asinh 0.0 0.57899999999999996 -> 0.0 0.61750165481717001 -asinh0059 asinh -0.0 0.57899999999999996 -> -0.0 0.61750165481717001 -asinh0060 asinh 0.0 0.99999999999999989 -> 0.0 1.5707963118937354 -asinh0061 asinh -0.0 0.99999999999999989 -> -0.0 1.5707963118937354 -asinh0062 asinh 0.0 1.0000000000000002 -> 2.1073424255447014e-08 1.5707963267948966 -asinh0063 asinh -0.0 1.0000000000000002 -> -2.1073424255447014e-08 1.5707963267948966 -asinh0064 asinh 0.0 1.0009999999999999 -> 0.044717633608306849 1.5707963267948966 -asinh0065 asinh -0.0 1.0009999999999999 -> -0.044717633608306849 1.5707963267948966 -asinh0066 asinh 0.0 2.0 -> 1.3169578969248168 1.5707963267948966 -asinh0067 asinh -0.0 2.0 -> -1.3169578969248168 1.5707963267948966 -asinh0068 asinh 0.0 20.0 -> 3.6882538673612966 1.5707963267948966 -asinh0069 asinh -0.0 20.0 -> -3.6882538673612966 1.5707963267948966 -asinh0070 asinh 0.0 10000000000000000.0 -> 37.534508668464674 1.5707963267948966 -asinh0071 asinh -0.0 10000000000000000.0 -> -37.534508668464674 1.5707963267948966 -asinh0072 asinh 0.0 9.9999999999999998e+149 -> 346.08091112966679 1.5707963267948966 -asinh0073 asinh -0.0 9.9999999999999998e+149 -> -346.08091112966679 1.5707963267948966 -asinh0074 asinh 0.0 1.0000000000000001e+299 -> 689.16608998577965 1.5707963267948966 -asinh0075 asinh -0.0 1.0000000000000001e+299 -> -689.16608998577965 1.5707963267948966 - --- random inputs -asinh0100 asinh -0.5946402853710423 -0.044506548910000145 -> -0.56459775392653022 -0.038256221441536356 -asinh0101 asinh -0.19353958046180916 -0.017489624793193454 -> -0.19237926804196651 -0.017171741895336792 -asinh0102 asinh -0.033117585138955893 -8.5256414015933757 -> -2.8327758348650969 -1.5668848791092411 -asinh0103 asinh -1.5184043184035716 -0.73491245339073275 -> -1.2715891419764005 -0.39204624408542355 -asinh0104 asinh -0.60716120271208818 -0.28900743958436542 -> -0.59119299421187232 -0.24745931678118135 -asinh0105 asinh -0.0237177865112429 2.8832601052166313 -> -1.7205820772413236 1.5620261702963094 -asinh0106 asinh -2.3906812342743979 2.6349216848574013 -> -1.9609636249445124 0.8142142660574706 -asinh0107 asinh -0.0027605019787620517 183.85588476550555 -> -5.9072920005445066 1.5707813120847871 -asinh0108 asinh -0.99083661164404713 0.028006797051617648 -> -0.8750185251283995 0.019894099615994653 -asinh0109 asinh -3.0362951937986393 0.86377266758504867 -> -1.8636030714685221 0.26475058859950168 -asinh0110 asinh 0.34438464536152769 -0.71603790174885029 -> 0.43985415690734164 -0.71015037409294324 -asinh0111 asinh 4.4925124413876256 -60604595352.871613 -> 25.520783738612078 -1.5707963267207683 -asinh0112 asinh 2.3213991428170337 -7.5459667007307258 -> 2.7560464993451643 -1.270073210856117 -asinh0113 asinh 0.21291939741682028 -1.2720428814784408 -> 0.77275088137338266 -1.3182099250896895 -asinh0114 asinh 6.6447359379455957 -0.97196191666946996 -> 2.602830695139672 -0.14368247412319965 -asinh0115 asinh 7.1326256655083746 2.1516360452706857 -> 2.7051146374367212 0.29051701669727581 -asinh0116 asinh 0.18846550905063442 3.4705348585339832 -> 1.917697875799296 1.514155593347924 -asinh0117 asinh 0.19065075303281598 0.26216814548222012 -> 0.19603050785932474 0.26013422809614117 -asinh0118 asinh 2.0242004665739719 0.70510281647495787 -> 1.4970366212896002 0.30526007200481453 -asinh0119 asinh 37.336596461576057 717.29157391678234 -> 7.269981997945294 1.5187910219576033 - --- values near infinity -asinh0200 asinh 1.0760517500874541e+308 1.1497786241240167e+308 -> 710.34346055651815 0.81850936961793475 -asinh0201 asinh 1.1784839328845529e+308 -1.6478429586716638e+308 -> 710.59536255783678 -0.94996311735607697 -asinh0202 asinh -4.8777682248909193e+307 1.4103736217538474e+308 -> -710.28970147376992 1.2378239519096443 -asinh0203 asinh -1.2832478903233108e+308 -1.5732392613155698e+308 -> -710.59750164290745 -0.88657181439322452 -asinh0204 asinh 0.0 6.8431383856345372e+307 -> 709.51001718444604 1.5707963267948966 -asinh0205 asinh -0.0 8.601822432238051e+307 -> -709.73874482126689 1.5707963267948966 -asinh0206 asinh 0.0 -5.5698396067303782e+307 -> 709.30413698733742 -1.5707963267948966 -asinh0207 asinh -0.0 -7.1507777734621804e+307 -> -709.55399186002705 -1.5707963267948966 -asinh0208 asinh 1.6025136110019349e+308 0.0 -> 710.3609292261076 0.0 -asinh0209 asinh 1.3927819858239114e+308 -0.0 -> 710.22065899832899 -0.0 -asinh0210 asinh -6.0442994056210995e+307 0.0 -> -709.38588631057621 0.0 -asinh0211 asinh -1.2775271979042634e+308 -0.0 -> -710.13428215553972 -0.0 -asinh0212 asinh 1.0687496260268489e+308 1.0255615699476961 -> 709.95584521407841 9.5959010882679093e-309 -asinh0213 asinh 1.0050967333370962e+308 -0.87668970117333433 -> 709.89443961168183 -8.7224410556242882e-309 -asinh0214 asinh -5.7161452814862392e+307 8.2377808413450122 -> -709.33006540611166 1.4411426644501116e-307 -asinh0215 asinh -8.2009040727653315e+307 -6.407409526654976 -> -709.69101513070109 -7.8130526461510088e-308 -asinh0216 asinh 6.4239368496483982 1.6365990821551427e+308 -> 710.38197618101287 1.5707963267948966 -asinh0217 asinh 5.4729111423315882 -1.1227237438144211e+308 -> 710.00511346983546 -1.5707963267948966 -asinh0218 asinh -8.3455818297412723 1.443172020182019e+308 -> -710.25619930551818 1.5707963267948966 -asinh0219 asinh -2.6049726230372441 -1.7952291144022702e+308 -> -710.47448847685644 -1.5707963267948966 - --- values near 0 -asinh0220 asinh 1.2940113339664088e-314 6.9169190417774516e-323 -> 1.2940113339664088e-314 6.9169190417774516e-323 -asinh0221 asinh 2.3848478863874649e-315 -3.1907655025717717e-310 -> 2.3848478863874649e-315 -3.1907655025717717e-310 -asinh0222 asinh -3.0097643679641622e-316 4.6936236354918422e-322 -> -3.0097643679641622e-316 4.6936236354918422e-322 -asinh0223 asinh -1.787997087755751e-308 -8.5619622834902341e-310 -> -1.787997087755751e-308 -8.5619622834902341e-310 -asinh0224 asinh 0.0 1.2491433448427325e-314 -> 0.0 1.2491433448427325e-314 -asinh0225 asinh -0.0 2.5024072154538062e-308 -> -0.0 2.5024072154538062e-308 -asinh0226 asinh 0.0 -2.9643938750474793e-323 -> 0.0 -2.9643938750474793e-323 -asinh0227 asinh -0.0 -2.9396905927554169e-320 -> -0.0 -2.9396905927554169e-320 -asinh0228 asinh 5.64042930029359e-317 0.0 -> 5.64042930029359e-317 0.0 -asinh0229 asinh 3.3833911866596068e-318 -0.0 -> 3.3833911866596068e-318 -0.0 -asinh0230 asinh -4.9406564584124654e-324 0.0 -> -4.9406564584124654e-324 0.0 -asinh0231 asinh -2.2211379227994845e-308 -0.0 -> -2.2211379227994845e-308 -0.0 - --- special values -asinh1000 asinh 0.0 0.0 -> 0.0 0.0 -asinh1001 asinh 0.0 -0.0 -> 0.0 -0.0 -asinh1002 asinh -0.0 0.0 -> -0.0 0.0 -asinh1003 asinh -0.0 -0.0 -> -0.0 -0.0 -asinh1004 asinh 0.0 inf -> inf 1.5707963267948966 -asinh1005 asinh 2.3 inf -> inf 1.5707963267948966 -asinh1006 asinh 0.0 nan -> nan nan -asinh1007 asinh 2.3 nan -> nan nan -asinh1008 asinh inf 0.0 -> inf 0.0 -asinh1009 asinh inf 2.3 -> inf 0.0 -asinh1010 asinh inf inf -> inf 0.78539816339744828 -asinh1011 asinh inf nan -> inf nan -asinh1012 asinh nan 0.0 -> nan 0.0 -asinh1013 asinh nan 2.3 -> nan nan -asinh1014 asinh nan inf -> inf nan ignore-real-sign -asinh1015 asinh nan nan -> nan nan -asinh1016 asinh 0.0 -inf -> inf -1.5707963267948966 -asinh1017 asinh 2.3 -inf -> inf -1.5707963267948966 -asinh1018 asinh inf -0.0 -> inf -0.0 -asinh1019 asinh inf -2.3 -> inf -0.0 -asinh1020 asinh inf -inf -> inf -0.78539816339744828 -asinh1021 asinh nan -0.0 -> nan -0.0 -asinh1022 asinh nan -2.3 -> nan nan -asinh1023 asinh nan -inf -> inf nan ignore-real-sign -asinh1024 asinh -0.0 -inf -> -inf -1.5707963267948966 -asinh1025 asinh -2.3 -inf -> -inf -1.5707963267948966 -asinh1026 asinh -0.0 nan -> nan nan -asinh1027 asinh -2.3 nan -> nan nan -asinh1028 asinh -inf -0.0 -> -inf -0.0 -asinh1029 asinh -inf -2.3 -> -inf -0.0 -asinh1030 asinh -inf -inf -> -inf -0.78539816339744828 -asinh1031 asinh -inf nan -> -inf nan -asinh1032 asinh -0.0 inf -> -inf 1.5707963267948966 -asinh1033 asinh -2.3 inf -> -inf 1.5707963267948966 -asinh1034 asinh -inf 0.0 -> -inf 0.0 -asinh1035 asinh -inf 2.3 -> -inf 0.0 -asinh1036 asinh -inf inf -> -inf 0.78539816339744828 - - ---------------------------- --- atan: Inverse tangent -- ---------------------------- - --- zeros --- These are tested in testAtanSign in test_cmath.py --- atan0000 atan 0.0 0.0 -> 0.0 0.0 --- atan0001 atan 0.0 -0.0 -> 0.0 -0.0 --- atan0002 atan -0.0 0.0 -> -0.0 0.0 --- atan0003 atan -0.0 -0.0 -> -0.0 -0.0 - --- values along both sides of imaginary axis -atan0010 atan 0.0 -9.8813129168249309e-324 -> 0.0 -9.8813129168249309e-324 -atan0011 atan -0.0 -9.8813129168249309e-324 -> -0.0 -9.8813129168249309e-324 -atan0012 atan 0.0 -1e-305 -> 0.0 -1e-305 -atan0013 atan -0.0 -1e-305 -> -0.0 -1e-305 -atan0014 atan 0.0 -1e-150 -> 0.0 -1e-150 -atan0015 atan -0.0 -1e-150 -> -0.0 -1e-150 -atan0016 atan 0.0 -9.9999999999999998e-17 -> 0.0 -9.9999999999999998e-17 -atan0017 atan -0.0 -9.9999999999999998e-17 -> -0.0 -9.9999999999999998e-17 -atan0018 atan 0.0 -0.001 -> 0.0 -0.0010000003333335333 -atan0019 atan -0.0 -0.001 -> -0.0 -0.0010000003333335333 -atan0020 atan 0.0 -0.57899999999999996 -> 0.0 -0.6609570902866303 -atan0021 atan -0.0 -0.57899999999999996 -> -0.0 -0.6609570902866303 -atan0022 atan 0.0 -0.99999999999999989 -> 0.0 -18.714973875118524 -atan0023 atan -0.0 -0.99999999999999989 -> -0.0 -18.714973875118524 -atan0024 atan 0.0 -1.0000000000000002 -> 1.5707963267948966 -18.36840028483855 -atan0025 atan -0.0 -1.0000000000000002 -> -1.5707963267948966 -18.36840028483855 -atan0026 atan 0.0 -1.0009999999999999 -> 1.5707963267948966 -3.8007011672919218 -atan0027 atan -0.0 -1.0009999999999999 -> -1.5707963267948966 -3.8007011672919218 -atan0028 atan 0.0 -2.0 -> 1.5707963267948966 -0.54930614433405489 -atan0029 atan -0.0 -2.0 -> -1.5707963267948966 -0.54930614433405489 -atan0030 atan 0.0 -20.0 -> 1.5707963267948966 -0.050041729278491265 -atan0031 atan -0.0 -20.0 -> -1.5707963267948966 -0.050041729278491265 -atan0032 atan 0.0 -10000000000000000.0 -> 1.5707963267948966 -9.9999999999999998e-17 -atan0033 atan -0.0 -10000000000000000.0 -> -1.5707963267948966 -9.9999999999999998e-17 -atan0034 atan 0.0 -9.9999999999999998e+149 -> 1.5707963267948966 -1e-150 -atan0035 atan -0.0 -9.9999999999999998e+149 -> -1.5707963267948966 -1e-150 -atan0036 atan 0.0 -1.0000000000000001e+299 -> 1.5707963267948966 -9.9999999999999999e-300 -atan0037 atan -0.0 -1.0000000000000001e+299 -> -1.5707963267948966 -9.9999999999999999e-300 -atan0038 atan 0.0 9.8813129168249309e-324 -> 0.0 9.8813129168249309e-324 -atan0039 atan -0.0 9.8813129168249309e-324 -> -0.0 9.8813129168249309e-324 -atan0040 atan 0.0 1e-305 -> 0.0 1e-305 -atan0041 atan -0.0 1e-305 -> -0.0 1e-305 -atan0042 atan 0.0 1e-150 -> 0.0 1e-150 -atan0043 atan -0.0 1e-150 -> -0.0 1e-150 -atan0044 atan 0.0 9.9999999999999998e-17 -> 0.0 9.9999999999999998e-17 -atan0045 atan -0.0 9.9999999999999998e-17 -> -0.0 9.9999999999999998e-17 -atan0046 atan 0.0 0.001 -> 0.0 0.0010000003333335333 -atan0047 atan -0.0 0.001 -> -0.0 0.0010000003333335333 -atan0048 atan 0.0 0.57899999999999996 -> 0.0 0.6609570902866303 -atan0049 atan -0.0 0.57899999999999996 -> -0.0 0.6609570902866303 -atan0050 atan 0.0 0.99999999999999989 -> 0.0 18.714973875118524 -atan0051 atan -0.0 0.99999999999999989 -> -0.0 18.714973875118524 -atan0052 atan 0.0 1.0000000000000002 -> 1.5707963267948966 18.36840028483855 -atan0053 atan -0.0 1.0000000000000002 -> -1.5707963267948966 18.36840028483855 -atan0054 atan 0.0 1.0009999999999999 -> 1.5707963267948966 3.8007011672919218 -atan0055 atan -0.0 1.0009999999999999 -> -1.5707963267948966 3.8007011672919218 -atan0056 atan 0.0 2.0 -> 1.5707963267948966 0.54930614433405489 -atan0057 atan -0.0 2.0 -> -1.5707963267948966 0.54930614433405489 -atan0058 atan 0.0 20.0 -> 1.5707963267948966 0.050041729278491265 -atan0059 atan -0.0 20.0 -> -1.5707963267948966 0.050041729278491265 -atan0060 atan 0.0 10000000000000000.0 -> 1.5707963267948966 9.9999999999999998e-17 -atan0061 atan -0.0 10000000000000000.0 -> -1.5707963267948966 9.9999999999999998e-17 -atan0062 atan 0.0 9.9999999999999998e+149 -> 1.5707963267948966 1e-150 -atan0063 atan -0.0 9.9999999999999998e+149 -> -1.5707963267948966 1e-150 -atan0064 atan 0.0 1.0000000000000001e+299 -> 1.5707963267948966 9.9999999999999999e-300 -atan0065 atan -0.0 1.0000000000000001e+299 -> -1.5707963267948966 9.9999999999999999e-300 - --- random inputs -atan0100 atan -0.32538873661060214 -1.5530461550412578 -> -1.3682728427554227 -0.69451401598762041 -atan0101 atan -0.45863393495197929 -4799.1747094903594 -> -1.5707963068820623 -0.00020836916050636145 -atan0102 atan -8.3006999685976162 -2.6788890251790938 -> -1.4619862771810199 -0.034811669653327826 -atan0103 atan -1.8836307682985314 -1.1441976638861771 -> -1.1839984370871612 -0.20630956157312796 -atan0104 atan -0.00063230482407491669 -4.9312520961829485 -> -1.5707692093223147 -0.20563867743008304 -atan0105 atan -0.84278137150065946 179012.37493146997 -> -1.5707963267685969 5.5862059836425272e-06 -atan0106 atan -0.95487853984049287 14.311334539886177 -> -1.5661322859434561 0.069676024526232005 -atan0107 atan -1.3513252539663239 6.0500727021632198e-08 -> -0.93371676315220975 2.140800269742656e-08 -atan0108 atan -0.20566254458595795 0.11933771944159823 -> -0.20556463711174916 0.11493405387141732 -atan0109 atan -0.58563718795408559 0.64438965423212868 -> -0.68361089300233124 0.46759762751800249 -atan0110 atan 48.479267751948292 -78.386382460112543 -> 1.5650888770910523 -0.0092276811373297584 -atan0111 atan 1.0575373914056061 -0.75988012377296987 -> 0.94430886722043594 -0.31915698126703118 -atan0112 atan 4444810.4314677203 -0.56553404593942558 -> 1.5707961018134231 -2.8625446437701909e-14 -atan0113 atan 0.010101405082520009 -0.032932668550282478 -> 0.01011202676646334 -0.032941214776834996 -atan0114 atan 1.5353585300154911 -2.1947099346796519 -> 1.3400310739206394 -0.29996003607449045 -atan0115 atan 0.21869457055670882 9.9915684254007093 -> 1.5685846078876444 0.1003716881759439 -atan0116 atan 0.17783290150246836 0.064334689863650957 -> 0.17668728064286277 0.062435808728873846 -atan0117 atan 15.757474087615918 383.57262142534 -> 1.5706894060369621 0.0026026817278826603 -atan0118 atan 10.587017408533317 0.21720238081843438 -> 1.4766594681336236 0.0019199097383010061 -atan0119 atan 0.86026078678781204 0.1230148609359502 -> 0.7147259322534929 0.070551221954286605 - --- values near infinity -atan0200 atan 7.8764397011195798e+307 8.1647921137746308e+307 -> 1.5707963267948966 6.3439446939604493e-309 -atan0201 atan 1.5873698696131487e+308 -1.0780367422960641e+308 -> 1.5707963267948966 -2.9279309368530781e-309 -atan0202 atan -1.5844551864825834e+308 1.0290657809098675e+308 -> -1.5707963267948966 2.8829614736961417e-309 -atan0203 atan -1.3168792562524032e+308 -9.088432341614825e+307 -> -1.5707963267948966 -3.5499373057390056e-309 -atan0204 atan 0.0 1.0360465742258337e+308 -> 1.5707963267948966 9.6520757355646018e-309 -atan0205 atan -0.0 1.0045063210373196e+308 -> -1.5707963267948966 9.955138947929503e-309 -atan0206 atan 0.0 -9.5155296715763696e+307 -> 1.5707963267948966 -1.050913648020118e-308 -atan0207 atan -0.0 -1.5565700490496501e+308 -> -1.5707963267948966 -6.4243816114189071e-309 -atan0208 atan 1.2956339389525244e+308 0.0 -> 1.5707963267948966 0.0 -atan0209 atan 1.4408126243772151e+308 -0.0 -> 1.5707963267948966 -0.0 -atan0210 atan -1.0631786461936417e+308 0.0 -> -1.5707963267948966 0.0 -atan0211 atan -1.0516056964171069e+308 -0.0 -> -1.5707963267948966 -0.0 -atan0212 atan 1.236162319603838e+308 4.6827953496242936 -> 1.5707963267948966 0.0 -atan0213 atan 7.000516472897218e+307 -5.8631608017844163 -> 1.5707963267948966 -0.0 -atan0214 atan -1.5053444003338508e+308 5.1199197268420313 -> -1.5707963267948966 0.0 -atan0215 atan -1.399172518147259e+308 -3.5687766472913673 -> -1.5707963267948966 -0.0 -atan0216 atan 8.1252833070803021 6.2782953917343822e+307 -> 1.5707963267948966 1.5927890256908564e-308 -atan0217 atan 2.8034285947515167 -1.3378049775753878e+308 -> 1.5707963267948966 -7.4749310756219562e-309 -atan0218 atan -1.4073509988974953 1.6776381785968355e+308 -> -1.5707963267948966 5.9607608646364569e-309 -atan0219 atan -2.7135551527592119 -1.281567445525738e+308 -> -1.5707963267948966 -7.8029447727565326e-309 - --- imaginary part = +/-1, real part tiny -atan0300 atan -1e-150 -1.0 -> -0.78539816339744828 -173.04045556483339 -atan0301 atan 1e-155 1.0 -> 0.78539816339744828 178.79691829731851 -atan0302 atan 9.9999999999999999e-161 -1.0 -> 0.78539816339744828 -184.55338102980363 -atan0303 atan -1e-165 1.0 -> -0.78539816339744828 190.30984376228875 -atan0304 atan -9.9998886718268301e-321 -1.0 -> -0.78539816339744828 -368.76019403576692 - --- Additional real values (mpmath) -atan0400 atan 1.7976931348623157e+308 0.0 -> 1.5707963267948966192 0.0 -atan0401 atan -1.7976931348623157e+308 0.0 -> -1.5707963267948966192 0.0 -atan0402 atan 1e-17 0.0 -> 1.0000000000000000715e-17 0.0 -atan0403 atan -1e-17 0.0 -> -1.0000000000000000715e-17 0.0 -atan0404 atan 0.0001 0.0 -> 0.000099999999666666673459 0.0 -atan0405 atan -0.0001 0.0 -> -0.000099999999666666673459 0.0 -atan0406 atan 0.999999999999999 0.0 -> 0.78539816339744781002 0.0 -atan0407 atan 1.000000000000001 0.0 -> 0.78539816339744886473 0.0 -atan0408 atan 14.101419947171719 0.0 -> 1.4999999999999999969 0.0 -atan0409 atan 1255.7655915007897 0.0 -> 1.5700000000000000622 0.0 - --- special values -atan1000 atan -0.0 0.0 -> -0.0 0.0 -atan1001 atan nan 0.0 -> nan 0.0 -atan1002 atan -0.0 1.0 -> -0.0 inf divide-by-zero -atan1003 atan -inf 0.0 -> -1.5707963267948966 0.0 -atan1004 atan -inf 2.2999999999999998 -> -1.5707963267948966 0.0 -atan1005 atan nan 2.2999999999999998 -> nan nan -atan1006 atan -0.0 inf -> -1.5707963267948966 0.0 -atan1007 atan -2.2999999999999998 inf -> -1.5707963267948966 0.0 -atan1008 atan -inf inf -> -1.5707963267948966 0.0 -atan1009 atan nan inf -> nan 0.0 -atan1010 atan -0.0 nan -> nan nan -atan1011 atan -2.2999999999999998 nan -> nan nan -atan1012 atan -inf nan -> -1.5707963267948966 0.0 ignore-imag-sign -atan1013 atan nan nan -> nan nan -atan1014 atan 0.0 0.0 -> 0.0 0.0 -atan1015 atan 0.0 1.0 -> 0.0 inf divide-by-zero -atan1016 atan inf 0.0 -> 1.5707963267948966 0.0 -atan1017 atan inf 2.2999999999999998 -> 1.5707963267948966 0.0 -atan1018 atan 0.0 inf -> 1.5707963267948966 0.0 -atan1019 atan 2.2999999999999998 inf -> 1.5707963267948966 0.0 -atan1020 atan inf inf -> 1.5707963267948966 0.0 -atan1021 atan 0.0 nan -> nan nan -atan1022 atan 2.2999999999999998 nan -> nan nan -atan1023 atan inf nan -> 1.5707963267948966 0.0 ignore-imag-sign -atan1024 atan 0.0 -0.0 -> 0.0 -0.0 -atan1025 atan nan -0.0 -> nan -0.0 -atan1026 atan 0.0 -1.0 -> 0.0 -inf divide-by-zero -atan1027 atan inf -0.0 -> 1.5707963267948966 -0.0 -atan1028 atan inf -2.2999999999999998 -> 1.5707963267948966 -0.0 -atan1029 atan nan -2.2999999999999998 -> nan nan -atan1030 atan 0.0 -inf -> 1.5707963267948966 -0.0 -atan1031 atan 2.2999999999999998 -inf -> 1.5707963267948966 -0.0 -atan1032 atan inf -inf -> 1.5707963267948966 -0.0 -atan1033 atan nan -inf -> nan -0.0 -atan1034 atan -0.0 -0.0 -> -0.0 -0.0 -atan1035 atan -0.0 -1.0 -> -0.0 -inf divide-by-zero -atan1036 atan -inf -0.0 -> -1.5707963267948966 -0.0 -atan1037 atan -inf -2.2999999999999998 -> -1.5707963267948966 -0.0 -atan1038 atan -0.0 -inf -> -1.5707963267948966 -0.0 -atan1039 atan -2.2999999999999998 -inf -> -1.5707963267948966 -0.0 -atan1040 atan -inf -inf -> -1.5707963267948966 -0.0 - - ---------------------------------------- --- atanh: Inverse hyperbolic tangent -- ---------------------------------------- - --- zeros --- These are tested in testAtanhSign in test_cmath.py --- atanh0000 atanh 0.0 0.0 -> 0.0 0.0 --- atanh0001 atanh 0.0 -0.0 -> 0.0 -0.0 --- atanh0002 atanh -0.0 0.0 -> -0.0 0.0 --- atanh0003 atanh -0.0 -0.0 -> -0.0 -0.0 - --- values along both sides of real axis -atanh0010 atanh -9.8813129168249309e-324 0.0 -> -9.8813129168249309e-324 0.0 -atanh0011 atanh -9.8813129168249309e-324 -0.0 -> -9.8813129168249309e-324 -0.0 -atanh0012 atanh -1e-305 0.0 -> -1e-305 0.0 -atanh0013 atanh -1e-305 -0.0 -> -1e-305 -0.0 -atanh0014 atanh -1e-150 0.0 -> -1e-150 0.0 -atanh0015 atanh -1e-150 -0.0 -> -1e-150 -0.0 -atanh0016 atanh -9.9999999999999998e-17 0.0 -> -9.9999999999999998e-17 0.0 -atanh0017 atanh -9.9999999999999998e-17 -0.0 -> -9.9999999999999998e-17 -0.0 -atanh0018 atanh -0.001 0.0 -> -0.0010000003333335333 0.0 -atanh0019 atanh -0.001 -0.0 -> -0.0010000003333335333 -0.0 -atanh0020 atanh -0.57899999999999996 0.0 -> -0.6609570902866303 0.0 -atanh0021 atanh -0.57899999999999996 -0.0 -> -0.6609570902866303 -0.0 -atanh0022 atanh -0.99999999999999989 0.0 -> -18.714973875118524 0.0 -atanh0023 atanh -0.99999999999999989 -0.0 -> -18.714973875118524 -0.0 -atanh0024 atanh -1.0000000000000002 0.0 -> -18.36840028483855 1.5707963267948966 -atanh0025 atanh -1.0000000000000002 -0.0 -> -18.36840028483855 -1.5707963267948966 -atanh0026 atanh -1.0009999999999999 0.0 -> -3.8007011672919218 1.5707963267948966 -atanh0027 atanh -1.0009999999999999 -0.0 -> -3.8007011672919218 -1.5707963267948966 -atanh0028 atanh -2.0 0.0 -> -0.54930614433405489 1.5707963267948966 -atanh0029 atanh -2.0 -0.0 -> -0.54930614433405489 -1.5707963267948966 -atanh0030 atanh -23.0 0.0 -> -0.043505688494814884 1.5707963267948966 -atanh0031 atanh -23.0 -0.0 -> -0.043505688494814884 -1.5707963267948966 -atanh0032 atanh -10000000000000000.0 0.0 -> -9.9999999999999998e-17 1.5707963267948966 -atanh0033 atanh -10000000000000000.0 -0.0 -> -9.9999999999999998e-17 -1.5707963267948966 -atanh0034 atanh -9.9999999999999998e+149 0.0 -> -1e-150 1.5707963267948966 -atanh0035 atanh -9.9999999999999998e+149 -0.0 -> -1e-150 -1.5707963267948966 -atanh0036 atanh -1.0000000000000001e+299 0.0 -> -9.9999999999999999e-300 1.5707963267948966 -atanh0037 atanh -1.0000000000000001e+299 -0.0 -> -9.9999999999999999e-300 -1.5707963267948966 -atanh0038 atanh 9.8813129168249309e-324 0.0 -> 9.8813129168249309e-324 0.0 -atanh0039 atanh 9.8813129168249309e-324 -0.0 -> 9.8813129168249309e-324 -0.0 -atanh0040 atanh 1e-305 0.0 -> 1e-305 0.0 -atanh0041 atanh 1e-305 -0.0 -> 1e-305 -0.0 -atanh0042 atanh 1e-150 0.0 -> 1e-150 0.0 -atanh0043 atanh 1e-150 -0.0 -> 1e-150 -0.0 -atanh0044 atanh 9.9999999999999998e-17 0.0 -> 9.9999999999999998e-17 0.0 -atanh0045 atanh 9.9999999999999998e-17 -0.0 -> 9.9999999999999998e-17 -0.0 -atanh0046 atanh 0.001 0.0 -> 0.0010000003333335333 0.0 -atanh0047 atanh 0.001 -0.0 -> 0.0010000003333335333 -0.0 -atanh0048 atanh 0.57899999999999996 0.0 -> 0.6609570902866303 0.0 -atanh0049 atanh 0.57899999999999996 -0.0 -> 0.6609570902866303 -0.0 -atanh0050 atanh 0.99999999999999989 0.0 -> 18.714973875118524 0.0 -atanh0051 atanh 0.99999999999999989 -0.0 -> 18.714973875118524 -0.0 -atanh0052 atanh 1.0000000000000002 0.0 -> 18.36840028483855 1.5707963267948966 -atanh0053 atanh 1.0000000000000002 -0.0 -> 18.36840028483855 -1.5707963267948966 -atanh0054 atanh 1.0009999999999999 0.0 -> 3.8007011672919218 1.5707963267948966 -atanh0055 atanh 1.0009999999999999 -0.0 -> 3.8007011672919218 -1.5707963267948966 -atanh0056 atanh 2.0 0.0 -> 0.54930614433405489 1.5707963267948966 -atanh0057 atanh 2.0 -0.0 -> 0.54930614433405489 -1.5707963267948966 -atanh0058 atanh 23.0 0.0 -> 0.043505688494814884 1.5707963267948966 -atanh0059 atanh 23.0 -0.0 -> 0.043505688494814884 -1.5707963267948966 -atanh0060 atanh 10000000000000000.0 0.0 -> 9.9999999999999998e-17 1.5707963267948966 -atanh0061 atanh 10000000000000000.0 -0.0 -> 9.9999999999999998e-17 -1.5707963267948966 -atanh0062 atanh 9.9999999999999998e+149 0.0 -> 1e-150 1.5707963267948966 -atanh0063 atanh 9.9999999999999998e+149 -0.0 -> 1e-150 -1.5707963267948966 -atanh0064 atanh 1.0000000000000001e+299 0.0 -> 9.9999999999999999e-300 1.5707963267948966 -atanh0065 atanh 1.0000000000000001e+299 -0.0 -> 9.9999999999999999e-300 -1.5707963267948966 - --- random inputs -atanh0100 atanh -0.54460925980633501 -0.54038050126721027 -> -0.41984265808446974 -0.60354153938352828 -atanh0101 atanh -1.6934614269829051 -0.48807386108113621 -> -0.58592769102243281 -1.3537837470975898 -atanh0102 atanh -1.3467293985501207 -0.47868354895395876 -> -0.69961624370709985 -1.1994450156570076 -atanh0103 atanh -5.6142232418984888 -544551613.39307702 -> -1.8932657550925744e-17 -1.5707963249585235 -atanh0104 atanh -0.011841460381263651 -3.259978899823385 -> -0.0010183936547405188 -1.2731614020743838 -atanh0105 atanh -0.0073345736950029532 0.35821949670922248 -> -0.0065004869024682466 0.34399359971920895 -atanh0106 atanh -13.866782244320014 0.9541129545860273 -> -0.071896852055058899 1.5658322704631409 -atanh0107 atanh -708.59964982780775 21.984802159266675 -> -0.0014098779074189741 1.5707525842838959 -atanh0108 atanh -30.916832076030602 1.3691897138829843 -> -0.032292682045743676 1.5693652094847115 -atanh0109 atanh -0.57461806339861754 0.29534797443913063 -> -0.56467464472482765 0.39615612824172625 -atanh0110 atanh 0.40089246737415685 -1.632285984300659 -> 0.1063832707890608 -1.0402821335326482 -atanh0111 atanh 2119.6167688262176 -1.5383653437377242e+17 -> 8.9565008518382049e-32 -1.5707963267948966 -atanh0112 atanh 756.86017850941641 -6.6064087133223817 -> 0.0013211481136820046 -1.5707847948702234 -atanh0113 atanh 4.0490617718041602 -2.5784456791040652e-12 -> 0.25218425538553618 -1.5707963267947291 -atanh0114 atanh 10.589254957173523 -0.13956391149624509 -> 0.094700890282197664 -1.5695407140217623 -atanh0115 atanh 1.0171187553160499 0.70766113465354019 -> 0.55260251975367791 0.96619711116641682 -atanh0116 atanh 0.031645502527750849 0.067319983726544394 -> 0.031513018344086742 0.067285437670549036 -atanh0117 atanh 0.13670177624994517 0.43240089361857947 -> 0.11538933151017253 0.41392008145336212 -atanh0118 atanh 0.64173899243596688 2.9008577686695256 -> 0.065680142424134405 1.2518535724053921 -atanh0119 atanh 0.19313813528025942 38.799619150741869 -> 0.00012820765917366644 1.5450292202823612 - --- values near infinity -atanh0200 atanh 5.3242646831347954e+307 1.3740396080084153e+308 -> 2.4519253616695576e-309 1.5707963267948966 -atanh0201 atanh 1.158701641241358e+308 -6.5579268873375853e+307 -> 6.5365375267795098e-309 -1.5707963267948966 -atanh0202 atanh -1.3435325735762247e+308 9.8947369259601547e+307 -> -4.8256680906589956e-309 1.5707963267948966 -atanh0203 atanh -1.4359857522598942e+308 -9.4701204702391004e+307 -> -4.8531282262872645e-309 -1.5707963267948966 -atanh0204 atanh 0.0 5.6614181068098497e+307 -> 0.0 1.5707963267948966 -atanh0205 atanh -0.0 6.9813212721450139e+307 -> -0.0 1.5707963267948966 -atanh0206 atanh 0.0 -7.4970613060311453e+307 -> 0.0 -1.5707963267948966 -atanh0207 atanh -0.0 -1.5280601880314068e+308 -> -0.0 -1.5707963267948966 -atanh0208 atanh 8.2219472336000745e+307 0.0 -> 1.2162568933954813e-308 1.5707963267948966 -atanh0209 atanh 1.4811519617280899e+308 -0.0 -> 6.7515017083951325e-309 -1.5707963267948966 -atanh0210 atanh -1.2282016263598785e+308 0.0 -> -8.1419856360537615e-309 1.5707963267948966 -atanh0211 atanh -1.0616427760154426e+308 -0.0 -> -9.4193642399489563e-309 -1.5707963267948966 -atanh0212 atanh 1.2971536510180682e+308 5.2847948452333293 -> 7.7091869510998328e-309 1.5707963267948966 -atanh0213 atanh 1.1849860977411851e+308 -7.9781906447459949 -> 8.4389175696339014e-309 -1.5707963267948966 -atanh0214 atanh -1.4029969422586635e+308 0.93891986543663375 -> -7.127599283218073e-309 1.5707963267948966 -atanh0215 atanh -4.7508098912248211e+307 -8.2702421247039908 -> -2.1049042645278043e-308 -1.5707963267948966 -atanh0216 atanh 8.2680742115769998 8.1153898410918065e+307 -> 0.0 1.5707963267948966 -atanh0217 atanh 1.2575325146218885 -1.4746679147661649e+308 -> 0.0 -1.5707963267948966 -atanh0218 atanh -2.4618803682310899 1.3781522717005568e+308 -> -0.0 1.5707963267948966 -atanh0219 atanh -4.0952386694788112 -1.231083376353703e+308 -> -0.0 -1.5707963267948966 - --- values near 0 -atanh0220 atanh 3.8017563659811628e-314 2.6635484239074319e-312 -> 3.8017563659811628e-314 2.6635484239074319e-312 -atanh0221 atanh 1.7391110733611878e-321 -4.3547800672541419e-313 -> 1.7391110733611878e-321 -4.3547800672541419e-313 -atanh0222 atanh -5.9656816081325078e-317 9.9692253555416263e-313 -> -5.9656816081325078e-317 9.9692253555416263e-313 -atanh0223 atanh -6.5606671178400239e-313 -2.1680936406357335e-309 -> -6.5606671178400239e-313 -2.1680936406357335e-309 -atanh0224 atanh 0.0 2.5230944401820779e-319 -> 0.0 2.5230944401820779e-319 -atanh0225 atanh -0.0 5.6066569490064658e-320 -> -0.0 5.6066569490064658e-320 -atanh0226 atanh 0.0 -2.4222487249468377e-317 -> 0.0 -2.4222487249468377e-317 -atanh0227 atanh -0.0 -3.0861101089206037e-316 -> -0.0 -3.0861101089206037e-316 -atanh0228 atanh 3.1219222884393986e-310 0.0 -> 3.1219222884393986e-310 0.0 -atanh0229 atanh 9.8926337564976196e-309 -0.0 -> 9.8926337564976196e-309 -0.0 -atanh0230 atanh -1.5462535092918154e-312 0.0 -> -1.5462535092918154e-312 0.0 -atanh0231 atanh -9.8813129168249309e-324 -0.0 -> -9.8813129168249309e-324 -0.0 - --- real part = +/-1, imaginary part tiny -atanh0300 atanh 1.0 1e-153 -> 176.49433320432448 0.78539816339744828 -atanh0301 atanh 1.0 9.9999999999999997e-155 -> 177.64562575082149 0.78539816339744828 -atanh0302 atanh -1.0 1e-161 -> -185.70467357630065 0.78539816339744828 -atanh0303 atanh 1.0 -1e-165 -> 190.30984376228875 -0.78539816339744828 -atanh0304 atanh -1.0 -9.8813129168249309e-324 -> -372.22003596069061 -0.78539816339744828 - --- special values -atanh1000 atanh 0.0 0.0 -> 0.0 0.0 -atanh1001 atanh 0.0 nan -> 0.0 nan -atanh1002 atanh 1.0 0.0 -> inf 0.0 divide-by-zero -atanh1003 atanh 0.0 inf -> 0.0 1.5707963267948966 -atanh1004 atanh 2.3 inf -> 0.0 1.5707963267948966 -atanh1005 atanh 2.3 nan -> nan nan -atanh1006 atanh inf 0.0 -> 0.0 1.5707963267948966 -atanh1007 atanh inf 2.3 -> 0.0 1.5707963267948966 -atanh1008 atanh inf inf -> 0.0 1.5707963267948966 -atanh1009 atanh inf nan -> 0.0 nan -atanh1010 atanh nan 0.0 -> nan nan -atanh1011 atanh nan 2.3 -> nan nan -atanh1012 atanh nan inf -> 0.0 1.5707963267948966 ignore-real-sign -atanh1013 atanh nan nan -> nan nan -atanh1014 atanh 0.0 -0.0 -> 0.0 -0.0 -atanh1015 atanh 1.0 -0.0 -> inf -0.0 divide-by-zero -atanh1016 atanh 0.0 -inf -> 0.0 -1.5707963267948966 -atanh1017 atanh 2.3 -inf -> 0.0 -1.5707963267948966 -atanh1018 atanh inf -0.0 -> 0.0 -1.5707963267948966 -atanh1019 atanh inf -2.3 -> 0.0 -1.5707963267948966 -atanh1020 atanh inf -inf -> 0.0 -1.5707963267948966 -atanh1021 atanh nan -0.0 -> nan nan -atanh1022 atanh nan -2.3 -> nan nan -atanh1023 atanh nan -inf -> 0.0 -1.5707963267948966 ignore-real-sign -atanh1024 atanh -0.0 -0.0 -> -0.0 -0.0 -atanh1025 atanh -0.0 nan -> -0.0 nan -atanh1026 atanh -1.0 -0.0 -> -inf -0.0 divide-by-zero -atanh1027 atanh -0.0 -inf -> -0.0 -1.5707963267948966 -atanh1028 atanh -2.3 -inf -> -0.0 -1.5707963267948966 -atanh1029 atanh -2.3 nan -> nan nan -atanh1030 atanh -inf -0.0 -> -0.0 -1.5707963267948966 -atanh1031 atanh -inf -2.3 -> -0.0 -1.5707963267948966 -atanh1032 atanh -inf -inf -> -0.0 -1.5707963267948966 -atanh1033 atanh -inf nan -> -0.0 nan -atanh1034 atanh -0.0 0.0 -> -0.0 0.0 -atanh1035 atanh -1.0 0.0 -> -inf 0.0 divide-by-zero -atanh1036 atanh -0.0 inf -> -0.0 1.5707963267948966 -atanh1037 atanh -2.3 inf -> -0.0 1.5707963267948966 -atanh1038 atanh -inf 0.0 -> -0.0 1.5707963267948966 -atanh1039 atanh -inf 2.3 -> -0.0 1.5707963267948966 -atanh1040 atanh -inf inf -> -0.0 1.5707963267948966 - - ----------------------------- --- log: Natural logarithm -- ----------------------------- - -log0000 log 1.0 0.0 -> 0.0 0.0 -log0001 log 1.0 -0.0 -> 0.0 -0.0 -log0002 log -1.0 0.0 -> 0.0 3.1415926535897931 -log0003 log -1.0 -0.0 -> 0.0 -3.1415926535897931 --- values along both sides of real axis -log0010 log -9.8813129168249309e-324 0.0 -> -743.74692474082133 3.1415926535897931 -log0011 log -9.8813129168249309e-324 -0.0 -> -743.74692474082133 -3.1415926535897931 -log0012 log -1e-305 0.0 -> -702.28845336318398 3.1415926535897931 -log0013 log -1e-305 -0.0 -> -702.28845336318398 -3.1415926535897931 -log0014 log -1e-150 0.0 -> -345.38776394910684 3.1415926535897931 -log0015 log -1e-150 -0.0 -> -345.38776394910684 -3.1415926535897931 -log0016 log -9.9999999999999998e-17 0.0 -> -36.841361487904734 3.1415926535897931 -log0017 log -9.9999999999999998e-17 -0.0 -> -36.841361487904734 -3.1415926535897931 -log0018 log -0.001 0.0 -> -6.9077552789821368 3.1415926535897931 -log0019 log -0.001 -0.0 -> -6.9077552789821368 -3.1415926535897931 -log0020 log -0.57899999999999996 0.0 -> -0.54645280140914188 3.1415926535897931 -log0021 log -0.57899999999999996 -0.0 -> -0.54645280140914188 -3.1415926535897931 -log0022 log -0.99999999999999989 0.0 -> -1.1102230246251565e-16 3.1415926535897931 -log0023 log -0.99999999999999989 -0.0 -> -1.1102230246251565e-16 -3.1415926535897931 -log0024 log -1.0000000000000002 0.0 -> 2.2204460492503128e-16 3.1415926535897931 -log0025 log -1.0000000000000002 -0.0 -> 2.2204460492503128e-16 -3.1415926535897931 -log0026 log -1.0009999999999999 0.0 -> 0.00099950033308342321 3.1415926535897931 -log0027 log -1.0009999999999999 -0.0 -> 0.00099950033308342321 -3.1415926535897931 -log0028 log -2.0 0.0 -> 0.69314718055994529 3.1415926535897931 -log0029 log -2.0 -0.0 -> 0.69314718055994529 -3.1415926535897931 -log0030 log -23.0 0.0 -> 3.1354942159291497 3.1415926535897931 -log0031 log -23.0 -0.0 -> 3.1354942159291497 -3.1415926535897931 -log0032 log -10000000000000000.0 0.0 -> 36.841361487904734 3.1415926535897931 -log0033 log -10000000000000000.0 -0.0 -> 36.841361487904734 -3.1415926535897931 -log0034 log -9.9999999999999998e+149 0.0 -> 345.38776394910684 3.1415926535897931 -log0035 log -9.9999999999999998e+149 -0.0 -> 345.38776394910684 -3.1415926535897931 -log0036 log -1.0000000000000001e+299 0.0 -> 688.47294280521965 3.1415926535897931 -log0037 log -1.0000000000000001e+299 -0.0 -> 688.47294280521965 -3.1415926535897931 -log0038 log 9.8813129168249309e-324 0.0 -> -743.74692474082133 0.0 -log0039 log 9.8813129168249309e-324 -0.0 -> -743.74692474082133 -0.0 -log0040 log 1e-305 0.0 -> -702.28845336318398 0.0 -log0041 log 1e-305 -0.0 -> -702.28845336318398 -0.0 -log0042 log 1e-150 0.0 -> -345.38776394910684 0.0 -log0043 log 1e-150 -0.0 -> -345.38776394910684 -0.0 -log0044 log 9.9999999999999998e-17 0.0 -> -36.841361487904734 0.0 -log0045 log 9.9999999999999998e-17 -0.0 -> -36.841361487904734 -0.0 -log0046 log 0.001 0.0 -> -6.9077552789821368 0.0 -log0047 log 0.001 -0.0 -> -6.9077552789821368 -0.0 -log0048 log 0.57899999999999996 0.0 -> -0.54645280140914188 0.0 -log0049 log 0.57899999999999996 -0.0 -> -0.54645280140914188 -0.0 -log0050 log 0.99999999999999989 0.0 -> -1.1102230246251565e-16 0.0 -log0051 log 0.99999999999999989 -0.0 -> -1.1102230246251565e-16 -0.0 -log0052 log 1.0000000000000002 0.0 -> 2.2204460492503128e-16 0.0 -log0053 log 1.0000000000000002 -0.0 -> 2.2204460492503128e-16 -0.0 -log0054 log 1.0009999999999999 0.0 -> 0.00099950033308342321 0.0 -log0055 log 1.0009999999999999 -0.0 -> 0.00099950033308342321 -0.0 -log0056 log 2.0 0.0 -> 0.69314718055994529 0.0 -log0057 log 2.0 -0.0 -> 0.69314718055994529 -0.0 -log0058 log 23.0 0.0 -> 3.1354942159291497 0.0 -log0059 log 23.0 -0.0 -> 3.1354942159291497 -0.0 -log0060 log 10000000000000000.0 0.0 -> 36.841361487904734 0.0 -log0061 log 10000000000000000.0 -0.0 -> 36.841361487904734 -0.0 -log0062 log 9.9999999999999998e+149 0.0 -> 345.38776394910684 0.0 -log0063 log 9.9999999999999998e+149 -0.0 -> 345.38776394910684 -0.0 -log0064 log 1.0000000000000001e+299 0.0 -> 688.47294280521965 0.0 -log0065 log 1.0000000000000001e+299 -0.0 -> 688.47294280521965 -0.0 - --- random inputs -log0066 log -1.9830454945186191e-16 -2.0334448025673346 -> 0.70973130194329803 -1.5707963267948968 -log0067 log -0.96745853024741857 -0.84995816228299692 -> 0.25292811398722387 -2.4207570438536905 -log0068 log -0.1603644313948418 -0.2929942111041835 -> -1.0965857872427374 -2.0715870859971419 -log0069 log -0.15917913168438699 -0.25238799251132177 -> -1.2093477313249901 -2.1334784232033863 -log0070 log -0.68907818535078802 -3.0693105853476346 -> 1.1460398629184565 -1.7916403813913211 -log0071 log -17.268133447565589 6.8165120014604756 -> 2.9212694465974836 2.7656245081603164 -log0072 log -1.7153894479690328 26.434055372802636 -> 3.2767542953718003 1.6355986276341734 -log0073 log -8.0456794648936578e-06 0.19722758057570208 -> -1.6233969848296075 1.5708371206810101 -log0074 log -2.4306442691323173 0.6846919750700996 -> 0.92633592001969589 2.8670160576718331 -log0075 log -3.5488049250888194 0.45324040643185254 -> 1.2747008374256426 3.0145640007885111 -log0076 log 0.18418516851510189 -0.26062518836212617 -> -1.1421287121940344 -0.95558440841183434 -log0077 log 2.7124837795638399 -13.148769067133387 -> 2.5971659975706802 -1.3673583045209439 -log0078 log 3.6521275476169149e-13 -3.7820543023170673e-05 -> -10.182658136741569 -1.5707963171384316 -log0079 log 5.0877545813862239 -1.2834978326786852 -> 1.6576856213076328 -0.24711583497738485 -log0080 log 0.26477986808461512 -0.67659001194187429 -> -0.31944085207999973 -1.197773671987121 -log0081 log 0.0014754261398071962 5.3514691608205442 -> 1.6773711707153829 1.5705206219261802 -log0082 log 0.29667334462157885 0.00020056045042584795 -> -1.2151233667079588 0.00067603114168689204 -log0083 log 0.82104233671099425 3.9005387130133102 -> 1.3827918965299593 1.3633304701848363 -log0084 log 0.27268135358180667 124.42088110945804 -> 4.8236724223559229 1.5686047258789015 -log0085 log 0.0026286959168267485 0.47795808180573013 -> -0.73821712137809126 1.5652965360960087 - --- values near infinity -log0100 log 1.0512025744003172e+308 7.2621669750664611e+307 -> 709.44123967814494 0.60455434048332968 -log0101 log 5.5344249034372126e+307 -1.2155859158431275e+308 -> 709.48562300345679 -1.143553056717973 -log0102 log -1.3155575403469408e+308 1.1610793541663864e+308 -> 709.75847809546428 2.41848796504974 -log0103 log -1.632366720973235e+308 -1.54299446211448e+308 -> 710.00545236515586 -2.3843326028455087 -log0104 log 0.0 5.9449276692327712e+307 -> 708.67616191258526 1.5707963267948966 -log0105 log -0.0 1.1201850459025692e+308 -> 709.30970253338171 1.5707963267948966 -log0106 log 0.0 -1.6214225933466528e+308 -> 709.6795125501086 -1.5707963267948966 -log0107 log -0.0 -1.7453269791591058e+308 -> 709.75315056087379 -1.5707963267948966 -log0108 log 1.440860577601428e+308 0.0 -> 709.56144920058262 0.0 -log0109 log 1.391515176148282e+308 -0.0 -> 709.52660185041327 -0.0 -log0110 log -1.201354401295296e+308 0.0 -> 709.37965823023956 3.1415926535897931 -log0111 log -1.6704337825976804e+308 -0.0 -> 709.70929198492399 -3.1415926535897931 -log0112 log 7.2276974655190223e+307 7.94879711369164 -> 708.87154406512104 1.0997689307850458e-307 -log0113 log 1.1207859593716076e+308 -6.1956200868221147 -> 709.31023883080104 -5.5279244310803286e-308 -log0114 log -4.6678933874471045e+307 9.947107893220382 -> 708.43433142431388 3.1415926535897931 -log0115 log -1.5108012453950142e+308 -5.3117197179375619 -> 709.60884877835008 -3.1415926535897931 -log0116 log 7.4903750871504435 1.5320703776626352e+308 -> 709.62282865085137 1.5707963267948966 -log0117 log 5.9760325525654778 -8.0149473997349123e+307 -> 708.97493177248396 -1.5707963267948966 -log0118 log -7.880194206386629 1.7861845814767441e+308 -> 709.77629046837137 1.5707963267948966 -log0119 log -9.886438993852865 -6.19235781080747e+307 -> 708.71693946977302 -1.5707963267948966 - --- values near 0 -log0120 log 2.2996867579227779e-308 6.7861840770939125e-312 -> -708.36343567717392 0.00029509166223339815 -log0121 log 6.9169190417774516e-323 -9.0414013188948118e-322 -> -739.22766796468386 -1.4944423210001669 -log0122 log -1.5378064962914011e-316 1.8243628389354635e-310 -> -713.20014803142965 1.5707971697228842 -log0123 log -2.3319898483706837e-321 -2.2358763941866371e-313 -> -719.9045008332522 -1.570796337224766 -log0124 log 0.0 3.872770101081121e-315 -> -723.96033425374401 1.5707963267948966 -log0125 log -0.0 9.6342800939043076e-322 -> -739.16707236281752 1.5707963267948966 -log0126 log 0.0 -2.266099393427834e-308 -> -708.37814861757965 -1.5707963267948966 -log0127 log -0.0 -2.1184695673766626e-315 -> -724.56361036731812 -1.5707963267948966 -log0128 log 1.1363509854348671e-322 0.0 -> -741.30457770545206 0.0 -log0129 log 3.5572726500569751e-322 -0.0 -> -740.16340580236522 -0.0 -log0130 log -2.3696071074040593e-310 0.0 -> -712.93865466421641 3.1415926535897931 -log0131 log -2.813283897266934e-317 -0.0 -> -728.88512203138862 -3.1415926535897931 - --- values near the unit circle -log0200 log -0.59999999999999998 0.80000000000000004 -> 2.2204460492503132e-17 2.2142974355881808 -log0201 log 0.79999999999999993 0.60000000000000009 -> 6.1629758220391547e-33 0.64350110879328448 - --- special values -log1000 log -0.0 0.0 -> -inf 3.1415926535897931 divide-by-zero -log1001 log 0.0 0.0 -> -inf 0.0 divide-by-zero -log1002 log 0.0 inf -> inf 1.5707963267948966 -log1003 log 2.3 inf -> inf 1.5707963267948966 -log1004 log -0.0 inf -> inf 1.5707963267948966 -log1005 log -2.3 inf -> inf 1.5707963267948966 -log1006 log 0.0 nan -> nan nan -log1007 log 2.3 nan -> nan nan -log1008 log -0.0 nan -> nan nan -log1009 log -2.3 nan -> nan nan -log1010 log -inf 0.0 -> inf 3.1415926535897931 -log1011 log -inf 2.3 -> inf 3.1415926535897931 -log1012 log inf 0.0 -> inf 0.0 -log1013 log inf 2.3 -> inf 0.0 -log1014 log -inf inf -> inf 2.3561944901923448 -log1015 log inf inf -> inf 0.78539816339744828 -log1016 log inf nan -> inf nan -log1017 log -inf nan -> inf nan -log1018 log nan 0.0 -> nan nan -log1019 log nan 2.3 -> nan nan -log1020 log nan inf -> inf nan -log1021 log nan nan -> nan nan -log1022 log -0.0 -0.0 -> -inf -3.1415926535897931 divide-by-zero -log1023 log 0.0 -0.0 -> -inf -0.0 divide-by-zero -log1024 log 0.0 -inf -> inf -1.5707963267948966 -log1025 log 2.3 -inf -> inf -1.5707963267948966 -log1026 log -0.0 -inf -> inf -1.5707963267948966 -log1027 log -2.3 -inf -> inf -1.5707963267948966 -log1028 log -inf -0.0 -> inf -3.1415926535897931 -log1029 log -inf -2.3 -> inf -3.1415926535897931 -log1030 log inf -0.0 -> inf -0.0 -log1031 log inf -2.3 -> inf -0.0 -log1032 log -inf -inf -> inf -2.3561944901923448 -log1033 log inf -inf -> inf -0.78539816339744828 -log1034 log nan -0.0 -> nan nan -log1035 log nan -2.3 -> nan nan -log1036 log nan -inf -> inf nan - - ------------------------------- --- log10: Logarithm base 10 -- ------------------------------- - -logt0000 log10 1.0 0.0 -> 0.0 0.0 -logt0001 log10 1.0 -0.0 -> 0.0 -0.0 -logt0002 log10 -1.0 0.0 -> 0.0 1.3643763538418414 -logt0003 log10 -1.0 -0.0 -> 0.0 -1.3643763538418414 --- values along both sides of real axis -logt0010 log10 -9.8813129168249309e-324 0.0 -> -323.0051853474518 1.3643763538418414 -logt0011 log10 -9.8813129168249309e-324 -0.0 -> -323.0051853474518 -1.3643763538418414 -logt0012 log10 -1e-305 0.0 -> -305.0 1.3643763538418414 -logt0013 log10 -1e-305 -0.0 -> -305.0 -1.3643763538418414 -logt0014 log10 -1e-150 0.0 -> -150.0 1.3643763538418414 -logt0015 log10 -1e-150 -0.0 -> -150.0 -1.3643763538418414 -logt0016 log10 -9.9999999999999998e-17 0.0 -> -16.0 1.3643763538418414 -logt0017 log10 -9.9999999999999998e-17 -0.0 -> -16.0 -1.3643763538418414 -logt0018 log10 -0.001 0.0 -> -3.0 1.3643763538418414 -logt0019 log10 -0.001 -0.0 -> -3.0 -1.3643763538418414 -logt0020 log10 -0.57899999999999996 0.0 -> -0.23732143627256383 1.3643763538418414 -logt0021 log10 -0.57899999999999996 -0.0 -> -0.23732143627256383 -1.3643763538418414 -logt0022 log10 -0.99999999999999989 0.0 -> -4.821637332766436e-17 1.3643763538418414 -logt0023 log10 -0.99999999999999989 -0.0 -> -4.821637332766436e-17 -1.3643763538418414 -logt0024 log10 -1.0000000000000002 0.0 -> 9.6432746655328696e-17 1.3643763538418414 -logt0025 log10 -1.0000000000000002 -0.0 -> 9.6432746655328696e-17 -1.3643763538418414 -logt0026 log10 -1.0009999999999999 0.0 -> 0.0004340774793185929 1.3643763538418414 -logt0027 log10 -1.0009999999999999 -0.0 -> 0.0004340774793185929 -1.3643763538418414 -logt0028 log10 -2.0 0.0 -> 0.3010299956639812 1.3643763538418414 -logt0029 log10 -2.0 -0.0 -> 0.3010299956639812 -1.3643763538418414 -logt0030 log10 -23.0 0.0 -> 1.3617278360175928 1.3643763538418414 -logt0031 log10 -23.0 -0.0 -> 1.3617278360175928 -1.3643763538418414 -logt0032 log10 -10000000000000000.0 0.0 -> 16.0 1.3643763538418414 -logt0033 log10 -10000000000000000.0 -0.0 -> 16.0 -1.3643763538418414 -logt0034 log10 -9.9999999999999998e+149 0.0 -> 150.0 1.3643763538418414 -logt0035 log10 -9.9999999999999998e+149 -0.0 -> 150.0 -1.3643763538418414 -logt0036 log10 -1.0000000000000001e+299 0.0 -> 299.0 1.3643763538418414 -logt0037 log10 -1.0000000000000001e+299 -0.0 -> 299.0 -1.3643763538418414 -logt0038 log10 9.8813129168249309e-324 0.0 -> -323.0051853474518 0.0 -logt0039 log10 9.8813129168249309e-324 -0.0 -> -323.0051853474518 -0.0 -logt0040 log10 1e-305 0.0 -> -305.0 0.0 -logt0041 log10 1e-305 -0.0 -> -305.0 -0.0 -logt0042 log10 1e-150 0.0 -> -150.0 0.0 -logt0043 log10 1e-150 -0.0 -> -150.0 -0.0 -logt0044 log10 9.9999999999999998e-17 0.0 -> -16.0 0.0 -logt0045 log10 9.9999999999999998e-17 -0.0 -> -16.0 -0.0 -logt0046 log10 0.001 0.0 -> -3.0 0.0 -logt0047 log10 0.001 -0.0 -> -3.0 -0.0 -logt0048 log10 0.57899999999999996 0.0 -> -0.23732143627256383 0.0 -logt0049 log10 0.57899999999999996 -0.0 -> -0.23732143627256383 -0.0 -logt0050 log10 0.99999999999999989 0.0 -> -4.821637332766436e-17 0.0 -logt0051 log10 0.99999999999999989 -0.0 -> -4.821637332766436e-17 -0.0 -logt0052 log10 1.0000000000000002 0.0 -> 9.6432746655328696e-17 0.0 -logt0053 log10 1.0000000000000002 -0.0 -> 9.6432746655328696e-17 -0.0 -logt0054 log10 1.0009999999999999 0.0 -> 0.0004340774793185929 0.0 -logt0055 log10 1.0009999999999999 -0.0 -> 0.0004340774793185929 -0.0 -logt0056 log10 2.0 0.0 -> 0.3010299956639812 0.0 -logt0057 log10 2.0 -0.0 -> 0.3010299956639812 -0.0 -logt0058 log10 23.0 0.0 -> 1.3617278360175928 0.0 -logt0059 log10 23.0 -0.0 -> 1.3617278360175928 -0.0 -logt0060 log10 10000000000000000.0 0.0 -> 16.0 0.0 -logt0061 log10 10000000000000000.0 -0.0 -> 16.0 -0.0 -logt0062 log10 9.9999999999999998e+149 0.0 -> 150.0 0.0 -logt0063 log10 9.9999999999999998e+149 -0.0 -> 150.0 -0.0 -logt0064 log10 1.0000000000000001e+299 0.0 -> 299.0 0.0 -logt0065 log10 1.0000000000000001e+299 -0.0 -> 299.0 -0.0 - --- random inputs -logt0066 log10 -1.9830454945186191e-16 -2.0334448025673346 -> 0.30823238806798503 -0.68218817692092071 -logt0067 log10 -0.96745853024741857 -0.84995816228299692 -> 0.10984528422284802 -1.051321426174086 -logt0068 log10 -0.1603644313948418 -0.2929942111041835 -> -0.47624115633305419 -0.89967884023059597 -logt0069 log10 -0.15917913168438699 -0.25238799251132177 -> -0.52521304641665956 -0.92655790645688119 -logt0070 log10 -0.68907818535078802 -3.0693105853476346 -> 0.4977187885066448 -0.77809953119328823 -logt0071 log10 -17.268133447565589 6.8165120014604756 -> 1.2686912008098534 1.2010954629104202 -logt0072 log10 -1.7153894479690328 26.434055372802636 -> 1.423076309032751 0.71033145859005309 -logt0073 log10 -8.0456794648936578e-06 0.19722758057570208 -> -0.70503235244987561 0.68220589348055516 -logt0074 log10 -2.4306442691323173 0.6846919750700996 -> 0.40230257845332595 1.2451292533748923 -logt0075 log10 -3.5488049250888194 0.45324040643185254 -> 0.55359553977141063 1.3092085108866405 -logt0076 log10 0.18418516851510189 -0.26062518836212617 -> -0.49602019732913638 -0.41500503556604301 -logt0077 log10 2.7124837795638399 -13.148769067133387 -> 1.1279348613317008 -0.59383616643803216 -logt0078 log10 3.6521275476169149e-13 -3.7820543023170673e-05 -> -4.4222722398941112 -0.68218817272717114 -logt0079 log10 5.0877545813862239 -1.2834978326786852 -> 0.71992371806426847 -0.10732104352159283 -logt0080 log10 0.26477986808461512 -0.67659001194187429 -> -0.13873139935281681 -0.52018649631300229 -logt0081 log10 0.0014754261398071962 5.3514691608205442 -> 0.72847304354528819 0.6820684398178033 -logt0082 log10 0.29667334462157885 0.00020056045042584795 -> -0.52772137299296806 0.00029359659442937261 -logt0083 log10 0.82104233671099425 3.9005387130133102 -> 0.60053889028349361 0.59208690021184018 -logt0084 log10 0.27268135358180667 124.42088110945804 -> 2.094894315538069 0.68123637673656989 -logt0085 log10 0.0026286959168267485 0.47795808180573013 -> -0.32060362226100814 0.67979964816877081 - --- values near infinity -logt0100 log10 1.0512025744003172e+308 7.2621669750664611e+307 -> 308.10641562682065 0.26255461408256975 -logt0101 log10 5.5344249034372126e+307 -1.2155859158431275e+308 -> 308.12569106009209 -0.496638782296212 -logt0102 log10 -1.3155575403469408e+308 1.1610793541663864e+308 -> 308.24419052091019 1.0503359777705266 -logt0103 log10 -1.632366720973235e+308 -1.54299446211448e+308 -> 308.3514500834093 -1.0355024924378222 -logt0104 log10 0.0 5.9449276692327712e+307 -> 307.77414657501117 0.68218817692092071 -logt0105 log10 -0.0 1.1201850459025692e+308 -> 308.04928977068465 0.68218817692092071 -logt0106 log10 0.0 -1.6214225933466528e+308 -> 308.20989622030174 -0.68218817692092071 -logt0107 log10 -0.0 -1.7453269791591058e+308 -> 308.24187680203539 -0.68218817692092071 -logt0108 log10 1.440860577601428e+308 0.0 -> 308.15862195908755 0.0 -logt0109 log10 1.391515176148282e+308 -0.0 -> 308.14348794720007 -0.0 -logt0110 log10 -1.201354401295296e+308 0.0 -> 308.07967114380773 1.3643763538418414 -logt0111 log10 -1.6704337825976804e+308 -0.0 -> 308.22282926451624 -1.3643763538418414 -logt0112 log10 7.2276974655190223e+307 7.94879711369164 -> 307.85899996571993 4.7762357800858463e-308 -logt0113 log10 1.1207859593716076e+308 -6.1956200868221147 -> 308.04952268169455 -2.4007470767963597e-308 -logt0114 log10 -4.6678933874471045e+307 9.947107893220382 -> 307.66912092839902 1.3643763538418414 -logt0115 log10 -1.5108012453950142e+308 -5.3117197179375619 -> 308.1792073341565 -1.3643763538418414 -logt0116 log10 7.4903750871504435 1.5320703776626352e+308 -> 308.18527871564157 0.68218817692092071 -logt0117 log10 5.9760325525654778 -8.0149473997349123e+307 -> 307.90390067652424 -0.68218817692092071 -logt0118 log10 -7.880194206386629 1.7861845814767441e+308 -> 308.25192633617331 0.68218817692092071 -logt0119 log10 -9.886438993852865 -6.19235781080747e+307 -> 307.79185604308338 -0.68218817692092071 - --- values near 0 -logt0120 log10 2.2996867579227779e-308 6.7861840770939125e-312 -> -307.63833129662572 0.00012815668056362305 -logt0121 log10 6.9169190417774516e-323 -9.0414013188948118e-322 -> -321.04249706727148 -0.64902805353306059 -logt0122 log10 -1.5378064962914011e-316 1.8243628389354635e-310 -> -309.73888878263222 0.68218854299989429 -logt0123 log10 -2.3319898483706837e-321 -2.2358763941866371e-313 -> -312.65055220919641 -0.68218818145055538 -logt0124 log10 0.0 3.872770101081121e-315 -> -314.41197828323476 0.68218817692092071 -logt0125 log10 -0.0 9.6342800939043076e-322 -> -321.01618073175331 0.68218817692092071 -logt0126 log10 0.0 -2.266099393427834e-308 -> -307.64472104545649 -0.68218817692092071 -logt0127 log10 -0.0 -2.1184695673766626e-315 -> -314.67397777042407 -0.68218817692092071 -logt0128 log10 1.1363509854348671e-322 0.0 -> -321.94448750709819 0.0 -logt0129 log10 3.5572726500569751e-322 -0.0 -> -321.44888284668451 -0.0 -logt0130 log10 -2.3696071074040593e-310 0.0 -> -309.62532365619722 1.3643763538418414 -logt0131 log10 -2.813283897266934e-317 -0.0 -> -316.55078643961042 -1.3643763538418414 - --- values near the unit circle -logt0200 log10 -0.59999999999999998 0.80000000000000004 -> 9.6432746655328709e-18 0.96165715756846815 -logt0201 log10 0.79999999999999993 0.60000000000000009 -> 2.6765463916147622e-33 0.2794689806475476 - --- special values -logt1000 log10 -0.0 0.0 -> -inf 1.3643763538418414 divide-by-zero -logt1001 log10 0.0 0.0 -> -inf 0.0 divide-by-zero -logt1002 log10 0.0 inf -> inf 0.68218817692092071 -logt1003 log10 2.3 inf -> inf 0.68218817692092071 -logt1004 log10 -0.0 inf -> inf 0.68218817692092071 -logt1005 log10 -2.3 inf -> inf 0.68218817692092071 -logt1006 log10 0.0 nan -> nan nan -logt1007 log10 2.3 nan -> nan nan -logt1008 log10 -0.0 nan -> nan nan -logt1009 log10 -2.3 nan -> nan nan -logt1010 log10 -inf 0.0 -> inf 1.3643763538418414 -logt1011 log10 -inf 2.3 -> inf 1.3643763538418414 -logt1012 log10 inf 0.0 -> inf 0.0 -logt1013 log10 inf 2.3 -> inf 0.0 -logt1014 log10 -inf inf -> inf 1.0232822653813811 -logt1015 log10 inf inf -> inf 0.34109408846046035 -logt1016 log10 inf nan -> inf nan -logt1017 log10 -inf nan -> inf nan -logt1018 log10 nan 0.0 -> nan nan -logt1019 log10 nan 2.3 -> nan nan -logt1020 log10 nan inf -> inf nan -logt1021 log10 nan nan -> nan nan -logt1022 log10 -0.0 -0.0 -> -inf -1.3643763538418414 divide-by-zero -logt1023 log10 0.0 -0.0 -> -inf -0.0 divide-by-zero -logt1024 log10 0.0 -inf -> inf -0.68218817692092071 -logt1025 log10 2.3 -inf -> inf -0.68218817692092071 -logt1026 log10 -0.0 -inf -> inf -0.68218817692092071 -logt1027 log10 -2.3 -inf -> inf -0.68218817692092071 -logt1028 log10 -inf -0.0 -> inf -1.3643763538418414 -logt1029 log10 -inf -2.3 -> inf -1.3643763538418414 -logt1030 log10 inf -0.0 -> inf -0.0 -logt1031 log10 inf -2.3 -> inf -0.0 -logt1032 log10 -inf -inf -> inf -1.0232822653813811 -logt1033 log10 inf -inf -> inf -0.34109408846046035 -logt1034 log10 nan -0.0 -> nan nan -logt1035 log10 nan -2.3 -> nan nan -logt1036 log10 nan -inf -> inf nan - - ------------------------ --- sqrt: Square root -- ------------------------ - --- zeros -sqrt0000 sqrt 0.0 0.0 -> 0.0 0.0 -sqrt0001 sqrt 0.0 -0.0 -> 0.0 -0.0 -sqrt0002 sqrt -0.0 0.0 -> 0.0 0.0 -sqrt0003 sqrt -0.0 -0.0 -> 0.0 -0.0 - --- values along both sides of real axis -sqrt0010 sqrt -9.8813129168249309e-324 0.0 -> 0.0 3.1434555694052576e-162 -sqrt0011 sqrt -9.8813129168249309e-324 -0.0 -> 0.0 -3.1434555694052576e-162 -sqrt0012 sqrt -1e-305 0.0 -> 0.0 3.1622776601683791e-153 -sqrt0013 sqrt -1e-305 -0.0 -> 0.0 -3.1622776601683791e-153 -sqrt0014 sqrt -1e-150 0.0 -> 0.0 9.9999999999999996e-76 -sqrt0015 sqrt -1e-150 -0.0 -> 0.0 -9.9999999999999996e-76 -sqrt0016 sqrt -9.9999999999999998e-17 0.0 -> 0.0 1e-08 -sqrt0017 sqrt -9.9999999999999998e-17 -0.0 -> 0.0 -1e-08 -sqrt0018 sqrt -0.001 0.0 -> 0.0 0.031622776601683791 -sqrt0019 sqrt -0.001 -0.0 -> 0.0 -0.031622776601683791 -sqrt0020 sqrt -0.57899999999999996 0.0 -> 0.0 0.76092049518987193 -sqrt0021 sqrt -0.57899999999999996 -0.0 -> 0.0 -0.76092049518987193 -sqrt0022 sqrt -0.99999999999999989 0.0 -> 0.0 0.99999999999999989 -sqrt0023 sqrt -0.99999999999999989 -0.0 -> 0.0 -0.99999999999999989 -sqrt0024 sqrt -1.0000000000000002 0.0 -> 0.0 1.0 -sqrt0025 sqrt -1.0000000000000002 -0.0 -> 0.0 -1.0 -sqrt0026 sqrt -1.0009999999999999 0.0 -> 0.0 1.000499875062461 -sqrt0027 sqrt -1.0009999999999999 -0.0 -> 0.0 -1.000499875062461 -sqrt0028 sqrt -2.0 0.0 -> 0.0 1.4142135623730951 -sqrt0029 sqrt -2.0 -0.0 -> 0.0 -1.4142135623730951 -sqrt0030 sqrt -23.0 0.0 -> 0.0 4.7958315233127191 -sqrt0031 sqrt -23.0 -0.0 -> 0.0 -4.7958315233127191 -sqrt0032 sqrt -10000000000000000.0 0.0 -> 0.0 100000000.0 -sqrt0033 sqrt -10000000000000000.0 -0.0 -> 0.0 -100000000.0 -sqrt0034 sqrt -9.9999999999999998e+149 0.0 -> 0.0 9.9999999999999993e+74 -sqrt0035 sqrt -9.9999999999999998e+149 -0.0 -> 0.0 -9.9999999999999993e+74 -sqrt0036 sqrt -1.0000000000000001e+299 0.0 -> 0.0 3.1622776601683796e+149 -sqrt0037 sqrt -1.0000000000000001e+299 -0.0 -> 0.0 -3.1622776601683796e+149 -sqrt0038 sqrt 9.8813129168249309e-324 0.0 -> 3.1434555694052576e-162 0.0 -sqrt0039 sqrt 9.8813129168249309e-324 -0.0 -> 3.1434555694052576e-162 -0.0 -sqrt0040 sqrt 1e-305 0.0 -> 3.1622776601683791e-153 0.0 -sqrt0041 sqrt 1e-305 -0.0 -> 3.1622776601683791e-153 -0.0 -sqrt0042 sqrt 1e-150 0.0 -> 9.9999999999999996e-76 0.0 -sqrt0043 sqrt 1e-150 -0.0 -> 9.9999999999999996e-76 -0.0 -sqrt0044 sqrt 9.9999999999999998e-17 0.0 -> 1e-08 0.0 -sqrt0045 sqrt 9.9999999999999998e-17 -0.0 -> 1e-08 -0.0 -sqrt0046 sqrt 0.001 0.0 -> 0.031622776601683791 0.0 -sqrt0047 sqrt 0.001 -0.0 -> 0.031622776601683791 -0.0 -sqrt0048 sqrt 0.57899999999999996 0.0 -> 0.76092049518987193 0.0 -sqrt0049 sqrt 0.57899999999999996 -0.0 -> 0.76092049518987193 -0.0 -sqrt0050 sqrt 0.99999999999999989 0.0 -> 0.99999999999999989 0.0 -sqrt0051 sqrt 0.99999999999999989 -0.0 -> 0.99999999999999989 -0.0 -sqrt0052 sqrt 1.0000000000000002 0.0 -> 1.0 0.0 -sqrt0053 sqrt 1.0000000000000002 -0.0 -> 1.0 -0.0 -sqrt0054 sqrt 1.0009999999999999 0.0 -> 1.000499875062461 0.0 -sqrt0055 sqrt 1.0009999999999999 -0.0 -> 1.000499875062461 -0.0 -sqrt0056 sqrt 2.0 0.0 -> 1.4142135623730951 0.0 -sqrt0057 sqrt 2.0 -0.0 -> 1.4142135623730951 -0.0 -sqrt0058 sqrt 23.0 0.0 -> 4.7958315233127191 0.0 -sqrt0059 sqrt 23.0 -0.0 -> 4.7958315233127191 -0.0 -sqrt0060 sqrt 10000000000000000.0 0.0 -> 100000000.0 0.0 -sqrt0061 sqrt 10000000000000000.0 -0.0 -> 100000000.0 -0.0 -sqrt0062 sqrt 9.9999999999999998e+149 0.0 -> 9.9999999999999993e+74 0.0 -sqrt0063 sqrt 9.9999999999999998e+149 -0.0 -> 9.9999999999999993e+74 -0.0 -sqrt0064 sqrt 1.0000000000000001e+299 0.0 -> 3.1622776601683796e+149 0.0 -sqrt0065 sqrt 1.0000000000000001e+299 -0.0 -> 3.1622776601683796e+149 -0.0 - --- random inputs -sqrt0100 sqrt -0.34252542541549913 -223039880.15076211 -> 10560.300180587592 -10560.300196805192 -sqrt0101 sqrt -0.88790791393018909 -5.3307751730827402 -> 1.5027154613689004 -1.7737140896343291 -sqrt0102 sqrt -113916.89291310767 -0.018143374626153858 -> 2.6877817875351178e-05 -337.51576691038952 -sqrt0103 sqrt -0.63187172386197121 -0.26293913366617694 -> 0.16205707495266153 -0.81125471918761971 -sqrt0104 sqrt -0.058185169308906215 -2.3548312990430991 -> 1.0717660342420072 -1.0985752598086966 -sqrt0105 sqrt -1.0580584765935896 0.14400319259151736 -> 0.069837489270111242 1.030987755262468 -sqrt0106 sqrt -1.1667595947504932 0.11159711473953678 -> 0.051598531319315251 1.0813981705111229 -sqrt0107 sqrt -0.5123728411449906 0.026175433648339085 -> 0.018278026262418718 0.71603556293597614 -sqrt0108 sqrt -3.7453400060067228 1.0946500314809635 -> 0.27990088541692498 1.9554243814742367 -sqrt0109 sqrt -0.0027736121575097673 1.0367943000839817 -> 0.71903560338719175 0.72096172651250545 -sqrt0110 sqrt 1501.2559699453188 -1.1997325207283589 -> 38.746047664730959 -0.015481998720355024 -sqrt0111 sqrt 1.4830075326850578 -0.64100878436755349 -> 1.244712815741096 -0.25749264258434584 -sqrt0112 sqrt 0.095395618499734602 -0.48226565701639595 -> 0.54175904053472879 -0.44509239434231551 -sqrt0113 sqrt 0.50109185681863277 -0.54054037379892561 -> 0.7868179858332387 -0.34349772344520979 -sqrt0114 sqrt 0.98779807595367897 -0.00019848758437225191 -> 0.99388031770665153 -9.9854872279921968e-05 -sqrt0115 sqrt 11.845472380792259 0.0010051104581506761 -> 3.4417252072345397 0.00014601840612346451 -sqrt0116 sqrt 2.3558249686735975 0.25605157371744403 -> 1.5371278477386647 0.083288964575761404 -sqrt0117 sqrt 0.77584894123159098 1.0496420627016076 -> 1.0200744386390885 0.51449287568756552 -sqrt0118 sqrt 1.8961715669604893 0.34940793467158854 -> 1.3827991781411615 0.12634080935066902 -sqrt0119 sqrt 0.96025378316565801 0.69573224860140515 -> 1.0358710342209998 0.33581991658093457 - --- values near 0 -sqrt0120 sqrt 7.3577938365086866e-313 8.1181408465112743e-319 -> 8.5777583531543516e-157 4.732087634251168e-163 -sqrt0121 sqrt 1.2406883874892108e-310 -5.1210133324269776e-312 -> 1.1140990057468052e-155 -2.2982756945349973e-157 -sqrt0122 sqrt -7.1145453001139502e-322 2.9561379244703735e-314 -> 1.2157585807480286e-157 1.2157586100077242e-157 -sqrt0123 sqrt -4.9963244206801218e-314 -8.4718424423690227e-319 -> 1.8950582312540437e-162 -2.2352459419578971e-157 -sqrt0124 sqrt 0.0 7.699553609385195e-318 -> 1.9620848107797476e-159 1.9620848107797476e-159 -sqrt0125 sqrt -0.0 3.3900826606499415e-309 -> 4.1170879639922327e-155 4.1170879639922327e-155 -sqrt0126 sqrt 0.0 -9.8907989772250828e-319 -> 7.032353438652342e-160 -7.032353438652342e-160 -sqrt0127 sqrt -0.0 -1.3722939367590908e-315 -> 2.6194407196566702e-158 -2.6194407196566702e-158 -sqrt0128 sqrt 7.9050503334599447e-323 0.0 -> 8.8910349979403099e-162 0.0 -sqrt0129 sqrt 1.8623241768349486e-309 -0.0 -> 4.3154654173506579e-155 -0.0 -sqrt0130 sqrt -2.665971134499887e-308 0.0 -> 0.0 1.6327801856036491e-154 -sqrt0131 sqrt -1.5477066694467245e-310 -0.0 -> 0.0 -1.2440685951533077e-155 - --- inputs whose absolute value overflows -sqrt0140 sqrt 1.6999999999999999e+308 -1.6999999999999999e+308 -> 1.4325088230154573e+154 -5.9336458271212207e+153 -sqrt0141 sqrt -1.797e+308 -9.9999999999999999e+306 -> 3.7284476432057307e+152 -1.3410406899802901e+154 - --- Additional real values (mpmath) -sqrt0150 sqrt 1.7976931348623157e+308 0.0 -> 1.3407807929942596355e+154 0.0 -sqrt0151 sqrt 2.2250738585072014e-308 0.0 -> 1.4916681462400413487e-154 0.0 -sqrt0152 sqrt 5e-324 0.0 -> 2.2227587494850774834e-162 0.0 -sqrt0153 sqrt 5e-324 1.0 -> 0.7071067811865476 0.7071067811865476 - --- special values -sqrt1000 sqrt 0.0 0.0 -> 0.0 0.0 -sqrt1001 sqrt -0.0 0.0 -> 0.0 0.0 -sqrt1002 sqrt 0.0 inf -> inf inf -sqrt1003 sqrt 2.3 inf -> inf inf -sqrt1004 sqrt inf inf -> inf inf -sqrt1005 sqrt -0.0 inf -> inf inf -sqrt1006 sqrt -2.3 inf -> inf inf -sqrt1007 sqrt -inf inf -> inf inf -sqrt1008 sqrt nan inf -> inf inf -sqrt1009 sqrt 0.0 nan -> nan nan -sqrt1010 sqrt 2.3 nan -> nan nan -sqrt1011 sqrt -0.0 nan -> nan nan -sqrt1012 sqrt -2.3 nan -> nan nan -sqrt1013 sqrt -inf 0.0 -> 0.0 inf -sqrt1014 sqrt -inf 2.3 -> 0.0 inf -sqrt1015 sqrt inf 0.0 -> inf 0.0 -sqrt1016 sqrt inf 2.3 -> inf 0.0 -sqrt1017 sqrt -inf nan -> nan inf ignore-imag-sign -sqrt1018 sqrt inf nan -> inf nan -sqrt1019 sqrt nan 0.0 -> nan nan -sqrt1020 sqrt nan 2.3 -> nan nan -sqrt1021 sqrt nan nan -> nan nan -sqrt1022 sqrt 0.0 -0.0 -> 0.0 -0.0 -sqrt1023 sqrt -0.0 -0.0 -> 0.0 -0.0 -sqrt1024 sqrt 0.0 -inf -> inf -inf -sqrt1025 sqrt 2.3 -inf -> inf -inf -sqrt1026 sqrt inf -inf -> inf -inf -sqrt1027 sqrt -0.0 -inf -> inf -inf -sqrt1028 sqrt -2.3 -inf -> inf -inf -sqrt1029 sqrt -inf -inf -> inf -inf -sqrt1030 sqrt nan -inf -> inf -inf -sqrt1031 sqrt -inf -0.0 -> 0.0 -inf -sqrt1032 sqrt -inf -2.3 -> 0.0 -inf -sqrt1033 sqrt inf -0.0 -> inf -0.0 -sqrt1034 sqrt inf -2.3 -> inf -0.0 -sqrt1035 sqrt nan -0.0 -> nan nan -sqrt1036 sqrt nan -2.3 -> nan nan - - --- For exp, cosh, sinh, tanh we limit tests to arguments whose --- imaginary part is less than 10 in absolute value: most math --- libraries have poor accuracy for (real) sine and cosine for --- large arguments, and the accuracy of these complex functions --- suffer correspondingly. --- --- Similarly, for cos, sin and tan we limit tests to arguments --- with relatively small real part. - - -------------------------------- --- exp: Exponential function -- -------------------------------- - --- zeros -exp0000 exp 0.0 0.0 -> 1.0 0.0 -exp0001 exp 0.0 -0.0 -> 1.0 -0.0 -exp0002 exp -0.0 0.0 -> 1.0 0.0 -exp0003 exp -0.0 -0.0 -> 1.0 -0.0 - --- random inputs -exp0004 exp -17.957359009564684 -1.108613895795274 -> 7.0869292576226611e-09 -1.4225929202377833e-08 -exp0005 exp -1.4456149663368642e-15 -0.75359817331772239 -> 0.72923148323917997 -0.68426708517419033 -exp0006 exp -0.76008654883512661 -0.46657235480105019 -> 0.41764393109928666 -0.21035108396792854 -exp0007 exp -5.7071614697735731 -2.3744161818115816e-11 -> 0.0033220890242068356 -7.8880219364953578e-14 -exp0008 exp -0.4653981327927097 -5.2236706667445587e-21 -> 0.62788507378216663 -3.2798648420026468e-21 -exp0009 exp -3.2444565242295518 1.1535625304243959 -> 0.015799936931457641 0.035644950380024749 -exp0010 exp -3.0651456337977727 0.87765086532391878 -> 0.029805595629855953 0.035882775180855669 -exp0011 exp -0.11080823753233926 0.96486386300873106 -> 0.50979112534376314 0.73575512419561562 -exp0012 exp -2.5629722598928648 0.019636235754708079 -> 0.077060452853917397 0.0015133717341137684 -exp0013 exp -3.3201709957983357e-10 1.2684017344487268 -> 0.29780699855434889 0.95462610007689186 -exp0014 exp 0.88767276057993272 -0.18953422986895557 -> 2.3859624049858095 -0.45771559132044426 -exp0015 exp 1.5738333486794742 -2.2576803075544328e-11 -> 4.8251091132458654 -1.0893553826776623e-10 -exp0016 exp 1.6408702341813795 -1.438879484380837 -> 0.6786733590689048 -5.1148284173168825 -exp0017 exp 1.820279424202033 -0.020812040370785722 -> 6.1722462896420902 -0.1284755888435051 -exp0018 exp 1.7273965735945873 -0.61140621328954947 -> 4.6067931898799976 -3.2294267694441308 -exp0019 exp 2.5606034306862995 0.098153136008435504 -> 12.881325889966629 1.2684184812864494 -exp0020 exp 10.280368619483029 3.4564622559748535 -> -27721.283321551502 -9028.9663215568835 -exp0021 exp 1.104007405129741e-155 0.21258803067317278 -> 0.97748813933531764 0.21099037290544478 -exp0022 exp 0.027364777809295172 0.00059226603500623363 -> 1.0277424518451876 0.0006086970181346579 -exp0023 exp 0.94356313429255245 3.418530463518592 -> -2.4712285695346194 -0.70242654900218349 - --- cases where exp(z) representable, exp(z.real) not -exp0030 exp 710.0 0.78500000000000003 -> 1.5803016909637158e+308 1.5790437551806911e+308 -exp0031 exp 710.0 -0.78500000000000003 -> 1.5803016909637158e+308 -1.5790437551806911e+308 - --- values for which exp(x) is subnormal, or underflows to 0 -exp0040 exp -735.0 0.78500000000000003 -> 4.3976783136329355e-320 4.3942198541120468e-320 -exp0041 exp -735.0 -2.3559999999999999 -> -4.3952079854037293e-320 -4.396690182341253e-320 -exp0042 exp -745.0 0.0 -> 4.9406564584124654e-324 0.0 -exp0043 exp -745.0 0.7 -> 0.0 0.0 -exp0044 exp -745.0 2.1 -> -0.0 0.0 -exp0045 exp -745.0 3.7 -> -0.0 -0.0 -exp0046 exp -745.0 5.3 -> 0.0 -0.0 - --- values for which exp(z) overflows -exp0050 exp 710.0 0.0 -> inf 0.0 overflow -exp0051 exp 711.0 0.7 -> inf inf overflow -exp0052 exp 710.0 1.5 -> 1.5802653829857376e+307 inf overflow -exp0053 exp 710.0 1.6 -> -6.5231579995501372e+306 inf overflow -exp0054 exp 710.0 2.8 -> -inf 7.4836177417448528e+307 overflow - --- Additional real values (mpmath) -exp0070 exp 1e-08 0.0 -> 1.00000001000000005 0.0 -exp0071 exp 0.0003 0.0 -> 1.0003000450045003375 0.0 -exp0072 exp 0.2 0.0 -> 1.2214027581601698475 0.0 -exp0073 exp 1.0 0.0 -> 2.7182818284590452354 0.0 -exp0074 exp -1e-08 0.0 -> 0.99999999000000005 0.0 -exp0075 exp -0.0003 0.0 -> 0.99970004499550033751 0.0 -exp0076 exp -1.0 0.0 -> 0.3678794411714423216 0.0 -exp0077 exp 2.220446049250313e-16 0.0 -> 1.000000000000000222 0.0 -exp0078 exp -1.1102230246251565e-16 0.0 -> 0.99999999999999988898 0.0 -exp0079 exp 2.302585092994046 0.0 -> 10.000000000000002171 0.0 -exp0080 exp -2.302585092994046 0.0 -> 0.099999999999999978292 0.0 -exp0081 exp 709.7827 0.0 -> 1.7976699566638014654e+308 0.0 - --- special values -exp1000 exp 0.0 0.0 -> 1.0 0.0 -exp1001 exp -0.0 0.0 -> 1.0 0.0 -exp1002 exp 0.0 inf -> nan nan invalid -exp1003 exp 2.3 inf -> nan nan invalid -exp1004 exp -0.0 inf -> nan nan invalid -exp1005 exp -2.3 inf -> nan nan invalid -exp1006 exp 0.0 nan -> nan nan -exp1007 exp 2.3 nan -> nan nan -exp1008 exp -0.0 nan -> nan nan -exp1009 exp -2.3 nan -> nan nan -exp1010 exp -inf 0.0 -> 0.0 0.0 -exp1011 exp -inf 1.4 -> 0.0 0.0 -exp1012 exp -inf 2.8 -> -0.0 0.0 -exp1013 exp -inf 4.2 -> -0.0 -0.0 -exp1014 exp -inf 5.6 -> 0.0 -0.0 -exp1015 exp -inf 7.0 -> 0.0 0.0 -exp1016 exp inf 0.0 -> inf 0.0 -exp1017 exp inf 1.4 -> inf inf -exp1018 exp inf 2.8 -> -inf inf -exp1019 exp inf 4.2 -> -inf -inf -exp1020 exp inf 5.6 -> inf -inf -exp1021 exp inf 7.0 -> inf inf -exp1022 exp -inf inf -> 0.0 0.0 ignore-real-sign ignore-imag-sign -exp1023 exp inf inf -> inf nan invalid ignore-real-sign -exp1024 exp -inf nan -> 0.0 0.0 ignore-real-sign ignore-imag-sign -exp1025 exp inf nan -> inf nan ignore-real-sign -exp1026 exp nan 0.0 -> nan 0.0 -exp1027 exp nan 2.3 -> nan nan -exp1028 exp nan inf -> nan nan -exp1029 exp nan nan -> nan nan -exp1030 exp 0.0 -0.0 -> 1.0 -0.0 -exp1031 exp -0.0 -0.0 -> 1.0 -0.0 -exp1032 exp 0.0 -inf -> nan nan invalid -exp1033 exp 2.3 -inf -> nan nan invalid -exp1034 exp -0.0 -inf -> nan nan invalid -exp1035 exp -2.3 -inf -> nan nan invalid -exp1036 exp -inf -0.0 -> 0.0 -0.0 -exp1037 exp -inf -1.4 -> 0.0 -0.0 -exp1038 exp -inf -2.8 -> -0.0 -0.0 -exp1039 exp -inf -4.2 -> -0.0 0.0 -exp1040 exp -inf -5.6 -> 0.0 0.0 -exp1041 exp -inf -7.0 -> 0.0 -0.0 -exp1042 exp inf -0.0 -> inf -0.0 -exp1043 exp inf -1.4 -> inf -inf -exp1044 exp inf -2.8 -> -inf -inf -exp1045 exp inf -4.2 -> -inf inf -exp1046 exp inf -5.6 -> inf inf -exp1047 exp inf -7.0 -> inf -inf -exp1048 exp -inf -inf -> 0.0 0.0 ignore-real-sign ignore-imag-sign -exp1049 exp inf -inf -> inf nan invalid ignore-real-sign -exp1050 exp nan -0.0 -> nan -0.0 -exp1051 exp nan -2.3 -> nan nan -exp1052 exp nan -inf -> nan nan - - ------------------------------ --- cosh: Hyperbolic Cosine -- ------------------------------ - --- zeros -cosh0000 cosh 0.0 0.0 -> 1.0 0.0 -cosh0001 cosh 0.0 -0.0 -> 1.0 -0.0 -cosh0002 cosh -0.0 0.0 -> 1.0 -0.0 -cosh0003 cosh -0.0 -0.0 -> 1.0 0.0 - --- random inputs -cosh0004 cosh -0.85395264297414253 -8.8553756148671958 -> -1.1684340348021185 0.51842195359787435 -cosh0005 cosh -19.584904237211223 -0.066582627994906177 -> 159816812.23336992 10656776.050406246 -cosh0006 cosh -0.11072618401130772 -1.484820215073247 -> 0.086397164744949503 0.11054275637717284 -cosh0007 cosh -3.4764840250681752 -0.48440348288275276 -> 14.325931955190844 7.5242053548737955 -cosh0008 cosh -0.52047063604524602 -0.3603805382775585 -> 1.0653940354683802 0.19193293606252473 -cosh0009 cosh -1.39518962975995 0.0074738604700702906 -> 2.1417031027235969 -0.01415518712296308 -cosh0010 cosh -0.37107064757653541 0.14728085307856609 -> 1.0580601496776991 -0.055712531964568587 -cosh0011 cosh -5.8470200958739653 4.0021722388336292 -> -112.86220667618285 131.24734033545013 -cosh0012 cosh -0.1700261444851883 0.97167540135354513 -> 0.57208748253577946 -0.1410904820240203 -cosh0013 cosh -0.44042397902648783 1.0904791964139742 -> 0.50760322393058133 -0.40333966652010816 -cosh0014 cosh 0.052267552491867299 -3.8889011430644174 -> -0.73452303414639297 0.035540704833537134 -cosh0015 cosh 0.98000764177127453 -1.2548829247784097 -> 0.47220747341416142 -1.0879421432180316 -cosh0016 cosh 0.083594701222644008 -0.88847899930181284 -> 0.63279782419312613 -0.064954566816002285 -cosh0017 cosh 1.38173531783776 -0.43185040816732229 -> 1.9221663374671647 -0.78073830858849347 -cosh0018 cosh 0.57315681120148465 -0.22255760951027942 -> 1.1399733125173004 -0.1335512343605956 -cosh0019 cosh 1.8882512333062347 4.5024932182383797 -> -0.7041602065362691 -3.1573822131964615 -cosh0020 cosh 0.5618219206858317 0.92620452129575348 -> 0.69822380405378381 0.47309067471054522 -cosh0021 cosh 0.54361442847062591 0.64176483583018462 -> 0.92234462074193491 0.34167906495845501 -cosh0022 cosh 0.0014777403107920331 1.3682028122677661 -> 0.2012106963899549 0.001447518137863219 -cosh0023 cosh 2.218885944363501 2.0015727395883687 -> -1.94294321081968 4.1290269176083196 - --- large real part -cosh0030 cosh 710.5 2.3519999999999999 -> -1.2967465239355998e+308 1.3076707908857333e+308 -cosh0031 cosh -710.5 0.69999999999999996 -> 1.4085466381392499e+308 -1.1864024666450239e+308 -cosh0032 cosh 720.0 0.0 -> inf 0.0 overflow - --- Additional real values (mpmath) -cosh0050 cosh 1e-150 0.0 -> 1.0 0.0 -cosh0051 cosh 1e-18 0.0 -> 1.0 0.0 -cosh0052 cosh 1e-09 0.0 -> 1.0000000000000000005 0.0 -cosh0053 cosh 0.0003 0.0 -> 1.0000000450000003375 0.0 -cosh0054 cosh 0.2 0.0 -> 1.0200667556190758485 0.0 -cosh0055 cosh 1.0 0.0 -> 1.5430806348152437785 0.0 -cosh0056 cosh -1e-18 0.0 -> 1.0 -0.0 -cosh0057 cosh -0.0003 0.0 -> 1.0000000450000003375 -0.0 -cosh0058 cosh -1.0 0.0 -> 1.5430806348152437785 -0.0 -cosh0059 cosh 1.3169578969248168 0.0 -> 2.0000000000000001504 0.0 -cosh0060 cosh -1.3169578969248168 0.0 -> 2.0000000000000001504 -0.0 -cosh0061 cosh 17.328679513998633 0.0 -> 16777216.000000021938 0.0 -cosh0062 cosh 18.714973875118524 0.0 -> 67108864.000000043662 0.0 -cosh0063 cosh 709.7827 0.0 -> 8.9883497833190073272e+307 0.0 -cosh0064 cosh -709.7827 0.0 -> 8.9883497833190073272e+307 -0.0 - --- special values -cosh1000 cosh 0.0 0.0 -> 1.0 0.0 -cosh1001 cosh 0.0 inf -> nan 0.0 invalid ignore-imag-sign -cosh1002 cosh 0.0 nan -> nan 0.0 ignore-imag-sign -cosh1003 cosh 2.3 inf -> nan nan invalid -cosh1004 cosh 2.3 nan -> nan nan -cosh1005 cosh inf 0.0 -> inf 0.0 -cosh1006 cosh inf 1.4 -> inf inf -cosh1007 cosh inf 2.8 -> -inf inf -cosh1008 cosh inf 4.2 -> -inf -inf -cosh1009 cosh inf 5.6 -> inf -inf -cosh1010 cosh inf 7.0 -> inf inf -cosh1011 cosh inf inf -> inf nan invalid ignore-real-sign -cosh1012 cosh inf nan -> inf nan -cosh1013 cosh nan 0.0 -> nan 0.0 ignore-imag-sign -cosh1014 cosh nan 2.3 -> nan nan -cosh1015 cosh nan inf -> nan nan -cosh1016 cosh nan nan -> nan nan -cosh1017 cosh 0.0 -0.0 -> 1.0 -0.0 -cosh1018 cosh 0.0 -inf -> nan 0.0 invalid ignore-imag-sign -cosh1019 cosh 2.3 -inf -> nan nan invalid -cosh1020 cosh inf -0.0 -> inf -0.0 -cosh1021 cosh inf -1.4 -> inf -inf -cosh1022 cosh inf -2.8 -> -inf -inf -cosh1023 cosh inf -4.2 -> -inf inf -cosh1024 cosh inf -5.6 -> inf inf -cosh1025 cosh inf -7.0 -> inf -inf -cosh1026 cosh inf -inf -> inf nan invalid ignore-real-sign -cosh1027 cosh nan -0.0 -> nan 0.0 ignore-imag-sign -cosh1028 cosh nan -2.3 -> nan nan -cosh1029 cosh nan -inf -> nan nan -cosh1030 cosh -0.0 -0.0 -> 1.0 0.0 -cosh1031 cosh -0.0 -inf -> nan 0.0 invalid ignore-imag-sign -cosh1032 cosh -0.0 nan -> nan 0.0 ignore-imag-sign -cosh1033 cosh -2.3 -inf -> nan nan invalid -cosh1034 cosh -2.3 nan -> nan nan -cosh1035 cosh -inf -0.0 -> inf 0.0 -cosh1036 cosh -inf -1.4 -> inf inf -cosh1037 cosh -inf -2.8 -> -inf inf -cosh1038 cosh -inf -4.2 -> -inf -inf -cosh1039 cosh -inf -5.6 -> inf -inf -cosh1040 cosh -inf -7.0 -> inf inf -cosh1041 cosh -inf -inf -> inf nan invalid ignore-real-sign -cosh1042 cosh -inf nan -> inf nan -cosh1043 cosh -0.0 0.0 -> 1.0 -0.0 -cosh1044 cosh -0.0 inf -> nan 0.0 invalid ignore-imag-sign -cosh1045 cosh -2.3 inf -> nan nan invalid -cosh1046 cosh -inf 0.0 -> inf -0.0 -cosh1047 cosh -inf 1.4 -> inf -inf -cosh1048 cosh -inf 2.8 -> -inf -inf -cosh1049 cosh -inf 4.2 -> -inf inf -cosh1050 cosh -inf 5.6 -> inf inf -cosh1051 cosh -inf 7.0 -> inf -inf -cosh1052 cosh -inf inf -> inf nan invalid ignore-real-sign - - ---------------------------- --- sinh: Hyperbolic Sine -- ---------------------------- - --- zeros -sinh0000 sinh 0.0 0.0 -> 0.0 0.0 -sinh0001 sinh 0.0 -0.0 -> 0.0 -0.0 -sinh0002 sinh -0.0 0.0 -> -0.0 0.0 -sinh0003 sinh -0.0 -0.0 -> -0.0 -0.0 - --- random inputs -sinh0004 sinh -17.282588091462742 -0.38187948694103546 -> -14867386.857248396 -5970648.6553516639 -sinh0005 sinh -343.91971203143208 -5.0172868877771525e-22 -> -1.1518691776521735e+149 -5.7792581214689021e+127 -sinh0006 sinh -14.178122253300922 -1.9387157579351293 -> 258440.37909034826 -670452.58500946441 -sinh0007 sinh -1.0343810581686239 -1.0970235266369905 -> -0.56070858278092739 -1.4098883258046697 -sinh0008 sinh -0.066126561416368204 -0.070461584169961872 -> -0.066010558700938124 -0.070557276738637542 -sinh0009 sinh -0.37630149150308484 3.3621734692162173 -> 0.37591118119332617 -0.23447115926369383 -sinh0010 sinh -0.049941960978670055 0.40323767020414625 -> -0.045955482136329009 0.3928878494430646 -sinh0011 sinh -16.647852603903715 0.0026852219129082098 -> -8492566.5739382561 22804.480671133562 -sinh0012 sinh -1.476625314303694 0.89473773116683386 -> -1.2982943334382224 1.7966593367791204 -sinh0013 sinh -422.36429577556913 0.10366634502307912 -> -1.3400321008920044e+183 1.3941600948045599e+182 -sinh0014 sinh 0.09108340745641981 -0.40408227416070353 -> 0.083863724802237902 -0.39480716553935602 -sinh0015 sinh 2.036064132067386 -2.6831729961386239 -> -3.37621124363175 -1.723868330002817 -sinh0016 sinh 2.5616717223063317 -0.0078978498622717767 -> 6.4399415853815869 -0.051472264400722133 -sinh0017 sinh 0.336804011985188 -6.5654622971649337 -> 0.32962499307574578 -0.29449170159995197 -sinh0018 sinh 0.23774603755649693 -0.92467195799232049 -> 0.14449839490603389 -0.82109449053556793 -sinh0019 sinh 0.0011388273541465494 1.9676196882949855 -> -0.00044014605389634999 0.92229398407098806 -sinh0020 sinh 3.2443870105663759 0.8054287559616895 -> 8.8702890778527426 9.2610748597042196 -sinh0021 sinh 0.040628908857054738 0.098206391190944958 -> 0.04044426841671233 0.098129544739707392 -sinh0022 sinh 4.7252283918217696e-30 9.1198155642656697 -> -4.5071980561644404e-30 0.30025730701661713 -sinh0023 sinh 0.043713693678420068 0.22512549887532657 -> 0.042624198673416713 0.22344201231217961 - --- large real part -sinh0030 sinh 710.5 -2.3999999999999999 -> -1.3579970564885919e+308 -1.24394470907798e+308 -sinh0031 sinh -710.5 0.80000000000000004 -> -1.2830671601735164e+308 1.3210954193997678e+308 -sinh0032 sinh 720.0 0.0 -> inf 0.0 overflow - --- Additional real values (mpmath) -sinh0050 sinh 1e-100 0.0 -> 1.00000000000000002e-100 0.0 -sinh0051 sinh 5e-17 0.0 -> 4.9999999999999998955e-17 0.0 -sinh0052 sinh 1e-16 0.0 -> 9.999999999999999791e-17 0.0 -sinh0053 sinh 3.7e-08 0.0 -> 3.7000000000000008885e-8 0.0 -sinh0054 sinh 0.001 0.0 -> 0.0010000001666666750208 0.0 -sinh0055 sinh 0.2 0.0 -> 0.20133600254109399895 0.0 -sinh0056 sinh 1.0 0.0 -> 1.1752011936438014569 0.0 -sinh0057 sinh -3.7e-08 0.0 -> -3.7000000000000008885e-8 0.0 -sinh0058 sinh -0.001 0.0 -> -0.0010000001666666750208 0.0 -sinh0059 sinh -1.0 0.0 -> -1.1752011936438014569 0.0 -sinh0060 sinh 1.4436354751788103 0.0 -> 1.9999999999999999078 0.0 -sinh0061 sinh -1.4436354751788103 0.0 -> -1.9999999999999999078 0.0 -sinh0062 sinh 17.328679513998633 0.0 -> 16777215.999999992136 0.0 -sinh0063 sinh 18.714973875118524 0.0 -> 67108864.000000036211 0.0 -sinh0064 sinh 709.7827 0.0 -> 8.9883497833190073272e+307 0.0 -sinh0065 sinh -709.7827 0.0 -> -8.9883497833190073272e+307 0.0 - --- special values -sinh1000 sinh 0.0 0.0 -> 0.0 0.0 -sinh1001 sinh 0.0 inf -> 0.0 nan invalid ignore-real-sign -sinh1002 sinh 0.0 nan -> 0.0 nan ignore-real-sign -sinh1003 sinh 2.3 inf -> nan nan invalid -sinh1004 sinh 2.3 nan -> nan nan -sinh1005 sinh inf 0.0 -> inf 0.0 -sinh1006 sinh inf 1.4 -> inf inf -sinh1007 sinh inf 2.8 -> -inf inf -sinh1008 sinh inf 4.2 -> -inf -inf -sinh1009 sinh inf 5.6 -> inf -inf -sinh1010 sinh inf 7.0 -> inf inf -sinh1011 sinh inf inf -> inf nan invalid ignore-real-sign -sinh1012 sinh inf nan -> inf nan ignore-real-sign -sinh1013 sinh nan 0.0 -> nan 0.0 -sinh1014 sinh nan 2.3 -> nan nan -sinh1015 sinh nan inf -> nan nan -sinh1016 sinh nan nan -> nan nan -sinh1017 sinh 0.0 -0.0 -> 0.0 -0.0 -sinh1018 sinh 0.0 -inf -> 0.0 nan invalid ignore-real-sign -sinh1019 sinh 2.3 -inf -> nan nan invalid -sinh1020 sinh inf -0.0 -> inf -0.0 -sinh1021 sinh inf -1.4 -> inf -inf -sinh1022 sinh inf -2.8 -> -inf -inf -sinh1023 sinh inf -4.2 -> -inf inf -sinh1024 sinh inf -5.6 -> inf inf -sinh1025 sinh inf -7.0 -> inf -inf -sinh1026 sinh inf -inf -> inf nan invalid ignore-real-sign -sinh1027 sinh nan -0.0 -> nan -0.0 -sinh1028 sinh nan -2.3 -> nan nan -sinh1029 sinh nan -inf -> nan nan -sinh1030 sinh -0.0 -0.0 -> -0.0 -0.0 -sinh1031 sinh -0.0 -inf -> 0.0 nan invalid ignore-real-sign -sinh1032 sinh -0.0 nan -> 0.0 nan ignore-real-sign -sinh1033 sinh -2.3 -inf -> nan nan invalid -sinh1034 sinh -2.3 nan -> nan nan -sinh1035 sinh -inf -0.0 -> -inf -0.0 -sinh1036 sinh -inf -1.4 -> -inf -inf -sinh1037 sinh -inf -2.8 -> inf -inf -sinh1038 sinh -inf -4.2 -> inf inf -sinh1039 sinh -inf -5.6 -> -inf inf -sinh1040 sinh -inf -7.0 -> -inf -inf -sinh1041 sinh -inf -inf -> inf nan invalid ignore-real-sign -sinh1042 sinh -inf nan -> inf nan ignore-real-sign -sinh1043 sinh -0.0 0.0 -> -0.0 0.0 -sinh1044 sinh -0.0 inf -> 0.0 nan invalid ignore-real-sign -sinh1045 sinh -2.3 inf -> nan nan invalid -sinh1046 sinh -inf 0.0 -> -inf 0.0 -sinh1047 sinh -inf 1.4 -> -inf inf -sinh1048 sinh -inf 2.8 -> inf inf -sinh1049 sinh -inf 4.2 -> inf -inf -sinh1050 sinh -inf 5.6 -> -inf -inf -sinh1051 sinh -inf 7.0 -> -inf inf -sinh1052 sinh -inf inf -> inf nan invalid ignore-real-sign - - ------------------------------- --- tanh: Hyperbolic Tangent -- ------------------------------- - --- Disabled test: replaced by test_math.testTanhSign() --- and test_cmath.testTanhSign() - --- -- zeros --- tanh0000 tanh 0.0 0.0 -> 0.0 0.0 --- tanh0001 tanh 0.0 -0.0 -> 0.0 -0.0 --- tanh0002 tanh -0.0 0.0 -> -0.0 0.0 --- tanh0003 tanh -0.0 -0.0 -> -0.0 -0.0 - --- random inputs -tanh0004 tanh -21.200500450664993 -1.6970729480342996 -> -1.0 1.9241352344849399e-19 -tanh0005 tanh -0.34158771504251928 -8.0848504951747131 -> -2.123711225855613 1.2827526782026006 -tanh0006 tanh -15.454144725193689 -0.23619582288265617 -> -0.99999999999993283 -3.4336684248260036e-14 -tanh0007 tanh -7.6103163119661952 -0.7802748320307008 -> -0.99999999497219438 -4.9064845343755437e-07 -tanh0008 tanh -0.15374717235792129 -0.6351086327306138 -> -0.23246081703561869 -0.71083467433910219 -tanh0009 tanh -0.49101115474392465 0.09723001264886301 -> -0.45844445715492133 0.077191158541805888 -tanh0010 tanh -0.10690612157664491 2.861612800856395 -> -0.11519761626257358 -0.28400488355647507 -tanh0011 tanh -0.91505774192066702 1.5431174597727007 -> -1.381109893068114 0.025160819663709356 -tanh0012 tanh -0.057433367093792223 0.35491159541246459 -> -0.065220499046696953 0.36921788332369498 -tanh0013 tanh -1.3540418621233514 0.18969415642242535 -> -0.88235642861151387 0.043764069984411721 -tanh0014 tanh 0.94864783961003529 -0.11333689578867717 -> 0.74348401861861368 -0.051271042543855221 -tanh0015 tanh 1.9591698133845488 -0.0029654444904578339 -> 0.9610270776968135 -0.00022664240049212933 -tanh0016 tanh 1.0949715796669197 -0.24706642853984456 -> 0.81636574501369386 -0.087767436914149954 -tanh0017 tanh 5770428.2113731047 -3.7160580339833165 -> 1.0 -0.0 -tanh0018 tanh 1.5576782321399629 -1.0357943787966468 -> 1.0403002384895388 -0.081126347894671463 -tanh0019 tanh 0.62378536230552961 2.3471393579560216 -> 0.85582499238960363 -0.53569473646842869 -tanh0020 tanh 17.400628602508025 9.3987059533841979 -> 0.99999999999999845 -8.0175867720530832e-17 -tanh0021 tanh 0.15026177509871896 0.50630349159505472 -> 0.19367536571827768 0.53849847858853661 -tanh0022 tanh 0.57433977530711167 1.0071604546265627 -> 1.0857848159262844 0.69139213955872214 -tanh0023 tanh 0.16291181500449456 0.006972810241567544 -> 0.16149335907551157 0.0067910772903467817 - --- large real part -tanh0030 tanh 710 0.13 -> 1.0 0.0 -tanh0031 tanh -711 7.4000000000000004 -> -1.0 0.0 -tanh0032 tanh 1000 -2.3199999999999998 -> 1.0 0.0 -tanh0033 tanh -1.0000000000000001e+300 -9.6699999999999999 -> -1.0 -0.0 - --- Additional real values (mpmath) -tanh0050 tanh 1e-100 0.0 -> 1.00000000000000002e-100 0.0 -tanh0051 tanh 5e-17 0.0 -> 4.9999999999999998955e-17 0.0 -tanh0052 tanh 1e-16 0.0 -> 9.999999999999999791e-17 0.0 -tanh0053 tanh 3.7e-08 0.0 -> 3.6999999999999983559e-8 0.0 -tanh0054 tanh 0.001 0.0 -> 0.00099999966666680002076 0.0 -tanh0055 tanh 0.2 0.0 -> 0.19737532022490401141 0.0 -tanh0056 tanh 1.0 0.0 -> 0.76159415595576488812 0.0 -tanh0057 tanh -3.7e-08 0.0 -> -3.6999999999999983559e-8 0.0 -tanh0058 tanh -0.001 0.0 -> -0.00099999966666680002076 0.0 -tanh0059 tanh -1.0 0.0 -> -0.76159415595576488812 0.0 -tanh0060 tanh 0.5493061443340549 0.0 -> 0.50000000000000003402 0.0 -tanh0061 tanh -0.5493061443340549 0.0 -> -0.50000000000000003402 0.0 -tanh0062 tanh 17.328679513998633 0.0 -> 0.99999999999999822364 0.0 -tanh0063 tanh 18.714973875118524 0.0 -> 0.99999999999999988898 0.0 -tanh0064 tanh 711 0.0 -> 1.0 0.0 -tanh0065 tanh 1.797e+308 0.0 -> 1.0 0.0 - ---special values -tanh1000 tanh 0.0 0.0 -> 0.0 0.0 -tanh1001 tanh 0.0 inf -> nan nan invalid -tanh1002 tanh 2.3 inf -> nan nan invalid -tanh1003 tanh 0.0 nan -> nan nan -tanh1004 tanh 2.3 nan -> nan nan -tanh1005 tanh inf 0.0 -> 1.0 0.0 -tanh1006 tanh inf 0.7 -> 1.0 0.0 -tanh1007 tanh inf 1.4 -> 1.0 0.0 -tanh1008 tanh inf 2.1 -> 1.0 -0.0 -tanh1009 tanh inf 2.8 -> 1.0 -0.0 -tanh1010 tanh inf 3.5 -> 1.0 0.0 -tanh1011 tanh inf inf -> 1.0 0.0 ignore-imag-sign -tanh1012 tanh inf nan -> 1.0 0.0 ignore-imag-sign -tanh1013 tanh nan 0.0 -> nan 0.0 -tanh1014 tanh nan 2.3 -> nan nan -tanh1015 tanh nan inf -> nan nan -tanh1016 tanh nan nan -> nan nan -tanh1017 tanh 0.0 -0.0 -> 0.0 -0.0 -tanh1018 tanh 0.0 -inf -> nan nan invalid -tanh1019 tanh 2.3 -inf -> nan nan invalid -tanh1020 tanh inf -0.0 -> 1.0 -0.0 -tanh1021 tanh inf -0.7 -> 1.0 -0.0 -tanh1022 tanh inf -1.4 -> 1.0 -0.0 -tanh1023 tanh inf -2.1 -> 1.0 0.0 -tanh1024 tanh inf -2.8 -> 1.0 0.0 -tanh1025 tanh inf -3.5 -> 1.0 -0.0 -tanh1026 tanh inf -inf -> 1.0 0.0 ignore-imag-sign -tanh1027 tanh nan -0.0 -> nan -0.0 -tanh1028 tanh nan -2.3 -> nan nan -tanh1029 tanh nan -inf -> nan nan -tanh1030 tanh -0.0 -0.0 -> -0.0 -0.0 -tanh1031 tanh -0.0 -inf -> nan nan invalid -tanh1032 tanh -2.3 -inf -> nan nan invalid -tanh1033 tanh -0.0 nan -> nan nan -tanh1034 tanh -2.3 nan -> nan nan -tanh1035 tanh -inf -0.0 -> -1.0 -0.0 -tanh1036 tanh -inf -0.7 -> -1.0 -0.0 -tanh1037 tanh -inf -1.4 -> -1.0 -0.0 -tanh1038 tanh -inf -2.1 -> -1.0 0.0 -tanh1039 tanh -inf -2.8 -> -1.0 0.0 -tanh1040 tanh -inf -3.5 -> -1.0 -0.0 -tanh1041 tanh -inf -inf -> -1.0 0.0 ignore-imag-sign -tanh1042 tanh -inf nan -> -1.0 0.0 ignore-imag-sign -tanh1043 tanh -0.0 0.0 -> -0.0 0.0 -tanh1044 tanh -0.0 inf -> nan nan invalid -tanh1045 tanh -2.3 inf -> nan nan invalid -tanh1046 tanh -inf 0.0 -> -1.0 0.0 -tanh1047 tanh -inf 0.7 -> -1.0 0.0 -tanh1048 tanh -inf 1.4 -> -1.0 0.0 -tanh1049 tanh -inf 2.1 -> -1.0 -0.0 -tanh1050 tanh -inf 2.8 -> -1.0 -0.0 -tanh1051 tanh -inf 3.5 -> -1.0 0.0 -tanh1052 tanh -inf inf -> -1.0 0.0 ignore-imag-sign - - ------------------ --- cos: Cosine -- ------------------ - --- zeros -cos0000 cos 0.0 0.0 -> 1.0 -0.0 -cos0001 cos 0.0 -0.0 -> 1.0 0.0 -cos0002 cos -0.0 0.0 -> 1.0 0.0 -cos0003 cos -0.0 -0.0 -> 1.0 -0.0 - --- random inputs -cos0004 cos -2.0689194692073034 -0.0016802181751734313 -> -0.47777827208561469 -0.0014760401501695971 -cos0005 cos -0.4209627318177977 -1.8238516774258027 -> 2.9010402201444108 -1.2329207042329617 -cos0006 cos -1.9402181630694557 -2.9751857392891217 -> -3.5465459297970985 -9.1119163586282248 -cos0007 cos -3.3118320290191616 -0.87871302909286142 -> -1.3911528636565498 0.16878141517391701 -cos0008 cos -4.9540404623376872 -0.57949232239026827 -> 0.28062445586552065 0.59467861308508008 -cos0009 cos -0.45374584316245026 1.3950283448373935 -> 1.9247665574290578 0.83004572204761107 -cos0010 cos -0.42578172040176843 1.2715881615413049 -> 1.7517161459489148 0.67863902697363332 -cos0011 cos -0.13862985354300136 0.43587635877670328 -> 1.0859880290361912 0.062157548146672272 -cos0012 cos -0.11073221308966584 9.9384082307326475e-15 -> 0.99387545040722947 1.0982543264065479e-15 -cos0013 cos -1.5027633662054623e-07 0.0069668060249955498 -> 1.0000242682912412 1.0469545565660995e-09 -cos0014 cos 4.9728645490503052 -0.00027479808860952822 -> 0.25754011731975501 -0.00026552849549083186 -cos0015 cos 7.81969303486719 -0.79621523445878783 -> 0.045734882501585063 0.88253139933082991 -cos0016 cos 0.13272421880766716 -0.74668445308718201 -> 1.2806012244432847 0.10825373267437005 -cos0017 cos 4.2396521985973274 -2.2178848380884881 -> -2.1165117057056855 -4.0416492444641401 -cos0018 cos 1.1622206624927296 -0.50400115461197081 -> 0.44884072613370379 0.4823469915034318 -cos0019 cos 1.628772864620884e-08 0.58205705428979282 -> 1.1742319995791435 -1.0024839481956604e-08 -cos0020 cos 2.6385212606111241 2.9886107100937296 -> -8.7209475927161417 -4.7748352107199796 -cos0021 cos 4.8048375263775256 0.0062248852898515658 -> 0.092318702015846243 0.0061983430422306142 -cos0022 cos 7.9914515433858515 0.71659966615501436 -> -0.17375439906936566 -0.77217043527294582 -cos0023 cos 0.45124351152540226 1.6992693993812158 -> 2.543477948972237 -1.1528193694875477 - --- Additional real values (mpmath) -cos0050 cos 1e-150 0.0 -> 1.0 -0.0 -cos0051 cos 1e-18 0.0 -> 1.0 -0.0 -cos0052 cos 1e-09 0.0 -> 0.9999999999999999995 -0.0 -cos0053 cos 0.0003 0.0 -> 0.9999999550000003375 -0.0 -cos0054 cos 0.2 0.0 -> 0.98006657784124162892 -0.0 -cos0055 cos 1.0 0.0 -> 0.5403023058681397174 -0.0 -cos0056 cos -1e-18 0.0 -> 1.0 0.0 -cos0057 cos -0.0003 0.0 -> 0.9999999550000003375 0.0 -cos0058 cos -1.0 0.0 -> 0.5403023058681397174 0.0 -cos0059 cos 1.0471975511965976 0.0 -> 0.50000000000000009945 -0.0 -cos0060 cos 2.5707963267948966 0.0 -> -0.84147098480789647357 -0.0 -cos0061 cos -2.5707963267948966 0.0 -> -0.84147098480789647357 0.0 -cos0062 cos 7.225663103256523 0.0 -> 0.58778525229247407559 -0.0 -cos0063 cos -8.79645943005142 0.0 -> -0.80901699437494722255 0.0 - --- special values -cos1000 cos -0.0 0.0 -> 1.0 0.0 -cos1001 cos -inf 0.0 -> nan 0.0 invalid ignore-imag-sign -cos1002 cos nan 0.0 -> nan 0.0 ignore-imag-sign -cos1003 cos -inf 2.2999999999999998 -> nan nan invalid -cos1004 cos nan 2.2999999999999998 -> nan nan -cos1005 cos -0.0 inf -> inf 0.0 -cos1006 cos -1.3999999999999999 inf -> inf inf -cos1007 cos -2.7999999999999998 inf -> -inf inf -cos1008 cos -4.2000000000000002 inf -> -inf -inf -cos1009 cos -5.5999999999999996 inf -> inf -inf -cos1010 cos -7.0 inf -> inf inf -cos1011 cos -inf inf -> inf nan invalid ignore-real-sign -cos1012 cos nan inf -> inf nan -cos1013 cos -0.0 nan -> nan 0.0 ignore-imag-sign -cos1014 cos -2.2999999999999998 nan -> nan nan -cos1015 cos -inf nan -> nan nan -cos1016 cos nan nan -> nan nan -cos1017 cos 0.0 0.0 -> 1.0 -0.0 -cos1018 cos inf 0.0 -> nan 0.0 invalid ignore-imag-sign -cos1019 cos inf 2.2999999999999998 -> nan nan invalid -cos1020 cos 0.0 inf -> inf -0.0 -cos1021 cos 1.3999999999999999 inf -> inf -inf -cos1022 cos 2.7999999999999998 inf -> -inf -inf -cos1023 cos 4.2000000000000002 inf -> -inf inf -cos1024 cos 5.5999999999999996 inf -> inf inf -cos1025 cos 7.0 inf -> inf -inf -cos1026 cos inf inf -> inf nan invalid ignore-real-sign -cos1027 cos 0.0 nan -> nan 0.0 ignore-imag-sign -cos1028 cos 2.2999999999999998 nan -> nan nan -cos1029 cos inf nan -> nan nan -cos1030 cos 0.0 -0.0 -> 1.0 0.0 -cos1031 cos inf -0.0 -> nan 0.0 invalid ignore-imag-sign -cos1032 cos nan -0.0 -> nan 0.0 ignore-imag-sign -cos1033 cos inf -2.2999999999999998 -> nan nan invalid -cos1034 cos nan -2.2999999999999998 -> nan nan -cos1035 cos 0.0 -inf -> inf 0.0 -cos1036 cos 1.3999999999999999 -inf -> inf inf -cos1037 cos 2.7999999999999998 -inf -> -inf inf -cos1038 cos 4.2000000000000002 -inf -> -inf -inf -cos1039 cos 5.5999999999999996 -inf -> inf -inf -cos1040 cos 7.0 -inf -> inf inf -cos1041 cos inf -inf -> inf nan invalid ignore-real-sign -cos1042 cos nan -inf -> inf nan -cos1043 cos -0.0 -0.0 -> 1.0 -0.0 -cos1044 cos -inf -0.0 -> nan 0.0 invalid ignore-imag-sign -cos1045 cos -inf -2.2999999999999998 -> nan nan invalid -cos1046 cos -0.0 -inf -> inf -0.0 -cos1047 cos -1.3999999999999999 -inf -> inf -inf -cos1048 cos -2.7999999999999998 -inf -> -inf -inf -cos1049 cos -4.2000000000000002 -inf -> -inf inf -cos1050 cos -5.5999999999999996 -inf -> inf inf -cos1051 cos -7.0 -inf -> inf -inf -cos1052 cos -inf -inf -> inf nan invalid ignore-real-sign - - ---------------- --- sin: Sine -- ---------------- - --- zeros -sin0000 sin 0.0 0.0 -> 0.0 0.0 -sin0001 sin 0.0 -0.0 -> 0.0 -0.0 -sin0002 sin -0.0 0.0 -> -0.0 0.0 -sin0003 sin -0.0 -0.0 -> -0.0 -0.0 - --- random inputs -sin0004 sin -0.18691829163163759 -0.74388741985507034 -> -0.2396636733773444 -0.80023231101856751 -sin0005 sin -0.45127453702459158 -461.81339920716164 -> -7.9722299331077877e+199 -1.6450205811004628e+200 -sin0006 sin -0.47669228345768921 -2.7369936564987514 -> -3.557238022267124 -6.8308030771226615 -sin0007 sin -0.31024285525950857 -1.4869219939188296 -> -0.70972676047175209 -1.9985029635426839 -sin0008 sin -4.4194573407025608 -1.405999210989288 -> 2.0702480800802685 0.55362250792180601 -sin0009 sin -1.7810832046434898e-05 0.0016439555384379083 -> -1.7810856113185261e-05 0.0016439562786668375 -sin0010 sin -0.8200017874897666 0.61724876887771929 -> -0.8749078195948865 0.44835295550987758 -sin0011 sin -1.4536502806107114 0.63998575534150415 -> -1.2035709929437679 0.080012187489163708 -sin0012 sin -2.2653412155506079 0.13172760685583729 -> -0.77502093809190431 -0.084554426868229532 -sin0013 sin -0.02613983069491858 0.18404766597776073 -> -0.026580778863127943 0.18502525396735642 -sin0014 sin 1.5743065001054617 -0.53125574272642029 -> 1.1444596332092725 0.0019537598099352077 -sin0015 sin 7.3833101791283289e-20 -0.16453221324236217 -> 7.4834720674379429e-20 -0.16527555646466915 -sin0016 sin 0.34763834641254038 -2.8377416421089565 -> 2.918883541504663 -8.0002718053250224 -sin0017 sin 0.077105785180421563 -0.090056027316200674 -> 0.077341973814471304 -0.089909869380524587 -sin0018 sin 3.9063227798142329e-17 -0.05954098654295524 -> 3.9132490348956512e-17 -0.059576172859837351 -sin0019 sin 0.57333917932544598 8.7785221430594696e-06 -> 0.54244029338302935 7.3747869125301368e-06 -sin0020 sin 0.024861722816513169 0.33044620756118515 -> 0.026228801369651 0.3363889671570689 -sin0021 sin 1.4342727387492671 0.81361889790284347 -> 1.3370960060947923 0.12336137961387163 -sin0022 sin 1.1518087354403725 4.8597235966150558 -> 58.919141989603041 26.237003403758852 -sin0023 sin 0.00087773078406649192 34.792379211312095 -> 565548145569.38245 644329685822700.62 - --- Additional real values (mpmath) -sin0050 sin 1e-100 0.0 -> 1.00000000000000002e-100 0.0 -sin0051 sin 3.7e-08 0.0 -> 3.6999999999999992001e-8 0.0 -sin0052 sin 0.001 0.0 -> 0.00099999983333334168748 0.0 -sin0053 sin 0.2 0.0 -> 0.19866933079506122634 0.0 -sin0054 sin 1.0 0.0 -> 0.84147098480789650665 0.0 -sin0055 sin -3.7e-08 0.0 -> -3.6999999999999992001e-8 0.0 -sin0056 sin -0.001 0.0 -> -0.00099999983333334168748 0.0 -sin0057 sin -1.0 0.0 -> -0.84147098480789650665 0.0 -sin0058 sin 0.5235987755982989 0.0 -> 0.50000000000000004642 0.0 -sin0059 sin -0.5235987755982989 0.0 -> -0.50000000000000004642 0.0 -sin0060 sin 2.6179938779914944 0.0 -> 0.49999999999999996018 -0.0 -sin0061 sin -2.6179938779914944 0.0 -> -0.49999999999999996018 -0.0 -sin0062 sin 7.225663103256523 0.0 -> 0.80901699437494673648 0.0 -sin0063 sin -8.79645943005142 0.0 -> -0.58778525229247340658 -0.0 - --- special values -sin1000 sin -0.0 0.0 -> -0.0 0.0 -sin1001 sin -inf 0.0 -> nan 0.0 invalid ignore-imag-sign -sin1002 sin nan 0.0 -> nan 0.0 ignore-imag-sign -sin1003 sin -inf 2.2999999999999998 -> nan nan invalid -sin1004 sin nan 2.2999999999999998 -> nan nan -sin1005 sin -0.0 inf -> -0.0 inf -sin1006 sin -1.3999999999999999 inf -> -inf inf -sin1007 sin -2.7999999999999998 inf -> -inf -inf -sin1008 sin -4.2000000000000002 inf -> inf -inf -sin1009 sin -5.5999999999999996 inf -> inf inf -sin1010 sin -7.0 inf -> -inf inf -sin1011 sin -inf inf -> nan inf invalid ignore-imag-sign -sin1012 sin nan inf -> nan inf ignore-imag-sign -sin1013 sin -0.0 nan -> -0.0 nan -sin1014 sin -2.2999999999999998 nan -> nan nan -sin1015 sin -inf nan -> nan nan -sin1016 sin nan nan -> nan nan -sin1017 sin 0.0 0.0 -> 0.0 0.0 -sin1018 sin inf 0.0 -> nan 0.0 invalid ignore-imag-sign -sin1019 sin inf 2.2999999999999998 -> nan nan invalid -sin1020 sin 0.0 inf -> 0.0 inf -sin1021 sin 1.3999999999999999 inf -> inf inf -sin1022 sin 2.7999999999999998 inf -> inf -inf -sin1023 sin 4.2000000000000002 inf -> -inf -inf -sin1024 sin 5.5999999999999996 inf -> -inf inf -sin1025 sin 7.0 inf -> inf inf -sin1026 sin inf inf -> nan inf invalid ignore-imag-sign -sin1027 sin 0.0 nan -> 0.0 nan -sin1028 sin 2.2999999999999998 nan -> nan nan -sin1029 sin inf nan -> nan nan -sin1030 sin 0.0 -0.0 -> 0.0 -0.0 -sin1031 sin inf -0.0 -> nan 0.0 invalid ignore-imag-sign -sin1032 sin nan -0.0 -> nan 0.0 ignore-imag-sign -sin1033 sin inf -2.2999999999999998 -> nan nan invalid -sin1034 sin nan -2.2999999999999998 -> nan nan -sin1035 sin 0.0 -inf -> 0.0 -inf -sin1036 sin 1.3999999999999999 -inf -> inf -inf -sin1037 sin 2.7999999999999998 -inf -> inf inf -sin1038 sin 4.2000000000000002 -inf -> -inf inf -sin1039 sin 5.5999999999999996 -inf -> -inf -inf -sin1040 sin 7.0 -inf -> inf -inf -sin1041 sin inf -inf -> nan inf invalid ignore-imag-sign -sin1042 sin nan -inf -> nan inf ignore-imag-sign -sin1043 sin -0.0 -0.0 -> -0.0 -0.0 -sin1044 sin -inf -0.0 -> nan 0.0 invalid ignore-imag-sign -sin1045 sin -inf -2.2999999999999998 -> nan nan invalid -sin1046 sin -0.0 -inf -> -0.0 -inf -sin1047 sin -1.3999999999999999 -inf -> -inf -inf -sin1048 sin -2.7999999999999998 -inf -> -inf inf -sin1049 sin -4.2000000000000002 -inf -> inf inf -sin1050 sin -5.5999999999999996 -inf -> inf -inf -sin1051 sin -7.0 -inf -> -inf -inf -sin1052 sin -inf -inf -> nan inf invalid ignore-imag-sign - - ------------------- --- tan: Tangent -- ------------------- - --- zeros -tan0000 tan 0.0 0.0 -> 0.0 0.0 -tan0001 tan 0.0 -0.0 -> 0.0 -0.0 -tan0002 tan -0.0 0.0 -> -0.0 0.0 -tan0003 tan -0.0 -0.0 -> -0.0 -0.0 - --- random inputs -tan0004 tan -0.56378561833861074 -1.7110276237187664e+73 -> -0.0 -1.0 -tan0005 tan -3.5451633993471915e-12 -2.855471863564059 -> -4.6622441304889575e-14 -0.99340273843093951 -tan0006 tan -2.502442719638696 -0.26742234390504221 -> 0.66735215252994995 -0.39078997935420956 -tan0007 tan -0.87639597720371365 -55.586225523280206 -> -1.0285264565948176e-48 -1.0 -tan0008 tan -0.015783869596427243 -520.05944436039272 -> -0.0 -1.0 -tan0009 tan -0.84643549990725164 2.0749097935396343 -> -0.031412661676959573 1.0033548479526764 -tan0010 tan -0.43613792248559646 8.1082741629458059 -> -1.3879848444644593e-07 0.99999988344224011 -tan0011 tan -1.0820906367833114 0.28571868992480248 -> -1.3622485737936536 0.99089269377971245 -tan0012 tan -1.1477859580220084 1.9021637002708041 -> -0.034348450042071196 1.0293954097901687 -tan0013 tan -0.12465543176953409 3.0606851016344815e-05 -> -0.12530514290387343 3.1087420769945479e-05 -tan0014 tan 3.7582848717525343 -692787020.44038939 -> 0.0 -1.0 -tan0015 tan 2.2321967655142176e-06 -10.090069423008169 -> 1.5369846120622643e-14 -0.99999999655723759 -tan0016 tan 0.88371172390245012 -1.1635053630132823 -> 0.19705017118625889 -1.0196452280843129 -tan0017 tan 2.1347414231849267 -1.9311339960416831 -> -0.038663576915982524 -1.0174399993980778 -tan0018 tan 5.9027945255899974 -2.1574195684607135e-183 -> -0.39986591539281496 -2.5023753167976915e-183 -tan0019 tan 0.44811489490805362 683216075670.07556 -> 0.0 1.0 -tan0020 tan 4.1459766396068325 12.523017205605756 -> 2.4022514758988068e-11 1.0000000000112499 -tan0021 tan 1.7809617968443272 1.5052381702853379 -> -0.044066222118946903 1.0932684517702778 -tan0022 tan 1.1615313900880577 1.7956298728647107 -> 0.041793186826390362 1.0375339546034792 -tan0023 tan 0.067014779477908945 5.8517361577457097 -> 2.2088639754800034e-06 0.9999836182420061 - --- Additional real values (mpmath) -tan0050 tan 1e-100 0.0 -> 1.00000000000000002e-100 0.0 -tan0051 tan 3.7e-08 0.0 -> 3.7000000000000017328e-8 0.0 -tan0052 tan 0.001 0.0 -> 0.0010000003333334666875 0.0 -tan0053 tan 0.2 0.0 -> 0.20271003550867249488 0.0 -tan0054 tan 1.0 0.0 -> 1.5574077246549022305 0.0 -tan0055 tan -3.7e-08 0.0 -> -3.7000000000000017328e-8 0.0 -tan0056 tan -0.001 0.0 -> -0.0010000003333334666875 0.0 -tan0057 tan -1.0 0.0 -> -1.5574077246549022305 0.0 -tan0058 tan 0.4636476090008061 0.0 -> 0.49999999999999997163 0.0 -tan0059 tan -0.4636476090008061 0.0 -> -0.49999999999999997163 0.0 -tan0060 tan 1.1071487177940904 0.0 -> 1.9999999999999995298 0.0 -tan0061 tan -1.1071487177940904 0.0 -> -1.9999999999999995298 0.0 -tan0062 tan 1.5 0.0 -> 14.101419947171719388 0.0 -tan0063 tan 1.57 0.0 -> 1255.7655915007896475 0.0 -tan0064 tan 1.5707963267948961 0.0 -> 1978937966095219.0538 0.0 -tan0065 tan 7.225663103256523 0.0 -> 1.3763819204711701522 0.0 -tan0066 tan -8.79645943005142 0.0 -> 0.7265425280053614098 0.0 - --- special values -tan1000 tan -0.0 0.0 -> -0.0 0.0 -tan1001 tan -inf 0.0 -> nan nan invalid -tan1002 tan -inf 2.2999999999999998 -> nan nan invalid -tan1003 tan nan 0.0 -> nan nan -tan1004 tan nan 2.2999999999999998 -> nan nan -tan1005 tan -0.0 inf -> -0.0 1.0 -tan1006 tan -0.69999999999999996 inf -> -0.0 1.0 -tan1007 tan -1.3999999999999999 inf -> -0.0 1.0 -tan1008 tan -2.1000000000000001 inf -> 0.0 1.0 -tan1009 tan -2.7999999999999998 inf -> 0.0 1.0 -tan1010 tan -3.5 inf -> -0.0 1.0 -tan1011 tan -inf inf -> -0.0 1.0 ignore-real-sign -tan1012 tan nan inf -> -0.0 1.0 ignore-real-sign -tan1013 tan -0.0 nan -> -0.0 nan -tan1014 tan -2.2999999999999998 nan -> nan nan -tan1015 tan -inf nan -> nan nan -tan1016 tan nan nan -> nan nan -tan1017 tan 0.0 0.0 -> 0.0 0.0 -tan1018 tan inf 0.0 -> nan nan invalid -tan1019 tan inf 2.2999999999999998 -> nan nan invalid -tan1020 tan 0.0 inf -> 0.0 1.0 -tan1021 tan 0.69999999999999996 inf -> 0.0 1.0 -tan1022 tan 1.3999999999999999 inf -> 0.0 1.0 -tan1023 tan 2.1000000000000001 inf -> -0.0 1.0 -tan1024 tan 2.7999999999999998 inf -> -0.0 1.0 -tan1025 tan 3.5 inf -> 0.0 1.0 -tan1026 tan inf inf -> -0.0 1.0 ignore-real-sign -tan1027 tan 0.0 nan -> 0.0 nan -tan1028 tan 2.2999999999999998 nan -> nan nan -tan1029 tan inf nan -> nan nan -tan1030 tan 0.0 -0.0 -> 0.0 -0.0 -tan1031 tan inf -0.0 -> nan nan invalid -tan1032 tan inf -2.2999999999999998 -> nan nan invalid -tan1033 tan nan -0.0 -> nan nan -tan1034 tan nan -2.2999999999999998 -> nan nan -tan1035 tan 0.0 -inf -> 0.0 -1.0 -tan1036 tan 0.69999999999999996 -inf -> 0.0 -1.0 -tan1037 tan 1.3999999999999999 -inf -> 0.0 -1.0 -tan1038 tan 2.1000000000000001 -inf -> -0.0 -1.0 -tan1039 tan 2.7999999999999998 -inf -> -0.0 -1.0 -tan1040 tan 3.5 -inf -> 0.0 -1.0 -tan1041 tan inf -inf -> -0.0 -1.0 ignore-real-sign -tan1042 tan nan -inf -> -0.0 -1.0 ignore-real-sign -tan1043 tan -0.0 -0.0 -> -0.0 -0.0 -tan1044 tan -inf -0.0 -> nan nan invalid -tan1045 tan -inf -2.2999999999999998 -> nan nan invalid -tan1046 tan -0.0 -inf -> -0.0 -1.0 -tan1047 tan -0.69999999999999996 -inf -> -0.0 -1.0 -tan1048 tan -1.3999999999999999 -inf -> -0.0 -1.0 -tan1049 tan -2.1000000000000001 -inf -> 0.0 -1.0 -tan1050 tan -2.7999999999999998 -inf -> 0.0 -1.0 -tan1051 tan -3.5 -inf -> -0.0 -1.0 -tan1052 tan -inf -inf -> -0.0 -1.0 ignore-real-sign - - ------------------------------------------------------------------------- --- rect: Conversion from polar coordinates to rectangular coordinates -- ------------------------------------------------------------------------- --- --- For cmath.rect, we can use the same testcase syntax as for the --- complex -> complex functions above, but here the input arguments --- should be interpreted as a pair of floating-point numbers rather --- than the real and imaginary parts of a complex number. --- --- Here are the 'spirit of C99' rules for rect. First, the short --- version: --- --- rect(x, t) = exp(log(x)+it) for positive-signed x --- rect(x, t) = -exp(log(-x)+it) for negative-signed x --- rect(nan, t) = exp(nan + it), except that in rect(nan, +-0) the --- sign of the imaginary part is unspecified. --- --- and now the long version: --- --- rect(x, -t) = conj(rect(x, t)) for all x and t --- rect(-x, t) = -rect(x, t) for all x and t --- rect(+0, +0) returns +0 + i0 --- rect(+0, inf) returns +- 0 +- i0, where the signs of the real and --- imaginary parts are unspecified. --- rect(x, inf) returns NaN + i NaN and raises the "invalid" --- floating-point exception, for finite nonzero x. --- rect(inf, inf) returns +-inf + i NaN and raises the "invalid" --- floating-point exception (where the sign of the real part of the --- result is unspecified). --- rect(inf, +0) returns inf+i0 --- rect(inf, x) returns inf*cis(x), for finite nonzero x --- rect(inf, NaN) returns +-inf+i NaN, where the sign of the real part --- of the result is unspecified. --- rect(NaN, x) returns NaN + i NaN for all nonzero numbers (including --- infinities) x --- rect(NaN, 0) returns NaN +- i0, where the sign of the imaginary --- part is unspecified --- rect(NaN, NaN) returns NaN + i NaN --- rect(x, NaN) returns NaN + i NaN for finite nonzero x --- rect(+0, NaN) return +-0 +- i0, where the signs of the real and --- imaginary parts are unspecified. - --- special values -rect1000 rect 0.0 0.0 -> 0.0 0.0 -rect1001 rect 0.0 inf -> 0.0 0.0 ignore-real-sign ignore-imag-sign -rect1002 rect 2.3 inf -> nan nan invalid -rect1003 rect inf inf -> inf nan invalid ignore-real-sign -rect1004 rect inf 0.0 -> inf 0.0 -rect1005 rect inf 1.4 -> inf inf -rect1006 rect inf 2.8 -> -inf inf -rect1007 rect inf 4.2 -> -inf -inf -rect1008 rect inf 5.6 -> inf -inf -rect1009 rect inf 7.0 -> inf inf -rect1010 rect nan 0.0 -> nan 0.0 ignore-imag-sign -rect1011 rect nan 2.3 -> nan nan -rect1012 rect nan inf -> nan nan -rect1013 rect nan nan -> nan nan -rect1014 rect inf nan -> inf nan ignore-real-sign -rect1015 rect 2.3 nan -> nan nan -rect1016 rect 0.0 nan -> 0.0 0.0 ignore-real-sign ignore-imag-sign -rect1017 rect 0.0 -0.0 -> 0.0 -0.0 -rect1018 rect 0.0 -inf -> 0.0 0.0 ignore-real-sign ignore-imag-sign -rect1019 rect 2.3 -inf -> nan nan invalid -rect1020 rect inf -inf -> inf nan invalid ignore-real-sign -rect1021 rect inf -0.0 -> inf -0.0 -rect1022 rect inf -1.4 -> inf -inf -rect1023 rect inf -2.8 -> -inf -inf -rect1024 rect inf -4.2 -> -inf inf -rect1025 rect inf -5.6 -> inf inf -rect1026 rect inf -7.0 -> inf -inf -rect1027 rect nan -0.0 -> nan 0.0 ignore-imag-sign -rect1028 rect nan -2.3 -> nan nan -rect1029 rect nan -inf -> nan nan -rect1030 rect -0.0 0.0 -> -0.0 -0.0 -rect1031 rect -0.0 inf -> 0.0 0.0 ignore-real-sign ignore-imag-sign -rect1032 rect -2.3 inf -> nan nan invalid -rect1033 rect -inf inf -> -inf nan invalid ignore-real-sign -rect1034 rect -inf 0.0 -> -inf -0.0 -rect1035 rect -inf 1.4 -> -inf -inf -rect1036 rect -inf 2.8 -> inf -inf -rect1037 rect -inf 4.2 -> inf inf -rect1038 rect -inf 5.6 -> -inf inf -rect1039 rect -inf 7.0 -> -inf -inf -rect1040 rect -inf nan -> inf nan ignore-real-sign -rect1041 rect -2.3 nan -> nan nan -rect1042 rect -0.0 nan -> 0.0 0.0 ignore-real-sign ignore-imag-sign -rect1043 rect -0.0 -0.0 -> -0.0 0.0 -rect1044 rect -0.0 -inf -> 0.0 0.0 ignore-real-sign ignore-imag-sign -rect1045 rect -2.3 -inf -> nan nan invalid -rect1046 rect -inf -inf -> -inf nan invalid ignore-real-sign -rect1047 rect -inf -0.0 -> -inf 0.0 -rect1048 rect -inf -1.4 -> -inf inf -rect1049 rect -inf -2.8 -> inf inf -rect1050 rect -inf -4.2 -> inf -inf -rect1051 rect -inf -5.6 -> -inf -inf -rect1052 rect -inf -7.0 -> -inf inf - -------------------------------------------------------------------------- --- polar: Conversion from rectangular coordinates to polar coordinates -- -------------------------------------------------------------------------- --- --- For cmath.polar, we can use the same testcase syntax as for the --- complex -> complex functions above, but here the output arguments --- should be interpreted as a pair of floating-point numbers rather --- than the real and imaginary parts of a complex number. --- --- Annex G of the C99 standard describes fully both the real and --- imaginary parts of polar (as cabs and carg, respectively, which in turn --- are defined in terms of the functions hypot and atan2). - --- overflow -polar0100 polar 1.4e308 1.4e308 -> inf 0.78539816339744828 overflow - --- special values -polar1000 polar 0.0 0.0 -> 0.0 0.0 -polar1001 polar 0.0 -0.0 -> 0.0 -0.0 -polar1002 polar -0.0 0.0 -> 0.0 3.1415926535897931 -polar1003 polar -0.0 -0.0 -> 0.0 -3.1415926535897931 -polar1004 polar inf 0.0 -> inf 0.0 -polar1005 polar inf 2.3 -> inf 0.0 -polar1006 polar inf inf -> inf 0.78539816339744828 -polar1007 polar 2.3 inf -> inf 1.5707963267948966 -polar1008 polar 0.0 inf -> inf 1.5707963267948966 -polar1009 polar -0.0 inf -> inf 1.5707963267948966 -polar1010 polar -2.3 inf -> inf 1.5707963267948966 -polar1011 polar -inf inf -> inf 2.3561944901923448 -polar1012 polar -inf 2.3 -> inf 3.1415926535897931 -polar1013 polar -inf 0.0 -> inf 3.1415926535897931 -polar1014 polar -inf -0.0 -> inf -3.1415926535897931 -polar1015 polar -inf -2.3 -> inf -3.1415926535897931 -polar1016 polar -inf -inf -> inf -2.3561944901923448 -polar1017 polar -2.3 -inf -> inf -1.5707963267948966 -polar1018 polar -0.0 -inf -> inf -1.5707963267948966 -polar1019 polar 0.0 -inf -> inf -1.5707963267948966 -polar1020 polar 2.3 -inf -> inf -1.5707963267948966 -polar1021 polar inf -inf -> inf -0.78539816339744828 -polar1022 polar inf -2.3 -> inf -0.0 -polar1023 polar inf -0.0 -> inf -0.0 -polar1024 polar nan -inf -> inf nan -polar1025 polar nan -2.3 -> nan nan -polar1026 polar nan -0.0 -> nan nan -polar1027 polar nan 0.0 -> nan nan -polar1028 polar nan 2.3 -> nan nan -polar1029 polar nan inf -> inf nan -polar1030 polar nan nan -> nan nan -polar1031 polar inf nan -> inf nan -polar1032 polar 2.3 nan -> nan nan -polar1033 polar 0.0 nan -> nan nan -polar1034 polar -0.0 nan -> nan nan -polar1035 polar -2.3 nan -> nan nan -polar1036 polar -inf nan -> inf nan diff --git a/Lib/test/floating_points.txt b/Lib/test/floating_points.txt deleted file mode 100644 index 539073d..0000000 --- a/Lib/test/floating_points.txt +++ /dev/null @@ -1,1028 +0,0 @@ -# These numbers are used to test floating point binary-to-decimal conversion. -# They are based on the TCL test suite (tests/expr.test), which is based on -# test data from: -# Brigitte Verdonk, Annie Cuyt, Dennis Verschaeren, A precision and range -# independent tool for testing floating-point arithmetic II: Conversions, -# ACM Transactions on Mathematical Software 27:2 (March 2001), pp. 119-140. - -0E0 --0E0 -1E0 -15E-1 -125E-2 -1125E-3 -10625E-4 -103125E-5 -1015625E-6 -10078125E-7 -100390625E-8 -1001953125E-9 -10009765625E-10 -100048828125E-11 -1000244140625E-12 -10001220703125E-13 -100006103515625E-14 -1000030517578125E-15 -10000152587890625E-16 -+8E153 --1E153 -+9E306 --2E153 -+7E-304 --3E-49 -+7E-303 --6E-49 -+9E43 --9E44 -+8E303 --1E303 -+7E-287 --2E-204 -+2E-205 --9E-47 -+34E195 --68E195 -+85E194 --67E97 -+93E-234 --19E-87 -+38E-87 --38E-88 --69E220 -+18E43 --36E43 -+61E-99 --43E-92 -+86E-92 --51E-74 -+283E85 --566E85 -+589E187 --839E143 --744E-234 -+930E-235 --186E-234 -+604E175 --302E175 -+755E174 --151E175 -+662E-213 --408E-74 -+510E-75 -+6782E55 --2309E92 -+7963E34 --3391E55 -+7903E-96 --7611E-226 -+4907E-196 --5547E-311 -+5311E241 --5311E243 -+5311E242 -+9269E-45 --8559E-289 -+8699E-276 --8085E-64 -+74819E201 --82081E41 -+51881E37 --55061E157 -+77402E-215 --33891E-92 -+38701E-215 --82139E-76 -+75859E25 -+89509E140 --57533E287 -+46073E-32 --92146E-32 -+83771E-74 --34796E-276 -+584169E229 -+164162E41 --328324E41 -+209901E-11 --419802E-11 -+940189E-112 --892771E-213 -+757803E120 --252601E120 -+252601E121 --505202E120 -+970811E-264 --654839E-60 -+289767E-178 --579534E-178 --8823691E130 -+9346704E229 --1168338E229 --6063369E-136 -+3865421E-225 --5783893E-127 -+2572231E223 --5144462E223 -+1817623E109 -+6431543E-97 --5444097E-21 -+8076999E-121 --9997649E-270 -+50609263E157 -+70589528E130 --88236910E129 -+87575437E-310 --23135572E-127 -+85900881E177 --84863171E113 -+68761586E232 --50464069E286 -+27869147E-248 --55738294E-248 -+70176353E-53 --80555086E-32 --491080654E121 -+526250918E287 --245540327E121 --175150874E-310 -+350301748E-310 --437877185E-311 -+458117166E52 --916234332E52 -+229058583E52 --525789935E98 -+282926897E-227 --565853794E-227 -+667284113E-240 --971212611E-126 -+9981396317E-182 --5035231965E-156 -+8336960483E-153 --8056371144E-155 -+6418488827E79 --3981006983E252 -+7962013966E252 --4713898551E261 -+8715380633E-58 --9078555839E-109 -+9712126110E-127 -+42333842451E201 --84667684902E201 -+23792120709E-315 --78564021519E-227 -+71812054883E-188 --30311163631E-116 -+71803914657E292 -+36314223356E-109 -+18157111678E-109 --45392779195E-110 -+778380362293E218 --685763015669E280 -+952918668151E70 --548357443505E32 -+384865004907E-285 --769730009814E-285 -+697015418417E-93 --915654049301E-28 -+178548656339E169 --742522891517E259 -+742522891517E258 --357097312678E169 --3113521449172E218 -+3891901811465E217 --1556760724586E218 -+9997878507563E-195 --7247563029154E-319 -+3623781514577E-319 --3092446298323E-200 -+6363857920591E145 --8233559360849E94 -+2689845954547E49 --5379691909094E49 -+5560322501926E-301 --7812878489261E-179 -+8439398533053E-256 --2780161250963E-301 --87605699161665E155 --17521139832333E156 --88218101363513E-170 -+38639244311627E-115 -+35593959807306E261 --53390939710959E260 -+71187919614612E261 --88984899518265E260 -+77003665618895E-73 --15400733123779E-72 -+61602932495116E-72 --30801466247558E-72 -+834735494917063E-300 --589795149206434E-151 -+475603213226859E-42 --294897574603217E-151 -+850813008001913E93 --203449172043339E185 -+406898344086678E185 --813796688173356E185 -+6045338514609393E244 --5145963778954906E142 -+2572981889477453E142 --6965949469487146E74 -+6182410494241627E-119 --8510309498186985E-277 -+6647704637273331E-212 --2215901545757777E-212 -+3771476185376383E276 --3729901848043846E212 -+3771476185376383E277 --9977830465649166E119 -+8439928496349319E-142 --8204230082070882E-59 -+8853686434843997E-244 --5553274272288559E-104 -+36149023611096162E144 --36149023611096162E147 -+18074511805548081E146 --18074511805548081E147 -+97338774138954421E-290 --88133809804950961E-308 -+94080055902682397E-243 --24691002732654881E-115 -+52306490527514614E49 --26153245263757307E49 -+55188692254193604E165 --68985865317742005E164 -+27176258005319167E-261 --73169230107256116E-248 -+91461537634070145E-249 --54352516010638334E-261 -+586144289638535878E280 --601117006785295431E245 -+293072144819267939E280 --953184713238516652E272 -+902042358290366539E-281 --557035730189854663E-294 -+902042358290366539E-280 --354944100507554393E-238 -+272104041512242479E199 --816312124536727437E199 -+544208083024484958E199 --792644927852378159E78 --679406450132979175E-263 -+543525160106383340E-262 -+7400253695682920196E215 --1850063423920730049E215 -+3700126847841460098E215 --9250317119603650245E214 -+8396094300569779681E-252 --3507665085003296281E-75 -+7015330170006592562E-75 --7015330170006592562E-74 -+7185620434951919351E205 --1360520207561212395E198 -+2178999185345151731E-184 --8691089486201567102E-218 -+4345544743100783551E-218 --4357998370690303462E-184 -+59825267349106892461E177 --62259110684423957791E47 -+58380168477038565599E265 --62259110684423957791E48 --33584377202279118724E-252 --57484963479615354808E205 -+71856204349519193510E204 --14371240869903838702E205 -+36992084760177624177E-318 --73984169520355248354E-318 -+99257763227713890244E-115 --87336362425182547697E-280 -+7E289 --3E153 -+6E153 --5E243 -+7E-161 --7E-172 -+8E-63 --7E-113 -+8E126 --4E126 -+5E125 --1E126 -+8E-163 --1E-163 -+2E-163 --4E-163 -+51E195 --37E46 -+74E46 --56E289 -+69E-145 --70E-162 -+56E-161 --21E-303 -+34E-276 --68E-276 -+85E-277 --87E-274 -+829E102 --623E100 -+723E-162 --457E-102 -+914E-102 --323E-135 -+151E176 --302E176 -+921E90 --604E176 -+823E-206 --463E-114 -+348E-274 -+9968E100 --6230E99 -+1246E100 -+6676E-296 --8345E-297 -+1669E-296 --3338E-296 -+3257E58 --6514E58 -+2416E176 -+8085E-63 --3234E-62 -+1617E-62 --6468E-62 -+53418E111 --60513E160 -+26709E111 --99447E166 -+12549E48 --25098E48 -+50196E48 --62745E47 -+83771E-73 --97451E-167 -+86637E-203 --75569E-254 -+473806E83 --947612E83 -+292369E76 --584738E76 -+933587E-140 --720919E-14 -+535001E-149 --890521E-235 -+548057E81 --706181E88 -+820997E106 --320681E63 -+928609E-261 --302276E-254 -+151138E-254 -+4691773E45 --9383546E45 -+3059949E-243 --6119898E-243 -+5356626E-213 --4877378E-199 -+7716693E223 --5452869E109 -+4590831E156 --9181662E156 --3714436E-261 -+4643045E-262 --7428872E-261 -+52942146E130 --27966061E145 -+26471073E130 --55932122E145 -+95412548E-99 --47706274E-99 -+23853137E-99 --78493654E-301 -+65346417E29 --51083099E167 -+89396333E264 --84863171E114 -+59540836E-251 --74426045E-252 -+14885209E-251 --29770418E-251 -+982161308E122 --245540327E122 -+491080654E122 -+525452622E-310 --771837113E-134 -+820858081E-150 --262726311E-310 -+923091487E209 --653777767E273 -+842116236E-53 --741111169E-202 -+839507247E-284 --951487269E-264 --9821613080E121 -+6677856011E-31 --3573796826E-266 -+7147593652E-266 --9981396317E-181 -+3268888835E272 --2615111068E273 -+1307555534E273 -+2990671154E-190 --1495335577E-190 -+5981342308E-190 --7476677885E-191 -+82259684194E-202 --93227267727E-49 -+41129842097E-202 --47584241418E-314 --79360293406E92 -+57332259349E225 --57202326162E111 -+86860597053E-206 --53827010643E-200 -+53587107423E-61 -+635007636765E200 -+508006109412E201 --254003054706E201 -+561029718715E-72 --897647549944E-71 -+112205943743E-71 --873947086081E-236 -+809184709177E116 --573112917422E81 -+286556458711E81 -+952805821491E-259 --132189992873E-44 --173696038493E-144 -+1831132757599E-107 --9155663787995E-108 -+7324531030396E-107 --9277338894969E-200 -+8188292423973E287 --5672557437938E59 -+2836278718969E59 --9995153153494E54 -+9224786422069E-291 --3142213164987E-294 -+6284426329974E-294 --8340483752889E-301 -+67039371486466E89 --62150786615239E197 -+33519685743233E89 --52563419496999E156 -+32599460466991E-65 --41010988798007E-133 -+65198920933982E-65 --82021977596014E-133 -+80527976643809E61 --74712611505209E158 -+53390939710959E261 --69277302659155E225 -+46202199371337E-72 --23438635467783E-179 -+41921560615349E-67 --92404398742674E-72 -+738545606647197E124 --972708181182949E117 --837992143580825E87 -+609610927149051E-255 --475603213226859E-41 -+563002800671023E-177 --951206426453718E-41 -+805416432656519E202 --530658674694337E159 -+946574173863918E208 --318329953318553E113 --462021993713370E-73 -+369617594970696E-72 -+3666156212014994E233 --1833078106007497E233 -+8301790508624232E174 --1037723813578029E174 -+7297662880581139E-286 --5106185698912191E-276 -+7487252720986826E-165 --3743626360493413E-165 -+3773057430100257E230 --7546114860200514E230 -+4321222892463822E58 --7793560217139653E51 -+26525993941010681E112 --53051987882021362E112 -+72844871414247907E77 --88839359596763261E105 -+18718131802467065E-166 --14974505441973652E-165 -+73429396004640239E106 --58483921078398283E57 -+41391519190645203E165 --82783038381290406E165 -+58767043776702677E-163 --90506231831231999E-129 -+64409240769861689E-159 --77305427432277771E-190 -+476592356619258326E273 --953184713238516652E273 -+899810892172646163E283 --929167076892018333E187 -+647761278967534239E-312 --644290479820542942E-180 -+926145344610700019E-225 --958507931896511964E-246 -+272104041512242479E200 --792644927852378159E79 -+544208083024484958E200 --929963218616126365E290 -+305574339166810102E-219 --152787169583405051E-219 -+611148678333620204E-219 --763935847917025255E-220 -+7439550220920798612E158 --3719775110460399306E158 -+9299437776150998265E157 --7120190517612959703E120 -+3507665085003296281E-73 --7015330170006592562E-73 --6684428762278255956E-294 --1088416166048969916E200 --8707329328391759328E200 -+4439021781608558002E-65 --8878043563217116004E-65 -+2219510890804279001E-65 -+33051223951904955802E55 --56961524140903677624E120 -+71201905176129597030E119 -+14030660340013185124E-73 --17538325425016481405E-74 -+67536228609141569109E-133 --35620497849450218807E-306 -+66550376797582521751E-126 --71240995698900437614E-306 -+3E24 --6E24 -+6E26 --7E25 -+1E-14 --2E-14 -+4E-14 --8E-14 -+5E26 --8E27 -+1E27 --4E27 -+9E-13 --7E-20 -+56E25 --70E24 -+51E26 -+71E-17 --31E-5 -+62E-5 --94E-8 -+67E27 --81E24 -+54E23 --54E25 -+63E-22 --63E-23 -+43E-4 --86E-4 -+942E26 --471E25 -+803E24 --471E26 --409E-21 -+818E-21 --867E-8 -+538E27 --857E24 -+269E27 --403E26 -+959E-7 --959E-6 -+373E-27 --746E-27 -+4069E24 --4069E23 --8138E24 -+8294E-15 --4147E-14 -+4147E-15 --8294E-14 -+538E27 --2690E26 -+269E27 --2152E27 -+1721E-17 --7979E-27 -+6884E-17 --8605E-18 -+82854E27 --55684E24 -+27842E24 --48959E25 -+81921E-17 --76207E-8 -+4147E-15 --41470E-16 -+89309E24 -+75859E26 --75859E25 -+14257E-23 --28514E-23 -+57028E-23 --71285E-24 -+344863E27 --951735E27 -+200677E23 --401354E24 -+839604E-11 --209901E-11 -+419802E-11 --537734E-24 -+910308E26 --227577E26 -+455154E26 --531013E25 -+963019E-21 --519827E-13 -+623402E-27 --311701E-27 -+9613651E26 --9191316E23 -+4595658E23 --2297829E23 --1679208E-11 -+3379223E27 --6758446E27 -+5444097E-21 --8399969E-27 -+8366487E-16 --8366487E-15 -+65060671E25 -+65212389E23 -+55544957E-13 --51040905E-20 -+99585767E-22 --99585767E-23 -+40978393E26 --67488159E24 -+69005339E23 --81956786E26 --87105552E-21 -+10888194E-21 --21776388E-21 -+635806667E27 --670026614E25 -+335013307E26 --335013307E25 -+371790617E-24 --371790617E-25 -+743581234E-24 --743581234E-25 -+202464477E24 --404928954E24 -+997853758E27 --997853758E26 -+405498418E-17 --582579084E-14 -+608247627E-18 --291289542E-14 --9537100005E26 -+6358066670E27 --1271613334E27 -+5229646999E-16 -+5229646999E-17 -+4429943614E24 --8859887228E24 -+2214971807E24 --4176887093E26 -+4003495257E-20 --4361901637E-23 -+8723803274E-23 --8006990514E-20 -+72835110098E27 --36417555049E27 -+84279630104E25 --84279630104E24 -+21206176437E-27 --66461566917E-22 -+64808355539E-16 --84932679673E-19 -+65205430094E26 --68384463429E25 -+32602715047E26 --62662203426E27 -+58784444678E-18 --50980203373E-21 -+29392222339E-18 --75529940323E-27 --937495906299E26 -+842642485799E-20 --387824150699E-23 -+924948814726E-27 --775648301398E-23 -+547075707432E25 -+683844634290E24 --136768926858E25 -+509802033730E-22 -+101960406746E-21 --815683253968E-21 -+7344124123524E24 --9180155154405E23 -+6479463327323E27 --1836031030881E24 -+4337269293039E-19 --4599163554373E-23 -+9198327108746E-23 -+4812803938347E27 --8412030890011E23 -+9625607876694E27 --4739968828249E24 -+9697183891673E-23 --7368108517543E-20 -+51461358161422E25 --77192037242133E26 -+77192037242133E25 --51461358161422E27 -+43999661561541E-21 --87999323123082E-21 -+48374886826137E-26 --57684246567111E-23 -+87192805957686E23 --75108713005913E24 -+64233110587487E27 --77577471133384E-23 -+48485919458365E-24 --56908598265713E-26 -+589722294620133E23 -+652835804449289E-22 --656415363936202E-23 -+579336749585745E-25 --381292764980839E-26 -+965265859649698E23 --848925235434882E27 -+536177612222491E23 --424462617717441E27 -+276009279888989E-27 --608927158043691E-26 -+552018559777978E-27 --425678377667758E-22 -+8013702726927119E26 -+8862627962362001E27 --5068007907757162E26 --7379714799828406E-23 -+4114538064016107E-27 --3689857399914203E-23 -+5575954851815478E23 -+3395700941739528E27 -+4115535777581961E-23 --8231071555163922E-23 -+6550246696190871E-26 --68083046403986701E27 -+43566388595783643E27 --87132777191567286E27 -+59644881059342141E25 --83852770718576667E23 -+99482967418206961E-25 --99482967418206961E-26 -+87446669969994614E-27 --43723334984997307E-27 -+5E24 --8E25 -+1E25 --4E25 -+2E-5 --5E-6 -+4E-5 --3E-20 -+3E27 --9E26 -+7E25 --6E27 -+2E-21 --5E-22 --4E-21 -+87E25 --97E24 -+82E-24 --41E-24 -+76E-23 -+83E25 --50E27 -+25E27 --99E27 -+97E-10 --57E-20 -+997E23 -+776E24 --388E24 -+521E-10 --506E-26 -+739E-10 --867E-7 --415E24 -+332E25 --664E25 -+291E-13 --982E-8 -+582E-13 --491E-8 -+4574E26 --8609E26 -+2287E26 --4818E24 -+6529E-8 --8151E-21 -+1557E-12 --2573E-18 -+4929E-16 --3053E-22 -+9858E-16 --7767E-11 -+54339E26 --62409E25 -+32819E27 --89849E27 -+63876E-20 --15969E-20 -+31938E-20 --79845E-21 -+89306E27 --25487E24 -+79889E24 --97379E26 -+81002E-8 --43149E-25 -+40501E-8 --60318E-10 --648299E27 -+780649E24 -+720919E-14 --629703E-11 -+557913E24 --847899E23 -+565445E27 --736531E24 -+680013E-19 --529981E-10 -+382923E-23 --633614E-18 -+2165479E27 --8661916E27 -+4330958E27 --9391993E22 --5767352E-14 -+7209190E-15 --1441838E-14 -+8478990E22 -+1473062E24 -+8366487E-14 --8399969E-25 -+9366737E-12 --9406141E-13 -+65970979E24 --65060671E26 -+54923002E27 --63846927E25 -+99585767E-21 -+67488159E25 --69005339E24 -+81956786E27 --40978393E27 -+77505754E-12 --38752877E-12 -+82772981E-15 --95593517E-25 -+200036989E25 --772686455E27 -+859139907E23 --400073978E25 -+569014327E-14 --794263862E-15 -+397131931E-15 --380398957E-16 -+567366773E27 --337440795E24 -+134976318E25 --269952636E25 -+932080597E-20 --331091924E-15 --413864905E-16 -+8539246247E26 --5859139791E26 -+6105010149E24 --3090745820E27 -+3470877773E-20 --6136309089E-27 -+8917758713E-19 --6941755546E-20 -+9194900535E25 --1838980107E26 -+7355920428E26 --3677960214E26 -+8473634343E-17 --8870766274E-16 -+4435383137E-16 --9598990129E-15 -+71563496764E26 --89454370955E25 -+17890874191E26 --35781748382E26 -+57973447842E-19 --28986723921E-19 -+76822711313E-19 --97699466874E-20 -+67748656762E27 --19394840991E24 -+38789681982E24 --33874328381E27 -+54323763886E-27 --58987193887E-20 -+27161881943E-27 --93042648033E-19 -+520831059055E27 --768124264394E25 -+384062132197E25 -+765337749889E-25 -+794368912771E25 --994162090146E23 -+781652779431E26 -+910077190046E-26 --455038595023E-26 -+471897551096E-20 --906698409911E-21 -+8854128003935E25 --8146122716299E27 -+7083302403148E26 --3541651201574E26 -+8394920649291E-25 --7657975756753E-22 -+5473834002228E-20 --6842292502785E-21 --2109568884597E25 -+8438275538388E25 --4219137769194E25 -+3200141789841E-25 --8655689322607E-22 -+6400283579682E-25 --8837719634493E-21 -+19428217075297E24 --38856434150594E24 -+77712868301188E24 --77192037242133E27 -+76579757567530E-23 -+15315951513506E-22 --38289878783765E-23 -+49378033925202E25 --50940527102367E24 -+98756067850404E25 --99589397544892E26 --56908598265713E-25 -+97470695699657E-22 --35851901247343E-25 -+154384074484266E27 --308768148968532E27 -+910990389005985E23 -+271742424169201E-27 --543484848338402E-27 -+162192083357563E-26 --869254552770081E-23 -+664831007626046E24 --332415503813023E24 -+943701829041427E24 --101881054204734E24 -+828027839666967E-27 --280276135608777E-27 -+212839188833879E-21 --113817196531426E-25 -+9711553197796883E27 --2739849386524269E26 -+5479698773048538E26 -+6124568318523113E-25 --1139777988171071E-24 -+6322612303128019E-27 --2955864564844617E-25 --9994029144998961E25 --2971238324022087E27 --1656055679333934E-27 --1445488709150234E-26 -+55824717499885172E27 --69780896874856465E26 -+84161538867545199E25 --27912358749942586E27 -+24711112462926331E-25 --12645224606256038E-27 --12249136637046226E-25 -+74874448287465757E27 --35642836832753303E24 --71285673665506606E24 -+43723334984997307E-26 -+10182419849537963E-24 --93501703572661982E-26 - -# A value that caused a crash in debug builds for Python >= 2.7, 3.1 -# See http://bugs.python.org/issue7632 -2183167012312112312312.23538020374420446192e-370 - -# Another value designed to test a corner case of Python's strtod code. -0.99999999999999999999999999999999999999999e+23 diff --git a/Lib/test/formatfloat_testcases.txt b/Lib/test/formatfloat_testcases.txt deleted file mode 100644 index 25c07ba..0000000 --- a/Lib/test/formatfloat_testcases.txt +++ /dev/null @@ -1,355 +0,0 @@ --- 'f' code formatting, with explicit precision (>= 0). Output always --- has the given number of places after the point; zeros are added if --- necessary to make this true. - --- zeros -%.0f 0 -> 0 -%.1f 0 -> 0.0 -%.2f 0 -> 0.00 -%.3f 0 -> 0.000 -%.50f 0 -> 0.00000000000000000000000000000000000000000000000000 - --- precision 0; result should never include a . -%.0f 1.5 -> 2 -%.0f 2.5 -> 2 -%.0f 3.5 -> 4 -%.0f 0.0 -> 0 -%.0f 0.1 -> 0 -%.0f 0.001 -> 0 -%.0f 10.0 -> 10 -%.0f 10.1 -> 10 -%.0f 10.01 -> 10 -%.0f 123.456 -> 123 -%.0f 1234.56 -> 1235 -%.0f 1e49 -> 9999999999999999464902769475481793196872414789632 -%.0f 9.9999999999999987e+49 -> 99999999999999986860582406952576489172979654066176 -%.0f 1e50 -> 100000000000000007629769841091887003294964970946560 - --- precision 1 -%.1f 0.0001 -> 0.0 -%.1f 0.001 -> 0.0 -%.1f 0.01 -> 0.0 -%.1f 0.04 -> 0.0 -%.1f 0.06 -> 0.1 -%.1f 0.25 -> 0.2 -%.1f 0.75 -> 0.8 -%.1f 1.4 -> 1.4 -%.1f 1.5 -> 1.5 -%.1f 10.0 -> 10.0 -%.1f 1000.03 -> 1000.0 -%.1f 1234.5678 -> 1234.6 -%.1f 1234.7499 -> 1234.7 -%.1f 1234.75 -> 1234.8 - --- precision 2 -%.2f 0.0001 -> 0.00 -%.2f 0.001 -> 0.00 -%.2f 0.004999 -> 0.00 -%.2f 0.005001 -> 0.01 -%.2f 0.01 -> 0.01 -%.2f 0.125 -> 0.12 -%.2f 0.375 -> 0.38 -%.2f 1234500 -> 1234500.00 -%.2f 1234560 -> 1234560.00 -%.2f 1234567 -> 1234567.00 -%.2f 1234567.8 -> 1234567.80 -%.2f 1234567.89 -> 1234567.89 -%.2f 1234567.891 -> 1234567.89 -%.2f 1234567.8912 -> 1234567.89 - --- alternate form always includes a decimal point. This only --- makes a difference when the precision is 0. -%#.0f 0 -> 0. -%#.1f 0 -> 0.0 -%#.0f 1.5 -> 2. -%#.0f 2.5 -> 2. -%#.0f 10.1 -> 10. -%#.0f 1234.56 -> 1235. -%#.1f 1.4 -> 1.4 -%#.2f 0.375 -> 0.38 - --- if precision is omitted it defaults to 6 -%f 0 -> 0.000000 -%f 1230000 -> 1230000.000000 -%f 1234567 -> 1234567.000000 -%f 123.4567 -> 123.456700 -%f 1.23456789 -> 1.234568 -%f 0.00012 -> 0.000120 -%f 0.000123 -> 0.000123 -%f 0.00012345 -> 0.000123 -%f 0.000001 -> 0.000001 -%f 0.0000005001 -> 0.000001 -%f 0.0000004999 -> 0.000000 - --- 'e' code formatting with explicit precision (>= 0). Output should --- always have exactly the number of places after the point that were --- requested. - --- zeros -%.0e 0 -> 0e+00 -%.1e 0 -> 0.0e+00 -%.2e 0 -> 0.00e+00 -%.10e 0 -> 0.0000000000e+00 -%.50e 0 -> 0.00000000000000000000000000000000000000000000000000e+00 - --- precision 0. no decimal point in the output -%.0e 0.01 -> 1e-02 -%.0e 0.1 -> 1e-01 -%.0e 1 -> 1e+00 -%.0e 10 -> 1e+01 -%.0e 100 -> 1e+02 -%.0e 0.012 -> 1e-02 -%.0e 0.12 -> 1e-01 -%.0e 1.2 -> 1e+00 -%.0e 12 -> 1e+01 -%.0e 120 -> 1e+02 -%.0e 123.456 -> 1e+02 -%.0e 0.000123456 -> 1e-04 -%.0e 123456000 -> 1e+08 -%.0e 0.5 -> 5e-01 -%.0e 1.4 -> 1e+00 -%.0e 1.5 -> 2e+00 -%.0e 1.6 -> 2e+00 -%.0e 2.4999999 -> 2e+00 -%.0e 2.5 -> 2e+00 -%.0e 2.5000001 -> 3e+00 -%.0e 3.499999999999 -> 3e+00 -%.0e 3.5 -> 4e+00 -%.0e 4.5 -> 4e+00 -%.0e 5.5 -> 6e+00 -%.0e 6.5 -> 6e+00 -%.0e 7.5 -> 8e+00 -%.0e 8.5 -> 8e+00 -%.0e 9.4999 -> 9e+00 -%.0e 9.5 -> 1e+01 -%.0e 10.5 -> 1e+01 -%.0e 14.999 -> 1e+01 -%.0e 15 -> 2e+01 - --- precision 1 -%.1e 0.0001 -> 1.0e-04 -%.1e 0.001 -> 1.0e-03 -%.1e 0.01 -> 1.0e-02 -%.1e 0.1 -> 1.0e-01 -%.1e 1 -> 1.0e+00 -%.1e 10 -> 1.0e+01 -%.1e 100 -> 1.0e+02 -%.1e 120 -> 1.2e+02 -%.1e 123 -> 1.2e+02 -%.1e 123.4 -> 1.2e+02 - --- precision 2 -%.2e 0.00013 -> 1.30e-04 -%.2e 0.000135 -> 1.35e-04 -%.2e 0.0001357 -> 1.36e-04 -%.2e 0.0001 -> 1.00e-04 -%.2e 0.001 -> 1.00e-03 -%.2e 0.01 -> 1.00e-02 -%.2e 0.1 -> 1.00e-01 -%.2e 1 -> 1.00e+00 -%.2e 10 -> 1.00e+01 -%.2e 100 -> 1.00e+02 -%.2e 1000 -> 1.00e+03 -%.2e 1500 -> 1.50e+03 -%.2e 1590 -> 1.59e+03 -%.2e 1598 -> 1.60e+03 -%.2e 1598.7 -> 1.60e+03 -%.2e 1598.76 -> 1.60e+03 -%.2e 9999 -> 1.00e+04 - --- omitted precision defaults to 6 -%e 0 -> 0.000000e+00 -%e 165 -> 1.650000e+02 -%e 1234567 -> 1.234567e+06 -%e 12345678 -> 1.234568e+07 -%e 1.1 -> 1.100000e+00 - --- alternate form always contains a decimal point. This only makes --- a difference when precision is 0. - -%#.0e 0.01 -> 1.e-02 -%#.0e 0.1 -> 1.e-01 -%#.0e 1 -> 1.e+00 -%#.0e 10 -> 1.e+01 -%#.0e 100 -> 1.e+02 -%#.0e 0.012 -> 1.e-02 -%#.0e 0.12 -> 1.e-01 -%#.0e 1.2 -> 1.e+00 -%#.0e 12 -> 1.e+01 -%#.0e 120 -> 1.e+02 -%#.0e 123.456 -> 1.e+02 -%#.0e 0.000123456 -> 1.e-04 -%#.0e 123456000 -> 1.e+08 -%#.0e 0.5 -> 5.e-01 -%#.0e 1.4 -> 1.e+00 -%#.0e 1.5 -> 2.e+00 -%#.0e 1.6 -> 2.e+00 -%#.0e 2.4999999 -> 2.e+00 -%#.0e 2.5 -> 2.e+00 -%#.0e 2.5000001 -> 3.e+00 -%#.0e 3.499999999999 -> 3.e+00 -%#.0e 3.5 -> 4.e+00 -%#.0e 4.5 -> 4.e+00 -%#.0e 5.5 -> 6.e+00 -%#.0e 6.5 -> 6.e+00 -%#.0e 7.5 -> 8.e+00 -%#.0e 8.5 -> 8.e+00 -%#.0e 9.4999 -> 9.e+00 -%#.0e 9.5 -> 1.e+01 -%#.0e 10.5 -> 1.e+01 -%#.0e 14.999 -> 1.e+01 -%#.0e 15 -> 2.e+01 -%#.1e 123.4 -> 1.2e+02 -%#.2e 0.0001357 -> 1.36e-04 - --- 'g' code formatting. - --- zeros -%.0g 0 -> 0 -%.1g 0 -> 0 -%.2g 0 -> 0 -%.3g 0 -> 0 -%.4g 0 -> 0 -%.10g 0 -> 0 -%.50g 0 -> 0 -%.100g 0 -> 0 - --- precision 0 doesn't make a lot of sense for the 'g' code (what does --- it mean to have no significant digits?); in practice, it's interpreted --- as identical to precision 1 -%.0g 1000 -> 1e+03 -%.0g 100 -> 1e+02 -%.0g 10 -> 1e+01 -%.0g 1 -> 1 -%.0g 0.1 -> 0.1 -%.0g 0.01 -> 0.01 -%.0g 1e-3 -> 0.001 -%.0g 1e-4 -> 0.0001 -%.0g 1e-5 -> 1e-05 -%.0g 1e-6 -> 1e-06 -%.0g 12 -> 1e+01 -%.0g 120 -> 1e+02 -%.0g 1.2 -> 1 -%.0g 0.12 -> 0.1 -%.0g 0.012 -> 0.01 -%.0g 0.0012 -> 0.001 -%.0g 0.00012 -> 0.0001 -%.0g 0.000012 -> 1e-05 -%.0g 0.0000012 -> 1e-06 - --- precision 1 identical to precision 0 -%.1g 1000 -> 1e+03 -%.1g 100 -> 1e+02 -%.1g 10 -> 1e+01 -%.1g 1 -> 1 -%.1g 0.1 -> 0.1 -%.1g 0.01 -> 0.01 -%.1g 1e-3 -> 0.001 -%.1g 1e-4 -> 0.0001 -%.1g 1e-5 -> 1e-05 -%.1g 1e-6 -> 1e-06 -%.1g 12 -> 1e+01 -%.1g 120 -> 1e+02 -%.1g 1.2 -> 1 -%.1g 0.12 -> 0.1 -%.1g 0.012 -> 0.01 -%.1g 0.0012 -> 0.001 -%.1g 0.00012 -> 0.0001 -%.1g 0.000012 -> 1e-05 -%.1g 0.0000012 -> 1e-06 - --- precision 2 -%.2g 1000 -> 1e+03 -%.2g 100 -> 1e+02 -%.2g 10 -> 10 -%.2g 1 -> 1 -%.2g 0.1 -> 0.1 -%.2g 0.01 -> 0.01 -%.2g 0.001 -> 0.001 -%.2g 1e-4 -> 0.0001 -%.2g 1e-5 -> 1e-05 -%.2g 1e-6 -> 1e-06 -%.2g 1234 -> 1.2e+03 -%.2g 123 -> 1.2e+02 -%.2g 12.3 -> 12 -%.2g 1.23 -> 1.2 -%.2g 0.123 -> 0.12 -%.2g 0.0123 -> 0.012 -%.2g 0.00123 -> 0.0012 -%.2g 0.000123 -> 0.00012 -%.2g 0.0000123 -> 1.2e-05 - --- bad cases from http://bugs.python.org/issue9980 -%.12g 38210.0 -> 38210 -%.12g 37210.0 -> 37210 -%.12g 36210.0 -> 36210 - --- alternate g formatting: always include decimal point and --- exactly significant digits. -%#.0g 0 -> 0. -%#.1g 0 -> 0. -%#.2g 0 -> 0.0 -%#.3g 0 -> 0.00 -%#.4g 0 -> 0.000 - -%#.0g 0.2 -> 0.2 -%#.1g 0.2 -> 0.2 -%#.2g 0.2 -> 0.20 -%#.3g 0.2 -> 0.200 -%#.4g 0.2 -> 0.2000 -%#.10g 0.2 -> 0.2000000000 - -%#.0g 2 -> 2. -%#.1g 2 -> 2. -%#.2g 2 -> 2.0 -%#.3g 2 -> 2.00 -%#.4g 2 -> 2.000 - -%#.0g 20 -> 2.e+01 -%#.1g 20 -> 2.e+01 -%#.2g 20 -> 20. -%#.3g 20 -> 20.0 -%#.4g 20 -> 20.00 - -%#.0g 234.56 -> 2.e+02 -%#.1g 234.56 -> 2.e+02 -%#.2g 234.56 -> 2.3e+02 -%#.3g 234.56 -> 235. -%#.4g 234.56 -> 234.6 -%#.5g 234.56 -> 234.56 -%#.6g 234.56 -> 234.560 - --- repr formatting. Result always includes decimal point and at --- least one digit after the point, or an exponent. -%r 0 -> 0.0 -%r 1 -> 1.0 - -%r 0.01 -> 0.01 -%r 0.02 -> 0.02 -%r 0.03 -> 0.03 -%r 0.04 -> 0.04 -%r 0.05 -> 0.05 - --- values >= 1e16 get an exponent -%r 10 -> 10.0 -%r 100 -> 100.0 -%r 1e15 -> 1000000000000000.0 -%r 9.999e15 -> 9999000000000000.0 -%r 9999999999999998 -> 9999999999999998.0 -%r 9999999999999999 -> 1e+16 -%r 1e16 -> 1e+16 -%r 1e17 -> 1e+17 - --- as do values < 1e-4 -%r 1e-3 -> 0.001 -%r 1.001e-4 -> 0.0001001 -%r 1.0000000000000001e-4 -> 0.0001 -%r 1.000000000000001e-4 -> 0.0001000000000000001 -%r 1.00000000001e-4 -> 0.000100000000001 -%r 1.0000000001e-4 -> 0.00010000000001 -%r 1e-4 -> 0.0001 -%r 0.99999999999999999e-4 -> 0.0001 -%r 0.9999999999999999e-4 -> 9.999999999999999e-05 -%r 0.999999999999e-4 -> 9.99999999999e-05 -%r 0.999e-4 -> 9.99e-05 -%r 1e-5 -> 1e-05 diff --git a/Lib/test/ieee754.txt b/Lib/test/ieee754.txt deleted file mode 100644 index a8b8a0a..0000000 --- a/Lib/test/ieee754.txt +++ /dev/null @@ -1,183 +0,0 @@ -====================================== -Python IEEE 754 floating point support -====================================== - ->>> from sys import float_info as FI ->>> from math import * ->>> PI = pi ->>> E = e - -You must never compare two floats with == because you are not going to get -what you expect. We treat two floats as equal if the difference between them -is small than epsilon. ->>> EPS = 1E-15 ->>> def equal(x, y): -... """Almost equal helper for floats""" -... return abs(x - y) < EPS - - -NaNs and INFs -============= - -In Python 2.6 and newer NaNs (not a number) and infinity can be constructed -from the strings 'inf' and 'nan'. - ->>> INF = float('inf') ->>> NINF = float('-inf') ->>> NAN = float('nan') - ->>> INF -inf ->>> NINF --inf ->>> NAN -nan - -The math module's ``isnan`` and ``isinf`` functions can be used to detect INF -and NAN: ->>> isinf(INF), isinf(NINF), isnan(NAN) -(True, True, True) ->>> INF == -NINF -True - -Infinity --------- - -Ambiguous operations like ``0 * inf`` or ``inf - inf`` result in NaN. ->>> INF * 0 -nan ->>> INF - INF -nan ->>> INF / INF -nan - -However unambigous operations with inf return inf: ->>> INF * INF -inf ->>> 1.5 * INF -inf ->>> 0.5 * INF -inf ->>> INF / 1000 -inf - -Not a Number ------------- - -NaNs are never equal to another number, even itself ->>> NAN == NAN -False ->>> NAN < 0 -False ->>> NAN >= 0 -False - -All operations involving a NaN return a NaN except for nan**0 and 1**nan. ->>> 1 + NAN -nan ->>> 1 * NAN -nan ->>> 0 * NAN -nan ->>> 1 ** NAN -1.0 ->>> NAN ** 0 -1.0 ->>> 0 ** NAN -nan ->>> (1.0 + FI.epsilon) * NAN -nan - -Misc Functions -============== - -The power of 1 raised to x is always 1.0, even for special values like 0, -infinity and NaN. - ->>> pow(1, 0) -1.0 ->>> pow(1, INF) -1.0 ->>> pow(1, -INF) -1.0 ->>> pow(1, NAN) -1.0 - -The power of 0 raised to x is defined as 0, if x is positive. Negative -finite values are a domain error or zero division error and NaN result in a -silent NaN. - ->>> pow(0, 0) -1.0 ->>> pow(0, INF) -0.0 ->>> pow(0, -INF) -inf ->>> 0 ** -1 -Traceback (most recent call last): -... -ZeroDivisionError: 0.0 cannot be raised to a negative power ->>> pow(0, NAN) -nan - - -Trigonometric Functions -======================= - ->>> sin(INF) -Traceback (most recent call last): -... -ValueError: math domain error ->>> sin(NINF) -Traceback (most recent call last): -... -ValueError: math domain error ->>> sin(NAN) -nan ->>> cos(INF) -Traceback (most recent call last): -... -ValueError: math domain error ->>> cos(NINF) -Traceback (most recent call last): -... -ValueError: math domain error ->>> cos(NAN) -nan ->>> tan(INF) -Traceback (most recent call last): -... -ValueError: math domain error ->>> tan(NINF) -Traceback (most recent call last): -... -ValueError: math domain error ->>> tan(NAN) -nan - -Neither pi nor tan are exact, but you can assume that tan(pi/2) is a large value -and tan(pi) is a very small value: ->>> tan(PI/2) > 1E10 -True ->>> -tan(-PI/2) > 1E10 -True ->>> tan(PI) < 1E-15 -True - ->>> asin(NAN), acos(NAN), atan(NAN) -(nan, nan, nan) ->>> asin(INF), asin(NINF) -Traceback (most recent call last): -... -ValueError: math domain error ->>> acos(INF), acos(NINF) -Traceback (most recent call last): -... -ValueError: math domain error ->>> equal(atan(INF), PI/2), equal(atan(NINF), -PI/2) -(True, True) - - -Hyberbolic Functions -==================== - diff --git a/Lib/test/math_testcases.txt b/Lib/test/math_testcases.txt deleted file mode 100644 index 9585188..0000000 --- a/Lib/test/math_testcases.txt +++ /dev/null @@ -1,633 +0,0 @@ --- Testcases for functions in math. --- --- Each line takes the form: --- --- -> --- --- where: --- --- is a short name identifying the test, --- --- is the function to be tested (exp, cos, asinh, ...), --- --- is a string representing a floating-point value --- --- is the expected (ideal) output value, again --- represented as a string. --- --- is a list of the floating-point flags required by C99 --- --- The possible flags are: --- --- divide-by-zero : raised when a finite input gives a --- mathematically infinite result. --- --- overflow : raised when a finite input gives a finite result that --- is too large to fit in the usual range of an IEEE 754 double. --- --- invalid : raised for invalid inputs (e.g., sqrt(-1)) --- --- ignore-sign : indicates that the sign of the result is --- unspecified; e.g., if the result is given as inf, --- then both -inf and inf should be accepted as correct. --- --- Flags may appear in any order. --- --- Lines beginning with '--' (like this one) start a comment, and are --- ignored. Blank lines, or lines containing only whitespace, are also --- ignored. - --- Many of the values below were computed with the help of --- version 2.4 of the MPFR library for multiple-precision --- floating-point computations with correct rounding. All output --- values in this file are (modulo yet-to-be-discovered bugs) --- correctly rounded, provided that each input and output decimal --- floating-point value below is interpreted as a representation of --- the corresponding nearest IEEE 754 double-precision value. See the --- MPFR homepage at http://www.mpfr.org for more information about the --- MPFR project. - - -------------------------- --- erf: error function -- -------------------------- - -erf0000 erf 0.0 -> 0.0 -erf0001 erf -0.0 -> -0.0 -erf0002 erf inf -> 1.0 -erf0003 erf -inf -> -1.0 -erf0004 erf nan -> nan - --- tiny values -erf0010 erf 1e-308 -> 1.1283791670955125e-308 -erf0011 erf 5e-324 -> 4.9406564584124654e-324 -erf0012 erf 1e-10 -> 1.1283791670955126e-10 - --- small integers -erf0020 erf 1 -> 0.84270079294971489 -erf0021 erf 2 -> 0.99532226501895271 -erf0022 erf 3 -> 0.99997790950300136 -erf0023 erf 4 -> 0.99999998458274209 -erf0024 erf 5 -> 0.99999999999846256 -erf0025 erf 6 -> 1.0 - -erf0030 erf -1 -> -0.84270079294971489 -erf0031 erf -2 -> -0.99532226501895271 -erf0032 erf -3 -> -0.99997790950300136 -erf0033 erf -4 -> -0.99999998458274209 -erf0034 erf -5 -> -0.99999999999846256 -erf0035 erf -6 -> -1.0 - --- huge values should all go to +/-1, depending on sign -erf0040 erf -40 -> -1.0 -erf0041 erf 1e16 -> 1.0 -erf0042 erf -1e150 -> -1.0 -erf0043 erf 1.7e308 -> 1.0 - --- Issue 8986: inputs x with exp(-x*x) near the underflow threshold --- incorrectly signalled overflow on some platforms. -erf0100 erf 26.2 -> 1.0 -erf0101 erf 26.4 -> 1.0 -erf0102 erf 26.6 -> 1.0 -erf0103 erf 26.8 -> 1.0 -erf0104 erf 27.0 -> 1.0 -erf0105 erf 27.2 -> 1.0 -erf0106 erf 27.4 -> 1.0 -erf0107 erf 27.6 -> 1.0 - -erf0110 erf -26.2 -> -1.0 -erf0111 erf -26.4 -> -1.0 -erf0112 erf -26.6 -> -1.0 -erf0113 erf -26.8 -> -1.0 -erf0114 erf -27.0 -> -1.0 -erf0115 erf -27.2 -> -1.0 -erf0116 erf -27.4 -> -1.0 -erf0117 erf -27.6 -> -1.0 - ----------------------------------------- --- erfc: complementary error function -- ----------------------------------------- - -erfc0000 erfc 0.0 -> 1.0 -erfc0001 erfc -0.0 -> 1.0 -erfc0002 erfc inf -> 0.0 -erfc0003 erfc -inf -> 2.0 -erfc0004 erfc nan -> nan - --- tiny values -erfc0010 erfc 1e-308 -> 1.0 -erfc0011 erfc 5e-324 -> 1.0 -erfc0012 erfc 1e-10 -> 0.99999999988716204 - --- small integers -erfc0020 erfc 1 -> 0.15729920705028513 -erfc0021 erfc 2 -> 0.0046777349810472662 -erfc0022 erfc 3 -> 2.2090496998585441e-05 -erfc0023 erfc 4 -> 1.541725790028002e-08 -erfc0024 erfc 5 -> 1.5374597944280349e-12 -erfc0025 erfc 6 -> 2.1519736712498913e-17 - -erfc0030 erfc -1 -> 1.8427007929497148 -erfc0031 erfc -2 -> 1.9953222650189528 -erfc0032 erfc -3 -> 1.9999779095030015 -erfc0033 erfc -4 -> 1.9999999845827421 -erfc0034 erfc -5 -> 1.9999999999984626 -erfc0035 erfc -6 -> 2.0 - --- as x -> infinity, erfc(x) behaves like exp(-x*x)/x/sqrt(pi) -erfc0040 erfc 20 -> 5.3958656116079012e-176 -erfc0041 erfc 25 -> 8.3001725711965228e-274 -erfc0042 erfc 27 -> 5.2370464393526292e-319 -erfc0043 erfc 28 -> 0.0 - --- huge values -erfc0050 erfc -40 -> 2.0 -erfc0051 erfc 1e16 -> 0.0 -erfc0052 erfc -1e150 -> 2.0 -erfc0053 erfc 1.7e308 -> 0.0 - --- Issue 8986: inputs x with exp(-x*x) near the underflow threshold --- incorrectly signalled overflow on some platforms. -erfc0100 erfc 26.2 -> 1.6432507924389461e-300 -erfc0101 erfc 26.4 -> 4.4017768588035426e-305 -erfc0102 erfc 26.6 -> 1.0885125885442269e-309 -erfc0103 erfc 26.8 -> 2.4849621571966629e-314 -erfc0104 erfc 27.0 -> 5.2370464393526292e-319 -erfc0105 erfc 27.2 -> 9.8813129168249309e-324 -erfc0106 erfc 27.4 -> 0.0 -erfc0107 erfc 27.6 -> 0.0 - -erfc0110 erfc -26.2 -> 2.0 -erfc0111 erfc -26.4 -> 2.0 -erfc0112 erfc -26.6 -> 2.0 -erfc0113 erfc -26.8 -> 2.0 -erfc0114 erfc -27.0 -> 2.0 -erfc0115 erfc -27.2 -> 2.0 -erfc0116 erfc -27.4 -> 2.0 -erfc0117 erfc -27.6 -> 2.0 - ---------------------------------------------------------- --- lgamma: log of absolute value of the gamma function -- ---------------------------------------------------------- - --- special values -lgam0000 lgamma 0.0 -> inf divide-by-zero -lgam0001 lgamma -0.0 -> inf divide-by-zero -lgam0002 lgamma inf -> inf -lgam0003 lgamma -inf -> inf -lgam0004 lgamma nan -> nan - --- negative integers -lgam0010 lgamma -1 -> inf divide-by-zero -lgam0011 lgamma -2 -> inf divide-by-zero -lgam0012 lgamma -1e16 -> inf divide-by-zero -lgam0013 lgamma -1e300 -> inf divide-by-zero -lgam0014 lgamma -1.79e308 -> inf divide-by-zero - --- small positive integers give factorials -lgam0020 lgamma 1 -> 0.0 -lgam0021 lgamma 2 -> 0.0 -lgam0022 lgamma 3 -> 0.69314718055994529 -lgam0023 lgamma 4 -> 1.791759469228055 -lgam0024 lgamma 5 -> 3.1780538303479458 -lgam0025 lgamma 6 -> 4.7874917427820458 - --- half integers -lgam0030 lgamma 0.5 -> 0.57236494292470008 -lgam0031 lgamma 1.5 -> -0.12078223763524522 -lgam0032 lgamma 2.5 -> 0.28468287047291918 -lgam0033 lgamma 3.5 -> 1.2009736023470743 -lgam0034 lgamma -0.5 -> 1.2655121234846454 -lgam0035 lgamma -1.5 -> 0.86004701537648098 -lgam0036 lgamma -2.5 -> -0.056243716497674054 -lgam0037 lgamma -3.5 -> -1.309006684993042 - --- values near 0 -lgam0040 lgamma 0.1 -> 2.252712651734206 -lgam0041 lgamma 0.01 -> 4.5994798780420219 -lgam0042 lgamma 1e-8 -> 18.420680738180209 -lgam0043 lgamma 1e-16 -> 36.841361487904734 -lgam0044 lgamma 1e-30 -> 69.077552789821368 -lgam0045 lgamma 1e-160 -> 368.41361487904732 -lgam0046 lgamma 1e-308 -> 709.19620864216608 -lgam0047 lgamma 5.6e-309 -> 709.77602713741896 -lgam0048 lgamma 5.5e-309 -> 709.79404564292167 -lgam0049 lgamma 1e-309 -> 711.49879373516012 -lgam0050 lgamma 1e-323 -> 743.74692474082133 -lgam0051 lgamma 5e-324 -> 744.44007192138122 -lgam0060 lgamma -0.1 -> 2.3689613327287886 -lgam0061 lgamma -0.01 -> 4.6110249927528013 -lgam0062 lgamma -1e-8 -> 18.420680749724522 -lgam0063 lgamma -1e-16 -> 36.841361487904734 -lgam0064 lgamma -1e-30 -> 69.077552789821368 -lgam0065 lgamma -1e-160 -> 368.41361487904732 -lgam0066 lgamma -1e-308 -> 709.19620864216608 -lgam0067 lgamma -5.6e-309 -> 709.77602713741896 -lgam0068 lgamma -5.5e-309 -> 709.79404564292167 -lgam0069 lgamma -1e-309 -> 711.49879373516012 -lgam0070 lgamma -1e-323 -> 743.74692474082133 -lgam0071 lgamma -5e-324 -> 744.44007192138122 - --- values near negative integers -lgam0080 lgamma -0.99999999999999989 -> 36.736800569677101 -lgam0081 lgamma -1.0000000000000002 -> 36.043653389117154 -lgam0082 lgamma -1.9999999999999998 -> 35.350506208557213 -lgam0083 lgamma -2.0000000000000004 -> 34.657359027997266 -lgam0084 lgamma -100.00000000000001 -> -331.85460524980607 -lgam0085 lgamma -99.999999999999986 -> -331.85460524980596 - --- large inputs -lgam0100 lgamma 170 -> 701.43726380873704 -lgam0101 lgamma 171 -> 706.57306224578736 -lgam0102 lgamma 171.624 -> 709.78077443669895 -lgam0103 lgamma 171.625 -> 709.78591682948365 -lgam0104 lgamma 172 -> 711.71472580228999 -lgam0105 lgamma 2000 -> 13198.923448054265 -lgam0106 lgamma 2.55998332785163e305 -> 1.7976931348623099e+308 -lgam0107 lgamma 2.55998332785164e305 -> inf overflow -lgam0108 lgamma 1.7e308 -> inf overflow - --- inputs for which gamma(x) is tiny -lgam0120 lgamma -100.5 -> -364.90096830942736 -lgam0121 lgamma -160.5 -> -656.88005261126432 -lgam0122 lgamma -170.5 -> -707.99843314507882 -lgam0123 lgamma -171.5 -> -713.14301641168481 -lgam0124 lgamma -176.5 -> -738.95247590846486 -lgam0125 lgamma -177.5 -> -744.13144651738037 -lgam0126 lgamma -178.5 -> -749.3160351186001 - -lgam0130 lgamma -1000.5 -> -5914.4377011168517 -lgam0131 lgamma -30000.5 -> -279278.6629959144 -lgam0132 lgamma -4503599627370495.5 -> -1.5782258434492883e+17 - --- results close to 0: positive argument ... -lgam0150 lgamma 0.99999999999999989 -> 6.4083812134800075e-17 -lgam0151 lgamma 1.0000000000000002 -> -1.2816762426960008e-16 -lgam0152 lgamma 1.9999999999999998 -> -9.3876980655431170e-17 -lgam0153 lgamma 2.0000000000000004 -> 1.8775396131086244e-16 - --- ... and negative argument -lgam0160 lgamma -2.7476826467 -> -5.2477408147689136e-11 -lgam0161 lgamma -2.457024738 -> 3.3464637541912932e-10 - - ---------------------------- --- gamma: Gamma function -- ---------------------------- - --- special values -gam0000 gamma 0.0 -> inf divide-by-zero -gam0001 gamma -0.0 -> -inf divide-by-zero -gam0002 gamma inf -> inf -gam0003 gamma -inf -> nan invalid -gam0004 gamma nan -> nan - --- negative integers inputs are invalid -gam0010 gamma -1 -> nan invalid -gam0011 gamma -2 -> nan invalid -gam0012 gamma -1e16 -> nan invalid -gam0013 gamma -1e300 -> nan invalid - --- small positive integers give factorials -gam0020 gamma 1 -> 1 -gam0021 gamma 2 -> 1 -gam0022 gamma 3 -> 2 -gam0023 gamma 4 -> 6 -gam0024 gamma 5 -> 24 -gam0025 gamma 6 -> 120 - --- half integers -gam0030 gamma 0.5 -> 1.7724538509055161 -gam0031 gamma 1.5 -> 0.88622692545275805 -gam0032 gamma 2.5 -> 1.3293403881791370 -gam0033 gamma 3.5 -> 3.3233509704478426 -gam0034 gamma -0.5 -> -3.5449077018110322 -gam0035 gamma -1.5 -> 2.3632718012073548 -gam0036 gamma -2.5 -> -0.94530872048294190 -gam0037 gamma -3.5 -> 0.27008820585226911 - --- values near 0 -gam0040 gamma 0.1 -> 9.5135076986687306 -gam0041 gamma 0.01 -> 99.432585119150602 -gam0042 gamma 1e-8 -> 99999999.422784343 -gam0043 gamma 1e-16 -> 10000000000000000 -gam0044 gamma 1e-30 -> 9.9999999999999988e+29 -gam0045 gamma 1e-160 -> 1.0000000000000000e+160 -gam0046 gamma 1e-308 -> 1.0000000000000000e+308 -gam0047 gamma 5.6e-309 -> 1.7857142857142848e+308 -gam0048 gamma 5.5e-309 -> inf overflow -gam0049 gamma 1e-309 -> inf overflow -gam0050 gamma 1e-323 -> inf overflow -gam0051 gamma 5e-324 -> inf overflow -gam0060 gamma -0.1 -> -10.686287021193193 -gam0061 gamma -0.01 -> -100.58719796441078 -gam0062 gamma -1e-8 -> -100000000.57721567 -gam0063 gamma -1e-16 -> -10000000000000000 -gam0064 gamma -1e-30 -> -9.9999999999999988e+29 -gam0065 gamma -1e-160 -> -1.0000000000000000e+160 -gam0066 gamma -1e-308 -> -1.0000000000000000e+308 -gam0067 gamma -5.6e-309 -> -1.7857142857142848e+308 -gam0068 gamma -5.5e-309 -> -inf overflow -gam0069 gamma -1e-309 -> -inf overflow -gam0070 gamma -1e-323 -> -inf overflow -gam0071 gamma -5e-324 -> -inf overflow - --- values near negative integers -gam0080 gamma -0.99999999999999989 -> -9007199254740992.0 -gam0081 gamma -1.0000000000000002 -> 4503599627370495.5 -gam0082 gamma -1.9999999999999998 -> 2251799813685248.5 -gam0083 gamma -2.0000000000000004 -> -1125899906842623.5 -gam0084 gamma -100.00000000000001 -> -7.5400833348831090e-145 -gam0085 gamma -99.999999999999986 -> 7.5400833348840962e-145 - --- large inputs -gam0100 gamma 170 -> 4.2690680090047051e+304 -gam0101 gamma 171 -> 7.2574156153079990e+306 -gam0102 gamma 171.624 -> 1.7942117599248104e+308 -gam0103 gamma 171.625 -> inf overflow -gam0104 gamma 172 -> inf overflow -gam0105 gamma 2000 -> inf overflow -gam0106 gamma 1.7e308 -> inf overflow - --- inputs for which gamma(x) is tiny -gam0120 gamma -100.5 -> -3.3536908198076787e-159 -gam0121 gamma -160.5 -> -5.2555464470078293e-286 -gam0122 gamma -170.5 -> -3.3127395215386074e-308 -gam0123 gamma -171.5 -> 1.9316265431711902e-310 -gam0124 gamma -176.5 -> -1.1956388629358166e-321 -gam0125 gamma -177.5 -> 4.9406564584124654e-324 -gam0126 gamma -178.5 -> -0.0 -gam0127 gamma -179.5 -> 0.0 -gam0128 gamma -201.0001 -> 0.0 -gam0129 gamma -202.9999 -> -0.0 -gam0130 gamma -1000.5 -> -0.0 -gam0131 gamma -1000000000.3 -> -0.0 -gam0132 gamma -4503599627370495.5 -> 0.0 - --- inputs that cause problems for the standard reflection formula, --- thanks to loss of accuracy in 1-x -gam0140 gamma -63.349078729022985 -> 4.1777971677761880e-88 -gam0141 gamma -127.45117632943295 -> 1.1831110896236810e-214 - - ------------------------------------------------------------ --- log1p: log(1 + x), without precision loss for small x -- ------------------------------------------------------------ - --- special values -log1p0000 log1p 0.0 -> 0.0 -log1p0001 log1p -0.0 -> -0.0 -log1p0002 log1p inf -> inf -log1p0003 log1p -inf -> nan invalid -log1p0004 log1p nan -> nan - --- singularity at -1.0 -log1p0010 log1p -1.0 -> -inf divide-by-zero -log1p0011 log1p -0.9999999999999999 -> -36.736800569677101 - --- finite values < 1.0 are invalid -log1p0020 log1p -1.0000000000000002 -> nan invalid -log1p0021 log1p -1.1 -> nan invalid -log1p0022 log1p -2.0 -> nan invalid -log1p0023 log1p -1e300 -> nan invalid - --- tiny x: log1p(x) ~ x -log1p0110 log1p 5e-324 -> 5e-324 -log1p0111 log1p 1e-320 -> 1e-320 -log1p0112 log1p 1e-300 -> 1e-300 -log1p0113 log1p 1e-150 -> 1e-150 -log1p0114 log1p 1e-20 -> 1e-20 - -log1p0120 log1p -5e-324 -> -5e-324 -log1p0121 log1p -1e-320 -> -1e-320 -log1p0122 log1p -1e-300 -> -1e-300 -log1p0123 log1p -1e-150 -> -1e-150 -log1p0124 log1p -1e-20 -> -1e-20 - --- some (mostly) random small and moderate-sized values -log1p0200 log1p -0.89156889782277482 -> -2.2216403106762863 -log1p0201 log1p -0.23858496047770464 -> -0.27257668276980057 -log1p0202 log1p -0.011641726191307515 -> -0.011710021654495657 -log1p0203 log1p -0.0090126398571693817 -> -0.0090534993825007650 -log1p0204 log1p -0.00023442805985712781 -> -0.00023445554240995693 -log1p0205 log1p -1.5672870980936349e-5 -> -1.5672993801662046e-5 -log1p0206 log1p -7.9650013274825295e-6 -> -7.9650330482740401e-6 -log1p0207 log1p -2.5202948343227410e-7 -> -2.5202951519170971e-7 -log1p0208 log1p -8.2446372820745855e-11 -> -8.2446372824144559e-11 -log1p0209 log1p -8.1663670046490789e-12 -> -8.1663670046824230e-12 -log1p0210 log1p 7.0351735084656292e-18 -> 7.0351735084656292e-18 -log1p0211 log1p 5.2732161907375226e-12 -> 5.2732161907236188e-12 -log1p0212 log1p 1.0000000000000000e-10 -> 9.9999999995000007e-11 -log1p0213 log1p 2.1401273266000197e-9 -> 2.1401273243099470e-9 -log1p0214 log1p 1.2668914653979560e-8 -> 1.2668914573728861e-8 -log1p0215 log1p 1.6250007816299069e-6 -> 1.6249994613175672e-6 -log1p0216 log1p 8.3740495645839399e-6 -> 8.3740145024266269e-6 -log1p0217 log1p 3.0000000000000001e-5 -> 2.9999550008999799e-5 -log1p0218 log1p 0.0070000000000000001 -> 0.0069756137364252423 -log1p0219 log1p 0.013026235315053002 -> 0.012942123564008787 -log1p0220 log1p 0.013497160797236184 -> 0.013406885521915038 -log1p0221 log1p 0.027625599078135284 -> 0.027250897463483054 -log1p0222 log1p 0.14179687245544870 -> 0.13260322540908789 - --- large values -log1p0300 log1p 1.7976931348623157e+308 -> 709.78271289338397 -log1p0301 log1p 1.0000000000000001e+300 -> 690.77552789821368 -log1p0302 log1p 1.0000000000000001e+70 -> 161.18095650958321 -log1p0303 log1p 10000000000.000000 -> 23.025850930040455 - --- other values transferred from testLog1p in test_math -log1p0400 log1p -0.63212055882855767 -> -1.0000000000000000 -log1p0401 log1p 1.7182818284590451 -> 1.0000000000000000 -log1p0402 log1p 1.0000000000000000 -> 0.69314718055994529 -log1p0403 log1p 1.2379400392853803e+27 -> 62.383246250395075 - - ------------------------------------------------------------ --- expm1: exp(x) - 1, without precision loss for small x -- ------------------------------------------------------------ - --- special values -expm10000 expm1 0.0 -> 0.0 -expm10001 expm1 -0.0 -> -0.0 -expm10002 expm1 inf -> inf -expm10003 expm1 -inf -> -1.0 -expm10004 expm1 nan -> nan - --- expm1(x) ~ x for tiny x -expm10010 expm1 5e-324 -> 5e-324 -expm10011 expm1 1e-320 -> 1e-320 -expm10012 expm1 1e-300 -> 1e-300 -expm10013 expm1 1e-150 -> 1e-150 -expm10014 expm1 1e-20 -> 1e-20 - -expm10020 expm1 -5e-324 -> -5e-324 -expm10021 expm1 -1e-320 -> -1e-320 -expm10022 expm1 -1e-300 -> -1e-300 -expm10023 expm1 -1e-150 -> -1e-150 -expm10024 expm1 -1e-20 -> -1e-20 - --- moderate sized values, where direct evaluation runs into trouble -expm10100 expm1 1e-10 -> 1.0000000000500000e-10 -expm10101 expm1 -9.9999999999999995e-08 -> -9.9999995000000163e-8 -expm10102 expm1 3.0000000000000001e-05 -> 3.0000450004500034e-5 -expm10103 expm1 -0.0070000000000000001 -> -0.0069755570667648951 -expm10104 expm1 -0.071499208740094633 -> -0.069002985744820250 -expm10105 expm1 -0.063296004180116799 -> -0.061334416373633009 -expm10106 expm1 0.02390954035597756 -> 0.024197665143819942 -expm10107 expm1 0.085637352649044901 -> 0.089411184580357767 -expm10108 expm1 0.5966174947411006 -> 0.81596588596501485 -expm10109 expm1 0.30247206212075139 -> 0.35319987035848677 -expm10110 expm1 0.74574727375889516 -> 1.1080161116737459 -expm10111 expm1 0.97767512926555711 -> 1.6582689207372185 -expm10112 expm1 0.8450154566787712 -> 1.3280137976535897 -expm10113 expm1 -0.13979260323125264 -> -0.13046144381396060 -expm10114 expm1 -0.52899322039643271 -> -0.41080213643695923 -expm10115 expm1 -0.74083261478900631 -> -0.52328317124797097 -expm10116 expm1 -0.93847766984546055 -> -0.60877704724085946 -expm10117 expm1 10.0 -> 22025.465794806718 -expm10118 expm1 27.0 -> 532048240600.79865 -expm10119 expm1 123 -> 2.6195173187490626e+53 -expm10120 expm1 -12.0 -> -0.99999385578764666 -expm10121 expm1 -35.100000000000001 -> -0.99999999999999944 - --- extreme negative values -expm10201 expm1 -37.0 -> -0.99999999999999989 -expm10200 expm1 -38.0 -> -1.0 -expm10210 expm1 -710.0 -> -1.0 --- the formula expm1(x) = 2 * sinh(x/2) * exp(x/2) doesn't work so --- well when exp(x/2) is subnormal or underflows to zero; check we're --- not using it! -expm10211 expm1 -1420.0 -> -1.0 -expm10212 expm1 -1450.0 -> -1.0 -expm10213 expm1 -1500.0 -> -1.0 -expm10214 expm1 -1e50 -> -1.0 -expm10215 expm1 -1.79e308 -> -1.0 - --- extreme positive values -expm10300 expm1 300 -> 1.9424263952412558e+130 -expm10301 expm1 700 -> 1.0142320547350045e+304 --- the next test (expm10302) is disabled because it causes failure on --- OS X 10.4/Intel: apparently all values over 709.78 produce an --- overflow on that platform. See issue #7575. --- expm10302 expm1 709.78271289328393 -> 1.7976931346824240e+308 -expm10303 expm1 709.78271289348402 -> inf overflow -expm10304 expm1 1000 -> inf overflow -expm10305 expm1 1e50 -> inf overflow -expm10306 expm1 1.79e308 -> inf overflow - --- weaker version of expm10302 -expm10307 expm1 709.5 -> 1.3549863193146328e+308 - -------------------------- --- log2: log to base 2 -- -------------------------- - --- special values -log20000 log2 0.0 -> -inf divide-by-zero -log20001 log2 -0.0 -> -inf divide-by-zero -log20002 log2 inf -> inf -log20003 log2 -inf -> nan invalid -log20004 log2 nan -> nan - --- exact value at 1.0 -log20010 log2 1.0 -> 0.0 - --- negatives -log20020 log2 -5e-324 -> nan invalid -log20021 log2 -1.0 -> nan invalid -log20022 log2 -1.7e-308 -> nan invalid - --- exact values at powers of 2 -log20100 log2 2.0 -> 1.0 -log20101 log2 4.0 -> 2.0 -log20102 log2 8.0 -> 3.0 -log20103 log2 16.0 -> 4.0 -log20104 log2 32.0 -> 5.0 -log20105 log2 64.0 -> 6.0 -log20106 log2 128.0 -> 7.0 -log20107 log2 256.0 -> 8.0 -log20108 log2 512.0 -> 9.0 -log20109 log2 1024.0 -> 10.0 -log20110 log2 2048.0 -> 11.0 - -log20200 log2 0.5 -> -1.0 -log20201 log2 0.25 -> -2.0 -log20202 log2 0.125 -> -3.0 -log20203 log2 0.0625 -> -4.0 - --- values close to 1.0 -log20300 log2 1.0000000000000002 -> 3.2034265038149171e-16 -log20301 log2 1.0000000001 -> 1.4426951601859516e-10 -log20302 log2 1.00001 -> 1.4426878274712997e-5 - -log20310 log2 0.9999999999999999 -> -1.6017132519074588e-16 -log20311 log2 0.9999999999 -> -1.4426951603302210e-10 -log20312 log2 0.99999 -> -1.4427022544056922e-5 - --- tiny values -log20400 log2 5e-324 -> -1074.0 -log20401 log2 1e-323 -> -1073.0 -log20402 log2 1.5e-323 -> -1072.4150374992789 -log20403 log2 2e-323 -> -1072.0 - -log20410 log2 1e-308 -> -1023.1538532253076 -log20411 log2 2.2250738585072014e-308 -> -1022.0 -log20412 log2 4.4501477170144028e-308 -> -1021.0 -log20413 log2 1e-307 -> -1019.8319251304202 - --- huge values -log20500 log2 1.7976931348623157e+308 -> 1024.0 -log20501 log2 1.7e+308 -> 1023.9193879716706 -log20502 log2 8.9884656743115795e+307 -> 1023.0 - --- selection of random values -log20600 log2 -7.2174324841039838e+289 -> nan invalid -log20601 log2 -2.861319734089617e+265 -> nan invalid -log20602 log2 -4.3507646894008962e+257 -> nan invalid -log20603 log2 -6.6717265307520224e+234 -> nan invalid -log20604 log2 -3.9118023786619294e+229 -> nan invalid -log20605 log2 -1.5478221302505161e+206 -> nan invalid -log20606 log2 -1.4380485131364602e+200 -> nan invalid -log20607 log2 -3.7235198730382645e+185 -> nan invalid -log20608 log2 -1.0472242235095724e+184 -> nan invalid -log20609 log2 -5.0141781956163884e+160 -> nan invalid -log20610 log2 -2.1157958031160324e+124 -> nan invalid -log20611 log2 -7.9677558612567718e+90 -> nan invalid -log20612 log2 -5.5553906194063732e+45 -> nan invalid -log20613 log2 -16573900952607.953 -> nan invalid -log20614 log2 -37198371019.888618 -> nan invalid -log20615 log2 -6.0727115121422674e-32 -> nan invalid -log20616 log2 -2.5406841656526057e-38 -> nan invalid -log20617 log2 -4.9056766703267657e-43 -> nan invalid -log20618 log2 -2.1646786075228305e-71 -> nan invalid -log20619 log2 -2.470826790488573e-78 -> nan invalid -log20620 log2 -3.8661709303489064e-165 -> nan invalid -log20621 log2 -1.0516496976649986e-182 -> nan invalid -log20622 log2 -1.5935458614317996e-255 -> nan invalid -log20623 log2 -2.8750977267336654e-293 -> nan invalid -log20624 log2 -7.6079466794732585e-296 -> nan invalid -log20625 log2 3.2073253539988545e-307 -> -1018.1505544209213 -log20626 log2 1.674937885472249e-244 -> -809.80634755783126 -log20627 log2 1.0911259044931283e-214 -> -710.76679472274213 -log20628 log2 2.0275372624809709e-154 -> -510.55719818383272 -log20629 log2 7.3926087369631841e-115 -> -379.13564735312292 -log20630 log2 1.3480198206342423e-86 -> -285.25497445094436 -log20631 log2 8.9927384655719947e-83 -> -272.55127136401637 -log20632 log2 3.1452398713597487e-60 -> -197.66251564496875 -log20633 log2 7.0706573215457351e-55 -> -179.88420087782217 -log20634 log2 3.1258285390731669e-49 -> -161.13023800505653 -log20635 log2 8.2253046627829942e-41 -> -133.15898277355879 -log20636 log2 7.8691367397519897e+49 -> 165.75068202732419 -log20637 log2 2.9920561983925013e+64 -> 214.18453534573757 -log20638 log2 4.7827254553946841e+77 -> 258.04629628445673 -log20639 log2 3.1903566496481868e+105 -> 350.47616767491166 -log20640 log2 5.6195082449502419e+113 -> 377.86831861008250 -log20641 log2 9.9625658250651047e+125 -> 418.55752921228753 -log20642 log2 2.7358945220961532e+145 -> 483.13158636923413 -log20643 log2 2.785842387926931e+174 -> 579.49360214860280 -log20644 log2 2.4169172507252751e+193 -> 642.40529039289652 -log20645 log2 3.1689091206395632e+205 -> 682.65924573798395 -log20646 log2 2.535995592365391e+208 -> 692.30359597460460 -log20647 log2 6.2011236566089916e+233 -> 776.64177576730913 -log20648 log2 2.1843274820677632e+253 -> 841.57499717289647 -log20649 log2 8.7493931063474791e+297 -> 989.74182713073981 diff --git a/Lib/test/mathdata/cmath_testcases.txt b/Lib/test/mathdata/cmath_testcases.txt new file mode 100644 index 0000000..0165e17 --- /dev/null +++ b/Lib/test/mathdata/cmath_testcases.txt @@ -0,0 +1,2514 @@ +-- Testcases for functions in cmath. +-- +-- Each line takes the form: +-- +-- -> +-- +-- where: +-- +-- is a short name identifying the test, +-- +-- is the function to be tested (exp, cos, asinh, ...), +-- +-- is a pair of floats separated by whitespace +-- representing real and imaginary parts of a complex number, and +-- +-- is the expected (ideal) output value, again +-- represented as a pair of floats. +-- +-- is a list of the floating-point flags required by C99 +-- +-- The possible flags are: +-- +-- divide-by-zero : raised when a finite input gives a +-- mathematically infinite result. +-- +-- overflow : raised when a finite input gives a finite result whose +-- real or imaginary part is too large to fit in the usual range +-- of an IEEE 754 double. +-- +-- invalid : raised for invalid inputs. +-- +-- ignore-real-sign : indicates that the sign of the real part of +-- the result is unspecified; if the real part of the result is +-- given as inf, then both -inf and inf should be accepted as +-- correct. +-- +-- ignore-imag-sign : indicates that the sign of the imaginary part +-- of the result is unspecified. +-- +-- Flags may appear in any order. +-- +-- Lines beginning with '--' (like this one) start a comment, and are +-- ignored. Blank lines, or lines containing only whitespace, are also +-- ignored. + +-- The majority of the values below were computed with the help of +-- version 2.3 of the MPFR library for multiple-precision +-- floating-point computations with correct rounding. All output +-- values in this file are (modulo yet-to-be-discovered bugs) +-- correctly rounded, provided that each input and output decimal +-- floating-point value below is interpreted as a representation of +-- the corresponding nearest IEEE 754 double-precision value. See the +-- MPFR homepage at http://www.mpfr.org for more information about the +-- MPFR project. + +-- A minority of the test cases were generated with the help of +-- mpmath 0.19 at 100 bit accuracy (http://mpmath.org) to improve +-- coverage of real functions with real-valued arguments. These are +-- used in test.test_math.MathTests.test_testfile, as well as in +-- test_cmath. + + +-------------------------- +-- acos: Inverse cosine -- +-------------------------- + +-- zeros +acos0000 acos 0.0 0.0 -> 1.5707963267948966 -0.0 +acos0001 acos 0.0 -0.0 -> 1.5707963267948966 0.0 +acos0002 acos -0.0 0.0 -> 1.5707963267948966 -0.0 +acos0003 acos -0.0 -0.0 -> 1.5707963267948966 0.0 + +-- branch points: +/-1 +acos0010 acos 1.0 0.0 -> 0.0 -0.0 +acos0011 acos 1.0 -0.0 -> 0.0 0.0 +acos0012 acos -1.0 0.0 -> 3.1415926535897931 -0.0 +acos0013 acos -1.0 -0.0 -> 3.1415926535897931 0.0 + +-- values along both sides of real axis +acos0020 acos -9.8813129168249309e-324 0.0 -> 1.5707963267948966 -0.0 +acos0021 acos -9.8813129168249309e-324 -0.0 -> 1.5707963267948966 0.0 +acos0022 acos -1e-305 0.0 -> 1.5707963267948966 -0.0 +acos0023 acos -1e-305 -0.0 -> 1.5707963267948966 0.0 +acos0024 acos -1e-150 0.0 -> 1.5707963267948966 -0.0 +acos0025 acos -1e-150 -0.0 -> 1.5707963267948966 0.0 +acos0026 acos -9.9999999999999998e-17 0.0 -> 1.5707963267948968 -0.0 +acos0027 acos -9.9999999999999998e-17 -0.0 -> 1.5707963267948968 0.0 +acos0028 acos -0.001 0.0 -> 1.5717963269615634 -0.0 +acos0029 acos -0.001 -0.0 -> 1.5717963269615634 0.0 +acos0030 acos -0.57899999999999996 0.0 -> 2.1882979816120667 -0.0 +acos0031 acos -0.57899999999999996 -0.0 -> 2.1882979816120667 0.0 +acos0032 acos -0.99999999999999989 0.0 -> 3.1415926386886319 -0.0 +acos0033 acos -0.99999999999999989 -0.0 -> 3.1415926386886319 0.0 +acos0034 acos -1.0000000000000002 0.0 -> 3.1415926535897931 -2.1073424255447014e-08 +acos0035 acos -1.0000000000000002 -0.0 -> 3.1415926535897931 2.1073424255447014e-08 +acos0036 acos -1.0009999999999999 0.0 -> 3.1415926535897931 -0.044717633608306849 +acos0037 acos -1.0009999999999999 -0.0 -> 3.1415926535897931 0.044717633608306849 +acos0038 acos -2.0 0.0 -> 3.1415926535897931 -1.3169578969248168 +acos0039 acos -2.0 -0.0 -> 3.1415926535897931 1.3169578969248168 +acos0040 acos -23.0 0.0 -> 3.1415926535897931 -3.8281684713331012 +acos0041 acos -23.0 -0.0 -> 3.1415926535897931 3.8281684713331012 +acos0042 acos -10000000000000000.0 0.0 -> 3.1415926535897931 -37.534508668464674 +acos0043 acos -10000000000000000.0 -0.0 -> 3.1415926535897931 37.534508668464674 +acos0044 acos -9.9999999999999998e+149 0.0 -> 3.1415926535897931 -346.08091112966679 +acos0045 acos -9.9999999999999998e+149 -0.0 -> 3.1415926535897931 346.08091112966679 +acos0046 acos -1.0000000000000001e+299 0.0 -> 3.1415926535897931 -689.16608998577965 +acos0047 acos -1.0000000000000001e+299 -0.0 -> 3.1415926535897931 689.16608998577965 +acos0048 acos 9.8813129168249309e-324 0.0 -> 1.5707963267948966 -0.0 +acos0049 acos 9.8813129168249309e-324 -0.0 -> 1.5707963267948966 0.0 +acos0050 acos 1e-305 0.0 -> 1.5707963267948966 -0.0 +acos0051 acos 1e-305 -0.0 -> 1.5707963267948966 0.0 +acos0052 acos 1e-150 0.0 -> 1.5707963267948966 -0.0 +acos0053 acos 1e-150 -0.0 -> 1.5707963267948966 0.0 +acos0054 acos 9.9999999999999998e-17 0.0 -> 1.5707963267948966 -0.0 +acos0055 acos 9.9999999999999998e-17 -0.0 -> 1.5707963267948966 0.0 +acos0056 acos 0.001 0.0 -> 1.56979632662823 -0.0 +acos0057 acos 0.001 -0.0 -> 1.56979632662823 0.0 +acos0058 acos 0.57899999999999996 0.0 -> 0.95329467197772655 -0.0 +acos0059 acos 0.57899999999999996 -0.0 -> 0.95329467197772655 0.0 +acos0060 acos 0.99999999999999989 0.0 -> 1.4901161193847656e-08 -0.0 +acos0061 acos 0.99999999999999989 -0.0 -> 1.4901161193847656e-08 0.0 +acos0062 acos 1.0000000000000002 0.0 -> 0.0 -2.1073424255447014e-08 +acos0063 acos 1.0000000000000002 -0.0 -> 0.0 2.1073424255447014e-08 +acos0064 acos 1.0009999999999999 0.0 -> 0.0 -0.044717633608306849 +acos0065 acos 1.0009999999999999 -0.0 -> 0.0 0.044717633608306849 +acos0066 acos 2.0 0.0 -> 0.0 -1.3169578969248168 +acos0067 acos 2.0 -0.0 -> 0.0 1.3169578969248168 +acos0068 acos 23.0 0.0 -> 0.0 -3.8281684713331012 +acos0069 acos 23.0 -0.0 -> 0.0 3.8281684713331012 +acos0070 acos 10000000000000000.0 0.0 -> 0.0 -37.534508668464674 +acos0071 acos 10000000000000000.0 -0.0 -> 0.0 37.534508668464674 +acos0072 acos 9.9999999999999998e+149 0.0 -> 0.0 -346.08091112966679 +acos0073 acos 9.9999999999999998e+149 -0.0 -> 0.0 346.08091112966679 +acos0074 acos 1.0000000000000001e+299 0.0 -> 0.0 -689.16608998577965 +acos0075 acos 1.0000000000000001e+299 -0.0 -> 0.0 689.16608998577965 + +-- random inputs +acos0100 acos -3.3307113324596682 -10.732007530863266 -> 1.8706085694482339 3.113986806554613 +acos0101 acos -2863.952991743291 -2681013315.2571239 -> 1.5707973950301699 22.402607843274758 +acos0102 acos -0.33072639793220088 -0.85055464658253055 -> 1.8219426895922601 0.79250166729311966 +acos0103 acos -2.5722325842097802 -12.703940809821574 -> 1.7699942413107408 3.2565170156527325 +acos0104 acos -42.495233785459583 -0.54039320751337161 -> 3.1288732573153304 4.4424815519735601 +acos0105 acos -1.1363818625856401 9641.1325498630376 -> 1.5709141948820049 -9.8669410553254284 +acos0106 acos -2.4398426824157866e-11 0.33002051890266165 -> 1.570796326818066 -0.32430578041578667 +acos0107 acos -1.3521340428186552 2.9369737912076772 -> 1.9849059192339338 -1.8822893674117942 +acos0108 acos -1.827364706477915 1.0355459232147557 -> 2.5732246307960032 -1.4090688267854969 +acos0109 acos -0.25978373706403546 10.09712669185833 -> 1.5963940386378306 -3.0081673050196063 +acos0110 acos 0.33561778471072551 -4587350.6823999118 -> 1.5707962536333251 16.031960402579539 +acos0111 acos 0.49133444610998445 -0.8071422362990015 -> 1.1908761712801788 0.78573345813187867 +acos0112 acos 0.42196734507823974 -2.4812965431745115 -> 1.414091186100692 1.651707260988172 +acos0113 acos 2.961426210100655 -219.03295695248664 -> 1.5572768319822778 6.0824659885827304 +acos0114 acos 2.886209063652641 -20.38011207220606 -> 1.4302765252297889 3.718201853147642 +acos0115 acos 0.4180568075276509 1.4833433990823484 -> 1.3393834558303042 -1.2079847758301576 +acos0116 acos 52.376111405924718 0.013930429001941001 -> 0.00026601761804024188 -4.6515066691204714 +acos0117 acos 41637948387.625969 1.563418292894041 -> 3.7547918507883548e-11 -25.145424989809381 +acos0118 acos 0.061226659122249526 0.8447234394615154 -> 1.5240280306367315 -0.76791798971140812 +acos0119 acos 2.4480466420442959e+26 0.18002339201384662 -> 7.353756620564798e-28 -61.455650015996376 + +-- values near infinity +acos0200 acos 1.6206860518683021e+308 1.0308426226285283e+308 -> 0.56650826093826223 -710.54206874241561 +acos0201 acos 1.2067735875070062e+308 -1.3429173724390276e+308 -> 0.83874369390864889 710.48017794027498 +acos0202 acos -7.4130145132549047e+307 1.1759130543927645e+308 -> 2.1332729346478536 -710.21871115698752 +acos0203 acos -8.6329426442257249e+307 -1.2316282952184133e+308 -> 2.1821511032444838 710.29752145697148 +acos0204 acos 0.0 1.4289713855849746e+308 -> 1.5707963267948966 -710.24631069738996 +acos0205 acos -0.0 1.3153524545987432e+308 -> 1.5707963267948966 -710.1634604787539 +acos0206 acos 0.0 -9.6229037669269321e+307 -> 1.5707963267948966 709.85091679573691 +acos0207 acos -0.0 -4.9783616421107088e+307 -> 1.5707963267948966 709.19187157911233 +acos0208 acos 1.3937541925739389e+308 0.0 -> 0.0 -710.22135678707264 +acos0209 acos 9.1362388967371536e+307 -0.0 -> 0.0 709.79901953124613 +acos0210 acos -1.3457361220697436e+308 0.0 -> 3.1415926535897931 -710.18629698871848 +acos0211 acos -5.4699090056144284e+307 -0.0 -> 3.1415926535897931 709.28603271085649 +acos0212 acos 1.5880716932358901e+308 5.5638401252339929 -> 3.503519487773873e-308 -710.35187633140583 +acos0213 acos 1.2497211663463164e+308 -3.0456477717911024 -> 2.4370618453197486e-308 710.11227628223412 +acos0214 acos -9.9016224006029528e+307 4.9570427340789056 -> 3.1415926535897931 -709.87946935229468 +acos0215 acos -1.5854071066874139e+308 -4.4233577741497783 -> 3.1415926535897931 710.35019704672004 +acos0216 acos 9.3674623083647628 1.5209559051877979e+308 -> 1.5707963267948966 -710.30869484491086 +acos0217 acos 8.1773832021784383 -6.6093445795000056e+307 -> 1.5707963267948966 709.4752552227792 +acos0218 acos -3.1845935000665104 1.5768856396650893e+308 -> 1.5707963267948966 -710.34480761042687 +acos0219 acos -1.0577303880953903 -6.4574626815735613e+307 -> 1.5707963267948966 709.45200719662046 + +-- values near 0 +acos0220 acos 1.8566986970714045e-320 3.1867234156760402e-321 -> 1.5707963267948966 -3.1867234156760402e-321 +acos0221 acos 7.9050503334599447e-323 -8.8931816251424378e-323 -> 1.5707963267948966 8.8931816251424378e-323 +acos0222 acos -4.4465908125712189e-323 2.4654065097222727e-311 -> 1.5707963267948966 -2.4654065097222727e-311 +acos0223 acos -6.1016916408192619e-311 -2.4703282292062327e-323 -> 1.5707963267948966 2.4703282292062327e-323 +acos0224 acos 0.0 3.4305783621842729e-311 -> 1.5707963267948966 -3.4305783621842729e-311 +acos0225 acos -0.0 1.6117409498633145e-319 -> 1.5707963267948966 -1.6117409498633145e-319 +acos0226 acos 0.0 -4.9900630229965901e-322 -> 1.5707963267948966 4.9900630229965901e-322 +acos0227 acos -0.0 -4.4889279210592818e-311 -> 1.5707963267948966 4.4889279210592818e-311 +acos0228 acos 5.3297678681477214e-312 0.0 -> 1.5707963267948966 -0.0 +acos0229 acos 6.2073425897211614e-313 -0.0 -> 1.5707963267948966 0.0 +acos0230 acos -4.9406564584124654e-324 0.0 -> 1.5707963267948966 -0.0 +acos0231 acos -1.7107517052899003e-318 -0.0 -> 1.5707963267948966 0.0 + +-- special values +acos1000 acos 0.0 0.0 -> 1.5707963267948966 -0.0 +acos1001 acos 0.0 -0.0 -> 1.5707963267948966 0.0 +acos1002 acos -0.0 0.0 -> 1.5707963267948966 -0.0 +acos1003 acos -0.0 -0.0 -> 1.5707963267948966 0.0 +acos1004 acos 0.0 nan -> 1.5707963267948966 nan +acos1005 acos -0.0 nan -> 1.5707963267948966 nan +acos1006 acos -2.3 inf -> 1.5707963267948966 -inf +acos1007 acos -0.0 inf -> 1.5707963267948966 -inf +acos1008 acos 0.0 inf -> 1.5707963267948966 -inf +acos1009 acos 2.3 inf -> 1.5707963267948966 -inf +acos1010 acos -2.3 nan -> nan nan +acos1011 acos 2.3 nan -> nan nan +acos1012 acos -inf 2.3 -> 3.1415926535897931 -inf +acos1013 acos -inf 0.0 -> 3.1415926535897931 -inf +acos1014 acos inf 2.3 -> 0.0 -inf +acos1015 acos inf 0.0 -> 0.0 -inf +acos1016 acos -inf inf -> 2.3561944901923448 -inf +acos1017 acos inf inf -> 0.78539816339744828 -inf +acos1018 acos inf nan -> nan inf ignore-imag-sign +acos1019 acos -inf nan -> nan inf ignore-imag-sign +acos1020 acos nan 0.0 -> nan nan +acos1021 acos nan 2.3 -> nan nan +acos1022 acos nan inf -> nan -inf +acos1023 acos nan nan -> nan nan +acos1024 acos -2.3 -inf -> 1.5707963267948966 inf +acos1025 acos -0.0 -inf -> 1.5707963267948966 inf +acos1026 acos 0.0 -inf -> 1.5707963267948966 inf +acos1027 acos 2.3 -inf -> 1.5707963267948966 inf +acos1028 acos -inf -2.3 -> 3.1415926535897931 inf +acos1029 acos -inf -0.0 -> 3.1415926535897931 inf +acos1030 acos inf -2.3 -> 0.0 inf +acos1031 acos inf -0.0 -> 0.0 inf +acos1032 acos -inf -inf -> 2.3561944901923448 inf +acos1033 acos inf -inf -> 0.78539816339744828 inf +acos1034 acos nan -0.0 -> nan nan +acos1035 acos nan -2.3 -> nan nan +acos1036 acos nan -inf -> nan inf + + +-------------------------------------- +-- acosh: Inverse hyperbolic cosine -- +-------------------------------------- + +-- zeros +acosh0000 acosh 0.0 0.0 -> 0.0 1.5707963267948966 +acosh0001 acosh 0.0 -0.0 -> 0.0 -1.5707963267948966 +acosh0002 acosh -0.0 0.0 -> 0.0 1.5707963267948966 +acosh0003 acosh -0.0 -0.0 -> 0.0 -1.5707963267948966 + +-- branch points: +/-1 +acosh0010 acosh 1.0 0.0 -> 0.0 0.0 +acosh0011 acosh 1.0 -0.0 -> 0.0 -0.0 +acosh0012 acosh -1.0 0.0 -> 0.0 3.1415926535897931 +acosh0013 acosh -1.0 -0.0 -> 0.0 -3.1415926535897931 + +-- values along both sides of real axis +acosh0020 acosh -9.8813129168249309e-324 0.0 -> 0.0 1.5707963267948966 +acosh0021 acosh -9.8813129168249309e-324 -0.0 -> 0.0 -1.5707963267948966 +acosh0022 acosh -1e-305 0.0 -> 0.0 1.5707963267948966 +acosh0023 acosh -1e-305 -0.0 -> 0.0 -1.5707963267948966 +acosh0024 acosh -1e-150 0.0 -> 0.0 1.5707963267948966 +acosh0025 acosh -1e-150 -0.0 -> 0.0 -1.5707963267948966 +acosh0026 acosh -9.9999999999999998e-17 0.0 -> 0.0 1.5707963267948968 +acosh0027 acosh -9.9999999999999998e-17 -0.0 -> 0.0 -1.5707963267948968 +acosh0028 acosh -0.001 0.0 -> 0.0 1.5717963269615634 +acosh0029 acosh -0.001 -0.0 -> 0.0 -1.5717963269615634 +acosh0030 acosh -0.57899999999999996 0.0 -> 0.0 2.1882979816120667 +acosh0031 acosh -0.57899999999999996 -0.0 -> 0.0 -2.1882979816120667 +acosh0032 acosh -0.99999999999999989 0.0 -> 0.0 3.1415926386886319 +acosh0033 acosh -0.99999999999999989 -0.0 -> 0.0 -3.1415926386886319 +acosh0034 acosh -1.0000000000000002 0.0 -> 2.1073424255447014e-08 3.1415926535897931 +acosh0035 acosh -1.0000000000000002 -0.0 -> 2.1073424255447014e-08 -3.1415926535897931 +acosh0036 acosh -1.0009999999999999 0.0 -> 0.044717633608306849 3.1415926535897931 +acosh0037 acosh -1.0009999999999999 -0.0 -> 0.044717633608306849 -3.1415926535897931 +acosh0038 acosh -2.0 0.0 -> 1.3169578969248168 3.1415926535897931 +acosh0039 acosh -2.0 -0.0 -> 1.3169578969248168 -3.1415926535897931 +acosh0040 acosh -23.0 0.0 -> 3.8281684713331012 3.1415926535897931 +acosh0041 acosh -23.0 -0.0 -> 3.8281684713331012 -3.1415926535897931 +acosh0042 acosh -10000000000000000.0 0.0 -> 37.534508668464674 3.1415926535897931 +acosh0043 acosh -10000000000000000.0 -0.0 -> 37.534508668464674 -3.1415926535897931 +acosh0044 acosh -9.9999999999999998e+149 0.0 -> 346.08091112966679 3.1415926535897931 +acosh0045 acosh -9.9999999999999998e+149 -0.0 -> 346.08091112966679 -3.1415926535897931 +acosh0046 acosh -1.0000000000000001e+299 0.0 -> 689.16608998577965 3.1415926535897931 +acosh0047 acosh -1.0000000000000001e+299 -0.0 -> 689.16608998577965 -3.1415926535897931 +acosh0048 acosh 9.8813129168249309e-324 0.0 -> 0.0 1.5707963267948966 +acosh0049 acosh 9.8813129168249309e-324 -0.0 -> 0.0 -1.5707963267948966 +acosh0050 acosh 1e-305 0.0 -> 0.0 1.5707963267948966 +acosh0051 acosh 1e-305 -0.0 -> 0.0 -1.5707963267948966 +acosh0052 acosh 1e-150 0.0 -> 0.0 1.5707963267948966 +acosh0053 acosh 1e-150 -0.0 -> 0.0 -1.5707963267948966 +acosh0054 acosh 9.9999999999999998e-17 0.0 -> 0.0 1.5707963267948966 +acosh0055 acosh 9.9999999999999998e-17 -0.0 -> 0.0 -1.5707963267948966 +acosh0056 acosh 0.001 0.0 -> 0.0 1.56979632662823 +acosh0057 acosh 0.001 -0.0 -> 0.0 -1.56979632662823 +acosh0058 acosh 0.57899999999999996 0.0 -> 0.0 0.95329467197772655 +acosh0059 acosh 0.57899999999999996 -0.0 -> 0.0 -0.95329467197772655 +acosh0060 acosh 0.99999999999999989 0.0 -> 0.0 1.4901161193847656e-08 +acosh0061 acosh 0.99999999999999989 -0.0 -> 0.0 -1.4901161193847656e-08 +acosh0062 acosh 1.0000000000000002 0.0 -> 2.1073424255447014e-08 0.0 +acosh0063 acosh 1.0000000000000002 -0.0 -> 2.1073424255447014e-08 -0.0 +acosh0064 acosh 1.0009999999999999 0.0 -> 0.044717633608306849 0.0 +acosh0065 acosh 1.0009999999999999 -0.0 -> 0.044717633608306849 -0.0 +acosh0066 acosh 2.0 0.0 -> 1.3169578969248168 0.0 +acosh0067 acosh 2.0 -0.0 -> 1.3169578969248168 -0.0 +acosh0068 acosh 23.0 0.0 -> 3.8281684713331012 0.0 +acosh0069 acosh 23.0 -0.0 -> 3.8281684713331012 -0.0 +acosh0070 acosh 10000000000000000.0 0.0 -> 37.534508668464674 0.0 +acosh0071 acosh 10000000000000000.0 -0.0 -> 37.534508668464674 -0.0 +acosh0072 acosh 9.9999999999999998e+149 0.0 -> 346.08091112966679 0.0 +acosh0073 acosh 9.9999999999999998e+149 -0.0 -> 346.08091112966679 -0.0 +acosh0074 acosh 1.0000000000000001e+299 0.0 -> 689.16608998577965 0.0 +acosh0075 acosh 1.0000000000000001e+299 -0.0 -> 689.16608998577965 -0.0 + +-- random inputs +acosh0100 acosh -1.4328589581250843 -1.8370347775558309 -> 1.5526962646549587 -2.190250168435786 +acosh0101 acosh -0.31075819156220957 -1.0772555786839297 -> 0.95139168286193709 -1.7812228089636479 +acosh0102 acosh -1.9044776578070453 -20.485370158932124 -> 3.7177411088932359 -1.6633888745861227 +acosh0103 acosh -0.075642506000858742 -21965976320.873051 -> 24.505907742881991 -1.5707963267983402 +acosh0104 acosh -1.6162271181056307 -3.0369343458696099 -> 1.9407057262861227 -2.0429549461750209 +acosh0105 acosh -0.3103780280298063 0.00018054880018078987 -> 0.00018992877058761416 1.886386995096728 +acosh0106 acosh -9159468751.5897655 5.8014747664273649 -> 23.631201197959193 3.1415926529564078 +acosh0107 acosh -0.037739157550933884 0.21841357493510705 -> 0.21685844960602488 1.6076735133449402 +acosh0108 acosh -8225991.0508394297 0.28318543008913644 -> 16.615956520420287 3.1415926191641019 +acosh0109 acosh -35.620070502302639 0.31303237005015 -> 4.2658980006943965 3.1328013255541873 +acosh0110 acosh 96.729939906820917 -0.029345228372365334 -> 5.2650434775863548 -0.00030338895866972843 +acosh0111 acosh 0.59656024007966491 -2.0412294654163978 -> 1.4923002024287835 -1.312568421900338 +acosh0112 acosh 109.29384112677828 -0.00015454863061533812 -> 5.3871662961545477 -1.4141245154061214e-06 +acosh0113 acosh 8.6705651969361597 -3.6723631649787465 -> 2.9336180958363545 -0.40267362031872861 +acosh0114 acosh 1.8101646445052686 -0.012345132721855478 -> 1.1997148566285769 -0.0081813912760150265 +acosh0115 acosh 52.56897195025288 0.001113916065985443 -> 4.6551827622264135 2.1193445872040307e-05 +acosh0116 acosh 0.28336786164214739 355643992457.40485 -> 27.290343226816528 1.5707963267940999 +acosh0117 acosh 0.73876621291911437 2.8828594541104322e-20 -> 4.2774820978159067e-20 0.73955845836827927 +acosh0118 acosh 0.025865471781718878 37125746064318.492 -> 31.938478989418012 1.5707963267948959 +acosh0119 acosh 2.2047353511780132 0.074712248143489271 -> 1.4286403248698021 0.037997904971626598 + +-- values near infinity +acosh0200 acosh 8.1548592876467785e+307 9.0943779335951128e+307 -> 710.08944620800605 0.83981165425478954 +acosh0201 acosh 1.4237229680972531e+308 -1.0336966617874858e+308 -> 710.4543331094759 -0.6279972876348755 +acosh0202 acosh -1.5014526899738939e+308 1.5670700378448792e+308 -> 710.66420706795464 2.3348137299106697 +acosh0203 acosh -1.0939040375213928e+308 -1.0416960351127978e+308 -> 710.30182863115886 -2.380636147787027 +acosh0204 acosh 0.0 1.476062433559588e+308 -> 710.27873384716929 1.5707963267948966 +acosh0205 acosh -0.0 6.2077210326221094e+307 -> 709.41256457484769 1.5707963267948966 +acosh0206 acosh 0.0 -1.5621899909968308e+308 -> 710.33544449990734 -1.5707963267948966 +acosh0207 acosh -0.0 -8.3556624833839122e+307 -> 709.70971018048317 -1.5707963267948966 +acosh0208 acosh 1.3067079752499342e+308 0.0 -> 710.15686680107228 0.0 +acosh0209 acosh 1.5653640340214026e+308 -0.0 -> 710.33747422926706 -0.0 +acosh0210 acosh -6.9011375992290636e+307 0.0 -> 709.51845699719922 3.1415926535897931 +acosh0211 acosh -9.9539576809926973e+307 -0.0 -> 709.88474095870185 -3.1415926535897931 +acosh0212 acosh 7.6449598518914925e+307 9.5706540768268358 -> 709.62081731754802 1.2518906916769345e-307 +acosh0213 acosh 5.4325410972602197e+307 -7.8064807816522706 -> 709.279177727925 -1.4369851312471974e-307 +acosh0214 acosh -1.1523626112360465e+308 7.0617510038869336 -> 710.03117010216909 3.1415926535897931 +acosh0215 acosh -1.1685027786862599e+308 -5.1568558357925625 -> 710.04507907571417 -3.1415926535897931 +acosh0216 acosh 3.0236370339788721 1.7503248720096417e+308 -> 710.44915723458064 1.5707963267948966 +acosh0217 acosh 6.6108007926031149 -9.1469968225806149e+307 -> 709.80019633903328 -1.5707963267948966 +acosh0218 acosh -5.1096262905623959 6.4484926785412395e+307 -> 709.45061713997973 1.5707963267948966 +acosh0219 acosh -2.8080920608735846 -1.7716118836519368e+308 -> 710.46124562363445 -1.5707963267948966 + +-- values near 0 +acosh0220 acosh 4.5560530326699304e-317 7.3048989121436657e-318 -> 7.3048989121436657e-318 1.5707963267948966 +acosh0221 acosh 4.8754274133585331e-314 -9.8469794897684199e-315 -> 9.8469794897684199e-315 -1.5707963267948966 +acosh0222 acosh -4.6748876009960097e-312 9.7900342887557606e-318 -> 9.7900342887557606e-318 1.5707963267948966 +acosh0223 acosh -4.3136871538399236e-320 -4.9406564584124654e-323 -> 4.9406564584124654e-323 -1.5707963267948966 +acosh0224 acosh 0.0 4.3431013866496774e-314 -> 4.3431013866496774e-314 1.5707963267948966 +acosh0225 acosh -0.0 6.0147334335829184e-317 -> 6.0147334335829184e-317 1.5707963267948966 +acosh0226 acosh 0.0 -1.2880291387081297e-320 -> 1.2880291387081297e-320 -1.5707963267948966 +acosh0227 acosh -0.0 -1.4401563976534621e-317 -> 1.4401563976534621e-317 -1.5707963267948966 +acosh0228 acosh 1.3689680570863091e-313 0.0 -> 0.0 1.5707963267948966 +acosh0229 acosh 1.5304346893494371e-312 -0.0 -> 0.0 -1.5707963267948966 +acosh0230 acosh -3.7450175954766488e-320 0.0 -> 0.0 1.5707963267948966 +acosh0231 acosh -8.4250563080885801e-311 -0.0 -> 0.0 -1.5707963267948966 + +-- special values +acosh1000 acosh 0.0 0.0 -> 0.0 1.5707963267948966 +acosh1001 acosh -0.0 0.0 -> 0.0 1.5707963267948966 +acosh1002 acosh 0.0 inf -> inf 1.5707963267948966 +acosh1003 acosh 2.3 inf -> inf 1.5707963267948966 +acosh1004 acosh -0.0 inf -> inf 1.5707963267948966 +acosh1005 acosh -2.3 inf -> inf 1.5707963267948966 +acosh1006 acosh 0.0 nan -> nan nan +acosh1007 acosh 2.3 nan -> nan nan +acosh1008 acosh -0.0 nan -> nan nan +acosh1009 acosh -2.3 nan -> nan nan +acosh1010 acosh -inf 0.0 -> inf 3.1415926535897931 +acosh1011 acosh -inf 2.3 -> inf 3.1415926535897931 +acosh1012 acosh inf 0.0 -> inf 0.0 +acosh1013 acosh inf 2.3 -> inf 0.0 +acosh1014 acosh -inf inf -> inf 2.3561944901923448 +acosh1015 acosh inf inf -> inf 0.78539816339744828 +acosh1016 acosh inf nan -> inf nan +acosh1017 acosh -inf nan -> inf nan +acosh1018 acosh nan 0.0 -> nan nan +acosh1019 acosh nan 2.3 -> nan nan +acosh1020 acosh nan inf -> inf nan +acosh1021 acosh nan nan -> nan nan +acosh1022 acosh 0.0 -0.0 -> 0.0 -1.5707963267948966 +acosh1023 acosh -0.0 -0.0 -> 0.0 -1.5707963267948966 +acosh1024 acosh 0.0 -inf -> inf -1.5707963267948966 +acosh1025 acosh 2.3 -inf -> inf -1.5707963267948966 +acosh1026 acosh -0.0 -inf -> inf -1.5707963267948966 +acosh1027 acosh -2.3 -inf -> inf -1.5707963267948966 +acosh1028 acosh -inf -0.0 -> inf -3.1415926535897931 +acosh1029 acosh -inf -2.3 -> inf -3.1415926535897931 +acosh1030 acosh inf -0.0 -> inf -0.0 +acosh1031 acosh inf -2.3 -> inf -0.0 +acosh1032 acosh -inf -inf -> inf -2.3561944901923448 +acosh1033 acosh inf -inf -> inf -0.78539816339744828 +acosh1034 acosh nan -0.0 -> nan nan +acosh1035 acosh nan -2.3 -> nan nan +acosh1036 acosh nan -inf -> inf nan + + +------------------------ +-- asin: Inverse sine -- +------------------------ + +-- zeros +asin0000 asin 0.0 0.0 -> 0.0 0.0 +asin0001 asin 0.0 -0.0 -> 0.0 -0.0 +asin0002 asin -0.0 0.0 -> -0.0 0.0 +asin0003 asin -0.0 -0.0 -> -0.0 -0.0 + +-- branch points: +/-1 +asin0010 asin 1.0 0.0 -> 1.5707963267948966 0.0 +asin0011 asin 1.0 -0.0 -> 1.5707963267948966 -0.0 +asin0012 asin -1.0 0.0 -> -1.5707963267948966 0.0 +asin0013 asin -1.0 -0.0 -> -1.5707963267948966 -0.0 + +-- values along both sides of real axis +asin0020 asin -9.8813129168249309e-324 0.0 -> -9.8813129168249309e-324 0.0 +asin0021 asin -9.8813129168249309e-324 -0.0 -> -9.8813129168249309e-324 -0.0 +asin0022 asin -1e-305 0.0 -> -1e-305 0.0 +asin0023 asin -1e-305 -0.0 -> -1e-305 -0.0 +asin0024 asin -1e-150 0.0 -> -1e-150 0.0 +asin0025 asin -1e-150 -0.0 -> -1e-150 -0.0 +asin0026 asin -9.9999999999999998e-17 0.0 -> -9.9999999999999998e-17 0.0 +asin0027 asin -9.9999999999999998e-17 -0.0 -> -9.9999999999999998e-17 -0.0 +asin0028 asin -0.001 0.0 -> -0.0010000001666667416 0.0 +asin0029 asin -0.001 -0.0 -> -0.0010000001666667416 -0.0 +asin0030 asin -0.57899999999999996 0.0 -> -0.61750165481717001 0.0 +asin0031 asin -0.57899999999999996 -0.0 -> -0.61750165481717001 -0.0 +asin0032 asin -0.99999999999999989 0.0 -> -1.5707963118937354 0.0 +asin0033 asin -0.99999999999999989 -0.0 -> -1.5707963118937354 -0.0 +asin0034 asin -1.0000000000000002 0.0 -> -1.5707963267948966 2.1073424255447014e-08 +asin0035 asin -1.0000000000000002 -0.0 -> -1.5707963267948966 -2.1073424255447014e-08 +asin0036 asin -1.0009999999999999 0.0 -> -1.5707963267948966 0.044717633608306849 +asin0037 asin -1.0009999999999999 -0.0 -> -1.5707963267948966 -0.044717633608306849 +asin0038 asin -2.0 0.0 -> -1.5707963267948966 1.3169578969248168 +asin0039 asin -2.0 -0.0 -> -1.5707963267948966 -1.3169578969248168 +asin0040 asin -23.0 0.0 -> -1.5707963267948966 3.8281684713331012 +asin0041 asin -23.0 -0.0 -> -1.5707963267948966 -3.8281684713331012 +asin0042 asin -10000000000000000.0 0.0 -> -1.5707963267948966 37.534508668464674 +asin0043 asin -10000000000000000.0 -0.0 -> -1.5707963267948966 -37.534508668464674 +asin0044 asin -9.9999999999999998e+149 0.0 -> -1.5707963267948966 346.08091112966679 +asin0045 asin -9.9999999999999998e+149 -0.0 -> -1.5707963267948966 -346.08091112966679 +asin0046 asin -1.0000000000000001e+299 0.0 -> -1.5707963267948966 689.16608998577965 +asin0047 asin -1.0000000000000001e+299 -0.0 -> -1.5707963267948966 -689.16608998577965 +asin0048 asin 9.8813129168249309e-324 0.0 -> 9.8813129168249309e-324 0.0 +asin0049 asin 9.8813129168249309e-324 -0.0 -> 9.8813129168249309e-324 -0.0 +asin0050 asin 1e-305 0.0 -> 1e-305 0.0 +asin0051 asin 1e-305 -0.0 -> 1e-305 -0.0 +asin0052 asin 1e-150 0.0 -> 1e-150 0.0 +asin0053 asin 1e-150 -0.0 -> 1e-150 -0.0 +asin0054 asin 9.9999999999999998e-17 0.0 -> 9.9999999999999998e-17 0.0 +asin0055 asin 9.9999999999999998e-17 -0.0 -> 9.9999999999999998e-17 -0.0 +asin0056 asin 0.001 0.0 -> 0.0010000001666667416 0.0 +asin0057 asin 0.001 -0.0 -> 0.0010000001666667416 -0.0 +asin0058 asin 0.57899999999999996 0.0 -> 0.61750165481717001 0.0 +asin0059 asin 0.57899999999999996 -0.0 -> 0.61750165481717001 -0.0 +asin0060 asin 0.99999999999999989 0.0 -> 1.5707963118937354 0.0 +asin0061 asin 0.99999999999999989 -0.0 -> 1.5707963118937354 -0.0 +asin0062 asin 1.0000000000000002 0.0 -> 1.5707963267948966 2.1073424255447014e-08 +asin0063 asin 1.0000000000000002 -0.0 -> 1.5707963267948966 -2.1073424255447014e-08 +asin0064 asin 1.0009999999999999 0.0 -> 1.5707963267948966 0.044717633608306849 +asin0065 asin 1.0009999999999999 -0.0 -> 1.5707963267948966 -0.044717633608306849 +asin0066 asin 2.0 0.0 -> 1.5707963267948966 1.3169578969248168 +asin0067 asin 2.0 -0.0 -> 1.5707963267948966 -1.3169578969248168 +asin0068 asin 23.0 0.0 -> 1.5707963267948966 3.8281684713331012 +asin0069 asin 23.0 -0.0 -> 1.5707963267948966 -3.8281684713331012 +asin0070 asin 10000000000000000.0 0.0 -> 1.5707963267948966 37.534508668464674 +asin0071 asin 10000000000000000.0 -0.0 -> 1.5707963267948966 -37.534508668464674 +asin0072 asin 9.9999999999999998e+149 0.0 -> 1.5707963267948966 346.08091112966679 +asin0073 asin 9.9999999999999998e+149 -0.0 -> 1.5707963267948966 -346.08091112966679 +asin0074 asin 1.0000000000000001e+299 0.0 -> 1.5707963267948966 689.16608998577965 +asin0075 asin 1.0000000000000001e+299 -0.0 -> 1.5707963267948966 -689.16608998577965 + +-- random inputs +asin0100 asin -1.5979555835086083 -0.15003009814595247 -> -1.4515369557405788 -1.0544476399790823 +asin0101 asin -0.57488225895317679 -9.6080397838952743e-13 -> -0.61246024460412851 -1.174238005400403e-12 +asin0102 asin -3.6508087930516249 -0.36027527093220152 -> -1.4685890605305874 -1.9742273007152038 +asin0103 asin -1.5238659792326819 -1.1360813516996364 -> -0.86080051691147275 -1.3223742205689195 +asin0104 asin -1592.0639045555306 -0.72362427935018236 -> -1.5703418071175179 -8.0659336918729228 +asin0105 asin -0.19835471371312019 4.2131508416697709 -> -0.045777831019935149 2.1461732751933171 +asin0106 asin -1.918471054430213 0.40603305079779234 -> -1.3301396585791556 1.30263642314981 +asin0107 asin -254495.01623373642 0.71084414434470822 -> -1.5707935336394359 13.140183712762321 +asin0108 asin -0.31315882715691157 3.9647994288429866 -> -0.076450403840916004 2.0889762138713457 +asin0109 asin -0.90017064284720816 1.2530659485907105 -> -0.53466509741943447 1.1702811557577 +asin0110 asin 2.1615181696571075 -0.14058647488229523 -> 1.4976166323896871 -1.4085811039334604 +asin0111 asin 1.2104749210707795 -0.85732484485298999 -> 0.83913071588343924 -1.0681719250525901 +asin0112 asin 1.7059733185128891 -0.84032966373156581 -> 1.0510900815816229 -1.2967979791361652 +asin0113 asin 9.9137085017290687 -1.4608383970250893 -> 1.4237704820128891 -2.995414677560686 +asin0114 asin 117.12344751041495 -5453908091.5334015 -> 2.1475141411392012e-08 -23.112745450217066 +asin0115 asin 0.081041187798029227 0.067054349860173196 -> 0.080946786856771813 0.067223991060639698 +asin0116 asin 46.635472322049949 2.3835190718056678 -> 1.5197194940010779 4.5366989600972083 +asin0117 asin 3907.0687961127105 19.144021886390181 -> 1.5658965233083235 8.9637018715924217 +asin0118 asin 1.0889312322308273 509.01577883554768 -> 0.0021392803817829316 6.9256294494524706 +asin0119 asin 0.10851518277509224 1.5612510908217476 -> 0.058491014243902621 1.2297075725621327 + +-- values near infinity +asin0200 asin 1.5230241998821499e+308 5.5707228994084525e+307 -> 1.2201446370892068 710.37283486535966 +asin0201 asin 8.1334317698672204e+307 -9.2249425197872451e+307 -> 0.72259991284020042 -710.0962453049026 +asin0202 asin -9.9138506659241768e+307 6.701544526434995e+307 -> -0.97637511742194594 710.06887486671371 +asin0203 asin -1.4141298868173842e+308 -5.401505134514191e+307 -> -1.2059319055160587 -710.30396478954628 +asin0204 asin 0.0 9.1618092977897431e+307 -> 0.0 709.80181441050593 +asin0205 asin -0.0 6.8064342551939755e+307 -> -0.0 709.50463910853489 +asin0206 asin 0.0 -6.4997516454798215e+307 -> 0.0 -709.45853469751592 +asin0207 asin -0.0 -1.6767449053345242e+308 -> -0.0 -710.4062101803022 +asin0208 asin 5.4242749957378916e+307 0.0 -> 1.5707963267948966 709.27765497888902 +asin0209 asin 9.5342145121164749e+307 -0.0 -> 1.5707963267948966 -709.84165758595907 +asin0210 asin -7.0445698006201847e+307 0.0 -> -1.5707963267948966 709.53902780872136 +asin0211 asin -1.0016025569769706e+308 -0.0 -> -1.5707963267948966 -709.89095709697881 +asin0212 asin 1.6552203778877204e+308 0.48761543336249491 -> 1.5707963267948966 710.39328998153474 +asin0213 asin 1.2485712830384869e+308 -4.3489311161278899 -> 1.5707963267948966 -710.1113557467786 +asin0214 asin -1.5117842813353125e+308 5.123452666102434 -> -1.5707963267948966 710.30264641923031 +asin0215 asin -1.3167634313008016e+308 -0.52939679793528982 -> -1.5707963267948966 -710.16453260239768 +asin0216 asin 0.80843929176985907 1.0150851827767876e+308 -> 7.9642507396113875e-309 709.90432835561637 +asin0217 asin 8.2544809829680901 -1.7423548140539474e+308 -> 4.7375430746865733e-308 -710.44459336242164 +asin0218 asin -5.2499000118824295 4.6655578977512214e+307 -> -1.1252459249113292e-307 709.1269781491103 +asin0219 asin -5.9904782760833433 -4.7315689314781163e+307 -> -1.2660659419394637e-307 -709.14102757522312 + +-- special values +asin1000 asin -0.0 0.0 -> -0.0 0.0 +asin1001 asin 0.0 0.0 -> 0.0 0.0 +asin1002 asin -0.0 -0.0 -> -0.0 -0.0 +asin1003 asin 0.0 -0.0 -> 0.0 -0.0 +asin1004 asin -inf 0.0 -> -1.5707963267948966 inf +asin1005 asin -inf 2.2999999999999998 -> -1.5707963267948966 inf +asin1006 asin nan 0.0 -> nan nan +asin1007 asin nan 2.2999999999999998 -> nan nan +asin1008 asin -0.0 inf -> -0.0 inf +asin1009 asin -2.2999999999999998 inf -> -0.0 inf +asin1010 asin -inf inf -> -0.78539816339744828 inf +asin1011 asin nan inf -> nan inf +asin1012 asin -0.0 nan -> -0.0 nan +asin1013 asin -2.2999999999999998 nan -> nan nan +asin1014 asin -inf nan -> nan inf ignore-imag-sign +asin1015 asin nan nan -> nan nan +asin1016 asin inf 0.0 -> 1.5707963267948966 inf +asin1017 asin inf 2.2999999999999998 -> 1.5707963267948966 inf +asin1018 asin 0.0 inf -> 0.0 inf +asin1019 asin 2.2999999999999998 inf -> 0.0 inf +asin1020 asin inf inf -> 0.78539816339744828 inf +asin1021 asin 0.0 nan -> 0.0 nan +asin1022 asin 2.2999999999999998 nan -> nan nan +asin1023 asin inf nan -> nan inf ignore-imag-sign +asin1024 asin inf -0.0 -> 1.5707963267948966 -inf +asin1025 asin inf -2.2999999999999998 -> 1.5707963267948966 -inf +asin1026 asin nan -0.0 -> nan nan +asin1027 asin nan -2.2999999999999998 -> nan nan +asin1028 asin 0.0 -inf -> 0.0 -inf +asin1029 asin 2.2999999999999998 -inf -> 0.0 -inf +asin1030 asin inf -inf -> 0.78539816339744828 -inf +asin1031 asin nan -inf -> nan -inf +asin1032 asin -inf -0.0 -> -1.5707963267948966 -inf +asin1033 asin -inf -2.2999999999999998 -> -1.5707963267948966 -inf +asin1034 asin -0.0 -inf -> -0.0 -inf +asin1035 asin -2.2999999999999998 -inf -> -0.0 -inf +asin1036 asin -inf -inf -> -0.78539816339744828 -inf + + +------------------------------------ +-- asinh: Inverse hyperbolic sine -- +------------------------------------ + +-- zeros +asinh0000 asinh 0.0 0.0 -> 0.0 0.0 +asinh0001 asinh 0.0 -0.0 -> 0.0 -0.0 +asinh0002 asinh -0.0 0.0 -> -0.0 0.0 +asinh0003 asinh -0.0 -0.0 -> -0.0 -0.0 + +-- branch points: +/-i +asinh0010 asinh 0.0 1.0 -> 0.0 1.5707963267948966 +asinh0011 asinh 0.0 -1.0 -> 0.0 -1.5707963267948966 +asinh0012 asinh -0.0 1.0 -> -0.0 1.5707963267948966 +asinh0013 asinh -0.0 -1.0 -> -0.0 -1.5707963267948966 + +-- values along both sides of imaginary axis +asinh0020 asinh 0.0 -9.8813129168249309e-324 -> 0.0 -9.8813129168249309e-324 +asinh0021 asinh -0.0 -9.8813129168249309e-324 -> -0.0 -9.8813129168249309e-324 +asinh0022 asinh 0.0 -1e-305 -> 0.0 -1e-305 +asinh0023 asinh -0.0 -1e-305 -> -0.0 -1e-305 +asinh0024 asinh 0.0 -1e-150 -> 0.0 -1e-150 +asinh0025 asinh -0.0 -1e-150 -> -0.0 -1e-150 +asinh0026 asinh 0.0 -9.9999999999999998e-17 -> 0.0 -9.9999999999999998e-17 +asinh0027 asinh -0.0 -9.9999999999999998e-17 -> -0.0 -9.9999999999999998e-17 +asinh0028 asinh 0.0 -0.001 -> 0.0 -0.0010000001666667416 +asinh0029 asinh -0.0 -0.001 -> -0.0 -0.0010000001666667416 +asinh0030 asinh 0.0 -0.57899999999999996 -> 0.0 -0.61750165481717001 +asinh0031 asinh -0.0 -0.57899999999999996 -> -0.0 -0.61750165481717001 +asinh0032 asinh 0.0 -0.99999999999999989 -> 0.0 -1.5707963118937354 +asinh0033 asinh -0.0 -0.99999999999999989 -> -0.0 -1.5707963118937354 +asinh0034 asinh 0.0 -1.0000000000000002 -> 2.1073424255447014e-08 -1.5707963267948966 +asinh0035 asinh -0.0 -1.0000000000000002 -> -2.1073424255447014e-08 -1.5707963267948966 +asinh0036 asinh 0.0 -1.0009999999999999 -> 0.044717633608306849 -1.5707963267948966 +asinh0037 asinh -0.0 -1.0009999999999999 -> -0.044717633608306849 -1.5707963267948966 +asinh0038 asinh 0.0 -2.0 -> 1.3169578969248168 -1.5707963267948966 +asinh0039 asinh -0.0 -2.0 -> -1.3169578969248168 -1.5707963267948966 +asinh0040 asinh 0.0 -20.0 -> 3.6882538673612966 -1.5707963267948966 +asinh0041 asinh -0.0 -20.0 -> -3.6882538673612966 -1.5707963267948966 +asinh0042 asinh 0.0 -10000000000000000.0 -> 37.534508668464674 -1.5707963267948966 +asinh0043 asinh -0.0 -10000000000000000.0 -> -37.534508668464674 -1.5707963267948966 +asinh0044 asinh 0.0 -9.9999999999999998e+149 -> 346.08091112966679 -1.5707963267948966 +asinh0045 asinh -0.0 -9.9999999999999998e+149 -> -346.08091112966679 -1.5707963267948966 +asinh0046 asinh 0.0 -1.0000000000000001e+299 -> 689.16608998577965 -1.5707963267948966 +asinh0047 asinh -0.0 -1.0000000000000001e+299 -> -689.16608998577965 -1.5707963267948966 +asinh0048 asinh 0.0 9.8813129168249309e-324 -> 0.0 9.8813129168249309e-324 +asinh0049 asinh -0.0 9.8813129168249309e-324 -> -0.0 9.8813129168249309e-324 +asinh0050 asinh 0.0 1e-305 -> 0.0 1e-305 +asinh0051 asinh -0.0 1e-305 -> -0.0 1e-305 +asinh0052 asinh 0.0 1e-150 -> 0.0 1e-150 +asinh0053 asinh -0.0 1e-150 -> -0.0 1e-150 +asinh0054 asinh 0.0 9.9999999999999998e-17 -> 0.0 9.9999999999999998e-17 +asinh0055 asinh -0.0 9.9999999999999998e-17 -> -0.0 9.9999999999999998e-17 +asinh0056 asinh 0.0 0.001 -> 0.0 0.0010000001666667416 +asinh0057 asinh -0.0 0.001 -> -0.0 0.0010000001666667416 +asinh0058 asinh 0.0 0.57899999999999996 -> 0.0 0.61750165481717001 +asinh0059 asinh -0.0 0.57899999999999996 -> -0.0 0.61750165481717001 +asinh0060 asinh 0.0 0.99999999999999989 -> 0.0 1.5707963118937354 +asinh0061 asinh -0.0 0.99999999999999989 -> -0.0 1.5707963118937354 +asinh0062 asinh 0.0 1.0000000000000002 -> 2.1073424255447014e-08 1.5707963267948966 +asinh0063 asinh -0.0 1.0000000000000002 -> -2.1073424255447014e-08 1.5707963267948966 +asinh0064 asinh 0.0 1.0009999999999999 -> 0.044717633608306849 1.5707963267948966 +asinh0065 asinh -0.0 1.0009999999999999 -> -0.044717633608306849 1.5707963267948966 +asinh0066 asinh 0.0 2.0 -> 1.3169578969248168 1.5707963267948966 +asinh0067 asinh -0.0 2.0 -> -1.3169578969248168 1.5707963267948966 +asinh0068 asinh 0.0 20.0 -> 3.6882538673612966 1.5707963267948966 +asinh0069 asinh -0.0 20.0 -> -3.6882538673612966 1.5707963267948966 +asinh0070 asinh 0.0 10000000000000000.0 -> 37.534508668464674 1.5707963267948966 +asinh0071 asinh -0.0 10000000000000000.0 -> -37.534508668464674 1.5707963267948966 +asinh0072 asinh 0.0 9.9999999999999998e+149 -> 346.08091112966679 1.5707963267948966 +asinh0073 asinh -0.0 9.9999999999999998e+149 -> -346.08091112966679 1.5707963267948966 +asinh0074 asinh 0.0 1.0000000000000001e+299 -> 689.16608998577965 1.5707963267948966 +asinh0075 asinh -0.0 1.0000000000000001e+299 -> -689.16608998577965 1.5707963267948966 + +-- random inputs +asinh0100 asinh -0.5946402853710423 -0.044506548910000145 -> -0.56459775392653022 -0.038256221441536356 +asinh0101 asinh -0.19353958046180916 -0.017489624793193454 -> -0.19237926804196651 -0.017171741895336792 +asinh0102 asinh -0.033117585138955893 -8.5256414015933757 -> -2.8327758348650969 -1.5668848791092411 +asinh0103 asinh -1.5184043184035716 -0.73491245339073275 -> -1.2715891419764005 -0.39204624408542355 +asinh0104 asinh -0.60716120271208818 -0.28900743958436542 -> -0.59119299421187232 -0.24745931678118135 +asinh0105 asinh -0.0237177865112429 2.8832601052166313 -> -1.7205820772413236 1.5620261702963094 +asinh0106 asinh -2.3906812342743979 2.6349216848574013 -> -1.9609636249445124 0.8142142660574706 +asinh0107 asinh -0.0027605019787620517 183.85588476550555 -> -5.9072920005445066 1.5707813120847871 +asinh0108 asinh -0.99083661164404713 0.028006797051617648 -> -0.8750185251283995 0.019894099615994653 +asinh0109 asinh -3.0362951937986393 0.86377266758504867 -> -1.8636030714685221 0.26475058859950168 +asinh0110 asinh 0.34438464536152769 -0.71603790174885029 -> 0.43985415690734164 -0.71015037409294324 +asinh0111 asinh 4.4925124413876256 -60604595352.871613 -> 25.520783738612078 -1.5707963267207683 +asinh0112 asinh 2.3213991428170337 -7.5459667007307258 -> 2.7560464993451643 -1.270073210856117 +asinh0113 asinh 0.21291939741682028 -1.2720428814784408 -> 0.77275088137338266 -1.3182099250896895 +asinh0114 asinh 6.6447359379455957 -0.97196191666946996 -> 2.602830695139672 -0.14368247412319965 +asinh0115 asinh 7.1326256655083746 2.1516360452706857 -> 2.7051146374367212 0.29051701669727581 +asinh0116 asinh 0.18846550905063442 3.4705348585339832 -> 1.917697875799296 1.514155593347924 +asinh0117 asinh 0.19065075303281598 0.26216814548222012 -> 0.19603050785932474 0.26013422809614117 +asinh0118 asinh 2.0242004665739719 0.70510281647495787 -> 1.4970366212896002 0.30526007200481453 +asinh0119 asinh 37.336596461576057 717.29157391678234 -> 7.269981997945294 1.5187910219576033 + +-- values near infinity +asinh0200 asinh 1.0760517500874541e+308 1.1497786241240167e+308 -> 710.34346055651815 0.81850936961793475 +asinh0201 asinh 1.1784839328845529e+308 -1.6478429586716638e+308 -> 710.59536255783678 -0.94996311735607697 +asinh0202 asinh -4.8777682248909193e+307 1.4103736217538474e+308 -> -710.28970147376992 1.2378239519096443 +asinh0203 asinh -1.2832478903233108e+308 -1.5732392613155698e+308 -> -710.59750164290745 -0.88657181439322452 +asinh0204 asinh 0.0 6.8431383856345372e+307 -> 709.51001718444604 1.5707963267948966 +asinh0205 asinh -0.0 8.601822432238051e+307 -> -709.73874482126689 1.5707963267948966 +asinh0206 asinh 0.0 -5.5698396067303782e+307 -> 709.30413698733742 -1.5707963267948966 +asinh0207 asinh -0.0 -7.1507777734621804e+307 -> -709.55399186002705 -1.5707963267948966 +asinh0208 asinh 1.6025136110019349e+308 0.0 -> 710.3609292261076 0.0 +asinh0209 asinh 1.3927819858239114e+308 -0.0 -> 710.22065899832899 -0.0 +asinh0210 asinh -6.0442994056210995e+307 0.0 -> -709.38588631057621 0.0 +asinh0211 asinh -1.2775271979042634e+308 -0.0 -> -710.13428215553972 -0.0 +asinh0212 asinh 1.0687496260268489e+308 1.0255615699476961 -> 709.95584521407841 9.5959010882679093e-309 +asinh0213 asinh 1.0050967333370962e+308 -0.87668970117333433 -> 709.89443961168183 -8.7224410556242882e-309 +asinh0214 asinh -5.7161452814862392e+307 8.2377808413450122 -> -709.33006540611166 1.4411426644501116e-307 +asinh0215 asinh -8.2009040727653315e+307 -6.407409526654976 -> -709.69101513070109 -7.8130526461510088e-308 +asinh0216 asinh 6.4239368496483982 1.6365990821551427e+308 -> 710.38197618101287 1.5707963267948966 +asinh0217 asinh 5.4729111423315882 -1.1227237438144211e+308 -> 710.00511346983546 -1.5707963267948966 +asinh0218 asinh -8.3455818297412723 1.443172020182019e+308 -> -710.25619930551818 1.5707963267948966 +asinh0219 asinh -2.6049726230372441 -1.7952291144022702e+308 -> -710.47448847685644 -1.5707963267948966 + +-- values near 0 +asinh0220 asinh 1.2940113339664088e-314 6.9169190417774516e-323 -> 1.2940113339664088e-314 6.9169190417774516e-323 +asinh0221 asinh 2.3848478863874649e-315 -3.1907655025717717e-310 -> 2.3848478863874649e-315 -3.1907655025717717e-310 +asinh0222 asinh -3.0097643679641622e-316 4.6936236354918422e-322 -> -3.0097643679641622e-316 4.6936236354918422e-322 +asinh0223 asinh -1.787997087755751e-308 -8.5619622834902341e-310 -> -1.787997087755751e-308 -8.5619622834902341e-310 +asinh0224 asinh 0.0 1.2491433448427325e-314 -> 0.0 1.2491433448427325e-314 +asinh0225 asinh -0.0 2.5024072154538062e-308 -> -0.0 2.5024072154538062e-308 +asinh0226 asinh 0.0 -2.9643938750474793e-323 -> 0.0 -2.9643938750474793e-323 +asinh0227 asinh -0.0 -2.9396905927554169e-320 -> -0.0 -2.9396905927554169e-320 +asinh0228 asinh 5.64042930029359e-317 0.0 -> 5.64042930029359e-317 0.0 +asinh0229 asinh 3.3833911866596068e-318 -0.0 -> 3.3833911866596068e-318 -0.0 +asinh0230 asinh -4.9406564584124654e-324 0.0 -> -4.9406564584124654e-324 0.0 +asinh0231 asinh -2.2211379227994845e-308 -0.0 -> -2.2211379227994845e-308 -0.0 + +-- special values +asinh1000 asinh 0.0 0.0 -> 0.0 0.0 +asinh1001 asinh 0.0 -0.0 -> 0.0 -0.0 +asinh1002 asinh -0.0 0.0 -> -0.0 0.0 +asinh1003 asinh -0.0 -0.0 -> -0.0 -0.0 +asinh1004 asinh 0.0 inf -> inf 1.5707963267948966 +asinh1005 asinh 2.3 inf -> inf 1.5707963267948966 +asinh1006 asinh 0.0 nan -> nan nan +asinh1007 asinh 2.3 nan -> nan nan +asinh1008 asinh inf 0.0 -> inf 0.0 +asinh1009 asinh inf 2.3 -> inf 0.0 +asinh1010 asinh inf inf -> inf 0.78539816339744828 +asinh1011 asinh inf nan -> inf nan +asinh1012 asinh nan 0.0 -> nan 0.0 +asinh1013 asinh nan 2.3 -> nan nan +asinh1014 asinh nan inf -> inf nan ignore-real-sign +asinh1015 asinh nan nan -> nan nan +asinh1016 asinh 0.0 -inf -> inf -1.5707963267948966 +asinh1017 asinh 2.3 -inf -> inf -1.5707963267948966 +asinh1018 asinh inf -0.0 -> inf -0.0 +asinh1019 asinh inf -2.3 -> inf -0.0 +asinh1020 asinh inf -inf -> inf -0.78539816339744828 +asinh1021 asinh nan -0.0 -> nan -0.0 +asinh1022 asinh nan -2.3 -> nan nan +asinh1023 asinh nan -inf -> inf nan ignore-real-sign +asinh1024 asinh -0.0 -inf -> -inf -1.5707963267948966 +asinh1025 asinh -2.3 -inf -> -inf -1.5707963267948966 +asinh1026 asinh -0.0 nan -> nan nan +asinh1027 asinh -2.3 nan -> nan nan +asinh1028 asinh -inf -0.0 -> -inf -0.0 +asinh1029 asinh -inf -2.3 -> -inf -0.0 +asinh1030 asinh -inf -inf -> -inf -0.78539816339744828 +asinh1031 asinh -inf nan -> -inf nan +asinh1032 asinh -0.0 inf -> -inf 1.5707963267948966 +asinh1033 asinh -2.3 inf -> -inf 1.5707963267948966 +asinh1034 asinh -inf 0.0 -> -inf 0.0 +asinh1035 asinh -inf 2.3 -> -inf 0.0 +asinh1036 asinh -inf inf -> -inf 0.78539816339744828 + + +--------------------------- +-- atan: Inverse tangent -- +--------------------------- + +-- zeros +-- These are tested in testAtanSign in test_cmath.py +-- atan0000 atan 0.0 0.0 -> 0.0 0.0 +-- atan0001 atan 0.0 -0.0 -> 0.0 -0.0 +-- atan0002 atan -0.0 0.0 -> -0.0 0.0 +-- atan0003 atan -0.0 -0.0 -> -0.0 -0.0 + +-- values along both sides of imaginary axis +atan0010 atan 0.0 -9.8813129168249309e-324 -> 0.0 -9.8813129168249309e-324 +atan0011 atan -0.0 -9.8813129168249309e-324 -> -0.0 -9.8813129168249309e-324 +atan0012 atan 0.0 -1e-305 -> 0.0 -1e-305 +atan0013 atan -0.0 -1e-305 -> -0.0 -1e-305 +atan0014 atan 0.0 -1e-150 -> 0.0 -1e-150 +atan0015 atan -0.0 -1e-150 -> -0.0 -1e-150 +atan0016 atan 0.0 -9.9999999999999998e-17 -> 0.0 -9.9999999999999998e-17 +atan0017 atan -0.0 -9.9999999999999998e-17 -> -0.0 -9.9999999999999998e-17 +atan0018 atan 0.0 -0.001 -> 0.0 -0.0010000003333335333 +atan0019 atan -0.0 -0.001 -> -0.0 -0.0010000003333335333 +atan0020 atan 0.0 -0.57899999999999996 -> 0.0 -0.6609570902866303 +atan0021 atan -0.0 -0.57899999999999996 -> -0.0 -0.6609570902866303 +atan0022 atan 0.0 -0.99999999999999989 -> 0.0 -18.714973875118524 +atan0023 atan -0.0 -0.99999999999999989 -> -0.0 -18.714973875118524 +atan0024 atan 0.0 -1.0000000000000002 -> 1.5707963267948966 -18.36840028483855 +atan0025 atan -0.0 -1.0000000000000002 -> -1.5707963267948966 -18.36840028483855 +atan0026 atan 0.0 -1.0009999999999999 -> 1.5707963267948966 -3.8007011672919218 +atan0027 atan -0.0 -1.0009999999999999 -> -1.5707963267948966 -3.8007011672919218 +atan0028 atan 0.0 -2.0 -> 1.5707963267948966 -0.54930614433405489 +atan0029 atan -0.0 -2.0 -> -1.5707963267948966 -0.54930614433405489 +atan0030 atan 0.0 -20.0 -> 1.5707963267948966 -0.050041729278491265 +atan0031 atan -0.0 -20.0 -> -1.5707963267948966 -0.050041729278491265 +atan0032 atan 0.0 -10000000000000000.0 -> 1.5707963267948966 -9.9999999999999998e-17 +atan0033 atan -0.0 -10000000000000000.0 -> -1.5707963267948966 -9.9999999999999998e-17 +atan0034 atan 0.0 -9.9999999999999998e+149 -> 1.5707963267948966 -1e-150 +atan0035 atan -0.0 -9.9999999999999998e+149 -> -1.5707963267948966 -1e-150 +atan0036 atan 0.0 -1.0000000000000001e+299 -> 1.5707963267948966 -9.9999999999999999e-300 +atan0037 atan -0.0 -1.0000000000000001e+299 -> -1.5707963267948966 -9.9999999999999999e-300 +atan0038 atan 0.0 9.8813129168249309e-324 -> 0.0 9.8813129168249309e-324 +atan0039 atan -0.0 9.8813129168249309e-324 -> -0.0 9.8813129168249309e-324 +atan0040 atan 0.0 1e-305 -> 0.0 1e-305 +atan0041 atan -0.0 1e-305 -> -0.0 1e-305 +atan0042 atan 0.0 1e-150 -> 0.0 1e-150 +atan0043 atan -0.0 1e-150 -> -0.0 1e-150 +atan0044 atan 0.0 9.9999999999999998e-17 -> 0.0 9.9999999999999998e-17 +atan0045 atan -0.0 9.9999999999999998e-17 -> -0.0 9.9999999999999998e-17 +atan0046 atan 0.0 0.001 -> 0.0 0.0010000003333335333 +atan0047 atan -0.0 0.001 -> -0.0 0.0010000003333335333 +atan0048 atan 0.0 0.57899999999999996 -> 0.0 0.6609570902866303 +atan0049 atan -0.0 0.57899999999999996 -> -0.0 0.6609570902866303 +atan0050 atan 0.0 0.99999999999999989 -> 0.0 18.714973875118524 +atan0051 atan -0.0 0.99999999999999989 -> -0.0 18.714973875118524 +atan0052 atan 0.0 1.0000000000000002 -> 1.5707963267948966 18.36840028483855 +atan0053 atan -0.0 1.0000000000000002 -> -1.5707963267948966 18.36840028483855 +atan0054 atan 0.0 1.0009999999999999 -> 1.5707963267948966 3.8007011672919218 +atan0055 atan -0.0 1.0009999999999999 -> -1.5707963267948966 3.8007011672919218 +atan0056 atan 0.0 2.0 -> 1.5707963267948966 0.54930614433405489 +atan0057 atan -0.0 2.0 -> -1.5707963267948966 0.54930614433405489 +atan0058 atan 0.0 20.0 -> 1.5707963267948966 0.050041729278491265 +atan0059 atan -0.0 20.0 -> -1.5707963267948966 0.050041729278491265 +atan0060 atan 0.0 10000000000000000.0 -> 1.5707963267948966 9.9999999999999998e-17 +atan0061 atan -0.0 10000000000000000.0 -> -1.5707963267948966 9.9999999999999998e-17 +atan0062 atan 0.0 9.9999999999999998e+149 -> 1.5707963267948966 1e-150 +atan0063 atan -0.0 9.9999999999999998e+149 -> -1.5707963267948966 1e-150 +atan0064 atan 0.0 1.0000000000000001e+299 -> 1.5707963267948966 9.9999999999999999e-300 +atan0065 atan -0.0 1.0000000000000001e+299 -> -1.5707963267948966 9.9999999999999999e-300 + +-- random inputs +atan0100 atan -0.32538873661060214 -1.5530461550412578 -> -1.3682728427554227 -0.69451401598762041 +atan0101 atan -0.45863393495197929 -4799.1747094903594 -> -1.5707963068820623 -0.00020836916050636145 +atan0102 atan -8.3006999685976162 -2.6788890251790938 -> -1.4619862771810199 -0.034811669653327826 +atan0103 atan -1.8836307682985314 -1.1441976638861771 -> -1.1839984370871612 -0.20630956157312796 +atan0104 atan -0.00063230482407491669 -4.9312520961829485 -> -1.5707692093223147 -0.20563867743008304 +atan0105 atan -0.84278137150065946 179012.37493146997 -> -1.5707963267685969 5.5862059836425272e-06 +atan0106 atan -0.95487853984049287 14.311334539886177 -> -1.5661322859434561 0.069676024526232005 +atan0107 atan -1.3513252539663239 6.0500727021632198e-08 -> -0.93371676315220975 2.140800269742656e-08 +atan0108 atan -0.20566254458595795 0.11933771944159823 -> -0.20556463711174916 0.11493405387141732 +atan0109 atan -0.58563718795408559 0.64438965423212868 -> -0.68361089300233124 0.46759762751800249 +atan0110 atan 48.479267751948292 -78.386382460112543 -> 1.5650888770910523 -0.0092276811373297584 +atan0111 atan 1.0575373914056061 -0.75988012377296987 -> 0.94430886722043594 -0.31915698126703118 +atan0112 atan 4444810.4314677203 -0.56553404593942558 -> 1.5707961018134231 -2.8625446437701909e-14 +atan0113 atan 0.010101405082520009 -0.032932668550282478 -> 0.01011202676646334 -0.032941214776834996 +atan0114 atan 1.5353585300154911 -2.1947099346796519 -> 1.3400310739206394 -0.29996003607449045 +atan0115 atan 0.21869457055670882 9.9915684254007093 -> 1.5685846078876444 0.1003716881759439 +atan0116 atan 0.17783290150246836 0.064334689863650957 -> 0.17668728064286277 0.062435808728873846 +atan0117 atan 15.757474087615918 383.57262142534 -> 1.5706894060369621 0.0026026817278826603 +atan0118 atan 10.587017408533317 0.21720238081843438 -> 1.4766594681336236 0.0019199097383010061 +atan0119 atan 0.86026078678781204 0.1230148609359502 -> 0.7147259322534929 0.070551221954286605 + +-- values near infinity +atan0200 atan 7.8764397011195798e+307 8.1647921137746308e+307 -> 1.5707963267948966 6.3439446939604493e-309 +atan0201 atan 1.5873698696131487e+308 -1.0780367422960641e+308 -> 1.5707963267948966 -2.9279309368530781e-309 +atan0202 atan -1.5844551864825834e+308 1.0290657809098675e+308 -> -1.5707963267948966 2.8829614736961417e-309 +atan0203 atan -1.3168792562524032e+308 -9.088432341614825e+307 -> -1.5707963267948966 -3.5499373057390056e-309 +atan0204 atan 0.0 1.0360465742258337e+308 -> 1.5707963267948966 9.6520757355646018e-309 +atan0205 atan -0.0 1.0045063210373196e+308 -> -1.5707963267948966 9.955138947929503e-309 +atan0206 atan 0.0 -9.5155296715763696e+307 -> 1.5707963267948966 -1.050913648020118e-308 +atan0207 atan -0.0 -1.5565700490496501e+308 -> -1.5707963267948966 -6.4243816114189071e-309 +atan0208 atan 1.2956339389525244e+308 0.0 -> 1.5707963267948966 0.0 +atan0209 atan 1.4408126243772151e+308 -0.0 -> 1.5707963267948966 -0.0 +atan0210 atan -1.0631786461936417e+308 0.0 -> -1.5707963267948966 0.0 +atan0211 atan -1.0516056964171069e+308 -0.0 -> -1.5707963267948966 -0.0 +atan0212 atan 1.236162319603838e+308 4.6827953496242936 -> 1.5707963267948966 0.0 +atan0213 atan 7.000516472897218e+307 -5.8631608017844163 -> 1.5707963267948966 -0.0 +atan0214 atan -1.5053444003338508e+308 5.1199197268420313 -> -1.5707963267948966 0.0 +atan0215 atan -1.399172518147259e+308 -3.5687766472913673 -> -1.5707963267948966 -0.0 +atan0216 atan 8.1252833070803021 6.2782953917343822e+307 -> 1.5707963267948966 1.5927890256908564e-308 +atan0217 atan 2.8034285947515167 -1.3378049775753878e+308 -> 1.5707963267948966 -7.4749310756219562e-309 +atan0218 atan -1.4073509988974953 1.6776381785968355e+308 -> -1.5707963267948966 5.9607608646364569e-309 +atan0219 atan -2.7135551527592119 -1.281567445525738e+308 -> -1.5707963267948966 -7.8029447727565326e-309 + +-- imaginary part = +/-1, real part tiny +atan0300 atan -1e-150 -1.0 -> -0.78539816339744828 -173.04045556483339 +atan0301 atan 1e-155 1.0 -> 0.78539816339744828 178.79691829731851 +atan0302 atan 9.9999999999999999e-161 -1.0 -> 0.78539816339744828 -184.55338102980363 +atan0303 atan -1e-165 1.0 -> -0.78539816339744828 190.30984376228875 +atan0304 atan -9.9998886718268301e-321 -1.0 -> -0.78539816339744828 -368.76019403576692 + +-- Additional real values (mpmath) +atan0400 atan 1.7976931348623157e+308 0.0 -> 1.5707963267948966192 0.0 +atan0401 atan -1.7976931348623157e+308 0.0 -> -1.5707963267948966192 0.0 +atan0402 atan 1e-17 0.0 -> 1.0000000000000000715e-17 0.0 +atan0403 atan -1e-17 0.0 -> -1.0000000000000000715e-17 0.0 +atan0404 atan 0.0001 0.0 -> 0.000099999999666666673459 0.0 +atan0405 atan -0.0001 0.0 -> -0.000099999999666666673459 0.0 +atan0406 atan 0.999999999999999 0.0 -> 0.78539816339744781002 0.0 +atan0407 atan 1.000000000000001 0.0 -> 0.78539816339744886473 0.0 +atan0408 atan 14.101419947171719 0.0 -> 1.4999999999999999969 0.0 +atan0409 atan 1255.7655915007897 0.0 -> 1.5700000000000000622 0.0 + +-- special values +atan1000 atan -0.0 0.0 -> -0.0 0.0 +atan1001 atan nan 0.0 -> nan 0.0 +atan1002 atan -0.0 1.0 -> -0.0 inf divide-by-zero +atan1003 atan -inf 0.0 -> -1.5707963267948966 0.0 +atan1004 atan -inf 2.2999999999999998 -> -1.5707963267948966 0.0 +atan1005 atan nan 2.2999999999999998 -> nan nan +atan1006 atan -0.0 inf -> -1.5707963267948966 0.0 +atan1007 atan -2.2999999999999998 inf -> -1.5707963267948966 0.0 +atan1008 atan -inf inf -> -1.5707963267948966 0.0 +atan1009 atan nan inf -> nan 0.0 +atan1010 atan -0.0 nan -> nan nan +atan1011 atan -2.2999999999999998 nan -> nan nan +atan1012 atan -inf nan -> -1.5707963267948966 0.0 ignore-imag-sign +atan1013 atan nan nan -> nan nan +atan1014 atan 0.0 0.0 -> 0.0 0.0 +atan1015 atan 0.0 1.0 -> 0.0 inf divide-by-zero +atan1016 atan inf 0.0 -> 1.5707963267948966 0.0 +atan1017 atan inf 2.2999999999999998 -> 1.5707963267948966 0.0 +atan1018 atan 0.0 inf -> 1.5707963267948966 0.0 +atan1019 atan 2.2999999999999998 inf -> 1.5707963267948966 0.0 +atan1020 atan inf inf -> 1.5707963267948966 0.0 +atan1021 atan 0.0 nan -> nan nan +atan1022 atan 2.2999999999999998 nan -> nan nan +atan1023 atan inf nan -> 1.5707963267948966 0.0 ignore-imag-sign +atan1024 atan 0.0 -0.0 -> 0.0 -0.0 +atan1025 atan nan -0.0 -> nan -0.0 +atan1026 atan 0.0 -1.0 -> 0.0 -inf divide-by-zero +atan1027 atan inf -0.0 -> 1.5707963267948966 -0.0 +atan1028 atan inf -2.2999999999999998 -> 1.5707963267948966 -0.0 +atan1029 atan nan -2.2999999999999998 -> nan nan +atan1030 atan 0.0 -inf -> 1.5707963267948966 -0.0 +atan1031 atan 2.2999999999999998 -inf -> 1.5707963267948966 -0.0 +atan1032 atan inf -inf -> 1.5707963267948966 -0.0 +atan1033 atan nan -inf -> nan -0.0 +atan1034 atan -0.0 -0.0 -> -0.0 -0.0 +atan1035 atan -0.0 -1.0 -> -0.0 -inf divide-by-zero +atan1036 atan -inf -0.0 -> -1.5707963267948966 -0.0 +atan1037 atan -inf -2.2999999999999998 -> -1.5707963267948966 -0.0 +atan1038 atan -0.0 -inf -> -1.5707963267948966 -0.0 +atan1039 atan -2.2999999999999998 -inf -> -1.5707963267948966 -0.0 +atan1040 atan -inf -inf -> -1.5707963267948966 -0.0 + + +--------------------------------------- +-- atanh: Inverse hyperbolic tangent -- +--------------------------------------- + +-- zeros +-- These are tested in testAtanhSign in test_cmath.py +-- atanh0000 atanh 0.0 0.0 -> 0.0 0.0 +-- atanh0001 atanh 0.0 -0.0 -> 0.0 -0.0 +-- atanh0002 atanh -0.0 0.0 -> -0.0 0.0 +-- atanh0003 atanh -0.0 -0.0 -> -0.0 -0.0 + +-- values along both sides of real axis +atanh0010 atanh -9.8813129168249309e-324 0.0 -> -9.8813129168249309e-324 0.0 +atanh0011 atanh -9.8813129168249309e-324 -0.0 -> -9.8813129168249309e-324 -0.0 +atanh0012 atanh -1e-305 0.0 -> -1e-305 0.0 +atanh0013 atanh -1e-305 -0.0 -> -1e-305 -0.0 +atanh0014 atanh -1e-150 0.0 -> -1e-150 0.0 +atanh0015 atanh -1e-150 -0.0 -> -1e-150 -0.0 +atanh0016 atanh -9.9999999999999998e-17 0.0 -> -9.9999999999999998e-17 0.0 +atanh0017 atanh -9.9999999999999998e-17 -0.0 -> -9.9999999999999998e-17 -0.0 +atanh0018 atanh -0.001 0.0 -> -0.0010000003333335333 0.0 +atanh0019 atanh -0.001 -0.0 -> -0.0010000003333335333 -0.0 +atanh0020 atanh -0.57899999999999996 0.0 -> -0.6609570902866303 0.0 +atanh0021 atanh -0.57899999999999996 -0.0 -> -0.6609570902866303 -0.0 +atanh0022 atanh -0.99999999999999989 0.0 -> -18.714973875118524 0.0 +atanh0023 atanh -0.99999999999999989 -0.0 -> -18.714973875118524 -0.0 +atanh0024 atanh -1.0000000000000002 0.0 -> -18.36840028483855 1.5707963267948966 +atanh0025 atanh -1.0000000000000002 -0.0 -> -18.36840028483855 -1.5707963267948966 +atanh0026 atanh -1.0009999999999999 0.0 -> -3.8007011672919218 1.5707963267948966 +atanh0027 atanh -1.0009999999999999 -0.0 -> -3.8007011672919218 -1.5707963267948966 +atanh0028 atanh -2.0 0.0 -> -0.54930614433405489 1.5707963267948966 +atanh0029 atanh -2.0 -0.0 -> -0.54930614433405489 -1.5707963267948966 +atanh0030 atanh -23.0 0.0 -> -0.043505688494814884 1.5707963267948966 +atanh0031 atanh -23.0 -0.0 -> -0.043505688494814884 -1.5707963267948966 +atanh0032 atanh -10000000000000000.0 0.0 -> -9.9999999999999998e-17 1.5707963267948966 +atanh0033 atanh -10000000000000000.0 -0.0 -> -9.9999999999999998e-17 -1.5707963267948966 +atanh0034 atanh -9.9999999999999998e+149 0.0 -> -1e-150 1.5707963267948966 +atanh0035 atanh -9.9999999999999998e+149 -0.0 -> -1e-150 -1.5707963267948966 +atanh0036 atanh -1.0000000000000001e+299 0.0 -> -9.9999999999999999e-300 1.5707963267948966 +atanh0037 atanh -1.0000000000000001e+299 -0.0 -> -9.9999999999999999e-300 -1.5707963267948966 +atanh0038 atanh 9.8813129168249309e-324 0.0 -> 9.8813129168249309e-324 0.0 +atanh0039 atanh 9.8813129168249309e-324 -0.0 -> 9.8813129168249309e-324 -0.0 +atanh0040 atanh 1e-305 0.0 -> 1e-305 0.0 +atanh0041 atanh 1e-305 -0.0 -> 1e-305 -0.0 +atanh0042 atanh 1e-150 0.0 -> 1e-150 0.0 +atanh0043 atanh 1e-150 -0.0 -> 1e-150 -0.0 +atanh0044 atanh 9.9999999999999998e-17 0.0 -> 9.9999999999999998e-17 0.0 +atanh0045 atanh 9.9999999999999998e-17 -0.0 -> 9.9999999999999998e-17 -0.0 +atanh0046 atanh 0.001 0.0 -> 0.0010000003333335333 0.0 +atanh0047 atanh 0.001 -0.0 -> 0.0010000003333335333 -0.0 +atanh0048 atanh 0.57899999999999996 0.0 -> 0.6609570902866303 0.0 +atanh0049 atanh 0.57899999999999996 -0.0 -> 0.6609570902866303 -0.0 +atanh0050 atanh 0.99999999999999989 0.0 -> 18.714973875118524 0.0 +atanh0051 atanh 0.99999999999999989 -0.0 -> 18.714973875118524 -0.0 +atanh0052 atanh 1.0000000000000002 0.0 -> 18.36840028483855 1.5707963267948966 +atanh0053 atanh 1.0000000000000002 -0.0 -> 18.36840028483855 -1.5707963267948966 +atanh0054 atanh 1.0009999999999999 0.0 -> 3.8007011672919218 1.5707963267948966 +atanh0055 atanh 1.0009999999999999 -0.0 -> 3.8007011672919218 -1.5707963267948966 +atanh0056 atanh 2.0 0.0 -> 0.54930614433405489 1.5707963267948966 +atanh0057 atanh 2.0 -0.0 -> 0.54930614433405489 -1.5707963267948966 +atanh0058 atanh 23.0 0.0 -> 0.043505688494814884 1.5707963267948966 +atanh0059 atanh 23.0 -0.0 -> 0.043505688494814884 -1.5707963267948966 +atanh0060 atanh 10000000000000000.0 0.0 -> 9.9999999999999998e-17 1.5707963267948966 +atanh0061 atanh 10000000000000000.0 -0.0 -> 9.9999999999999998e-17 -1.5707963267948966 +atanh0062 atanh 9.9999999999999998e+149 0.0 -> 1e-150 1.5707963267948966 +atanh0063 atanh 9.9999999999999998e+149 -0.0 -> 1e-150 -1.5707963267948966 +atanh0064 atanh 1.0000000000000001e+299 0.0 -> 9.9999999999999999e-300 1.5707963267948966 +atanh0065 atanh 1.0000000000000001e+299 -0.0 -> 9.9999999999999999e-300 -1.5707963267948966 + +-- random inputs +atanh0100 atanh -0.54460925980633501 -0.54038050126721027 -> -0.41984265808446974 -0.60354153938352828 +atanh0101 atanh -1.6934614269829051 -0.48807386108113621 -> -0.58592769102243281 -1.3537837470975898 +atanh0102 atanh -1.3467293985501207 -0.47868354895395876 -> -0.69961624370709985 -1.1994450156570076 +atanh0103 atanh -5.6142232418984888 -544551613.39307702 -> -1.8932657550925744e-17 -1.5707963249585235 +atanh0104 atanh -0.011841460381263651 -3.259978899823385 -> -0.0010183936547405188 -1.2731614020743838 +atanh0105 atanh -0.0073345736950029532 0.35821949670922248 -> -0.0065004869024682466 0.34399359971920895 +atanh0106 atanh -13.866782244320014 0.9541129545860273 -> -0.071896852055058899 1.5658322704631409 +atanh0107 atanh -708.59964982780775 21.984802159266675 -> -0.0014098779074189741 1.5707525842838959 +atanh0108 atanh -30.916832076030602 1.3691897138829843 -> -0.032292682045743676 1.5693652094847115 +atanh0109 atanh -0.57461806339861754 0.29534797443913063 -> -0.56467464472482765 0.39615612824172625 +atanh0110 atanh 0.40089246737415685 -1.632285984300659 -> 0.1063832707890608 -1.0402821335326482 +atanh0111 atanh 2119.6167688262176 -1.5383653437377242e+17 -> 8.9565008518382049e-32 -1.5707963267948966 +atanh0112 atanh 756.86017850941641 -6.6064087133223817 -> 0.0013211481136820046 -1.5707847948702234 +atanh0113 atanh 4.0490617718041602 -2.5784456791040652e-12 -> 0.25218425538553618 -1.5707963267947291 +atanh0114 atanh 10.589254957173523 -0.13956391149624509 -> 0.094700890282197664 -1.5695407140217623 +atanh0115 atanh 1.0171187553160499 0.70766113465354019 -> 0.55260251975367791 0.96619711116641682 +atanh0116 atanh 0.031645502527750849 0.067319983726544394 -> 0.031513018344086742 0.067285437670549036 +atanh0117 atanh 0.13670177624994517 0.43240089361857947 -> 0.11538933151017253 0.41392008145336212 +atanh0118 atanh 0.64173899243596688 2.9008577686695256 -> 0.065680142424134405 1.2518535724053921 +atanh0119 atanh 0.19313813528025942 38.799619150741869 -> 0.00012820765917366644 1.5450292202823612 + +-- values near infinity +atanh0200 atanh 5.3242646831347954e+307 1.3740396080084153e+308 -> 2.4519253616695576e-309 1.5707963267948966 +atanh0201 atanh 1.158701641241358e+308 -6.5579268873375853e+307 -> 6.5365375267795098e-309 -1.5707963267948966 +atanh0202 atanh -1.3435325735762247e+308 9.8947369259601547e+307 -> -4.8256680906589956e-309 1.5707963267948966 +atanh0203 atanh -1.4359857522598942e+308 -9.4701204702391004e+307 -> -4.8531282262872645e-309 -1.5707963267948966 +atanh0204 atanh 0.0 5.6614181068098497e+307 -> 0.0 1.5707963267948966 +atanh0205 atanh -0.0 6.9813212721450139e+307 -> -0.0 1.5707963267948966 +atanh0206 atanh 0.0 -7.4970613060311453e+307 -> 0.0 -1.5707963267948966 +atanh0207 atanh -0.0 -1.5280601880314068e+308 -> -0.0 -1.5707963267948966 +atanh0208 atanh 8.2219472336000745e+307 0.0 -> 1.2162568933954813e-308 1.5707963267948966 +atanh0209 atanh 1.4811519617280899e+308 -0.0 -> 6.7515017083951325e-309 -1.5707963267948966 +atanh0210 atanh -1.2282016263598785e+308 0.0 -> -8.1419856360537615e-309 1.5707963267948966 +atanh0211 atanh -1.0616427760154426e+308 -0.0 -> -9.4193642399489563e-309 -1.5707963267948966 +atanh0212 atanh 1.2971536510180682e+308 5.2847948452333293 -> 7.7091869510998328e-309 1.5707963267948966 +atanh0213 atanh 1.1849860977411851e+308 -7.9781906447459949 -> 8.4389175696339014e-309 -1.5707963267948966 +atanh0214 atanh -1.4029969422586635e+308 0.93891986543663375 -> -7.127599283218073e-309 1.5707963267948966 +atanh0215 atanh -4.7508098912248211e+307 -8.2702421247039908 -> -2.1049042645278043e-308 -1.5707963267948966 +atanh0216 atanh 8.2680742115769998 8.1153898410918065e+307 -> 0.0 1.5707963267948966 +atanh0217 atanh 1.2575325146218885 -1.4746679147661649e+308 -> 0.0 -1.5707963267948966 +atanh0218 atanh -2.4618803682310899 1.3781522717005568e+308 -> -0.0 1.5707963267948966 +atanh0219 atanh -4.0952386694788112 -1.231083376353703e+308 -> -0.0 -1.5707963267948966 + +-- values near 0 +atanh0220 atanh 3.8017563659811628e-314 2.6635484239074319e-312 -> 3.8017563659811628e-314 2.6635484239074319e-312 +atanh0221 atanh 1.7391110733611878e-321 -4.3547800672541419e-313 -> 1.7391110733611878e-321 -4.3547800672541419e-313 +atanh0222 atanh -5.9656816081325078e-317 9.9692253555416263e-313 -> -5.9656816081325078e-317 9.9692253555416263e-313 +atanh0223 atanh -6.5606671178400239e-313 -2.1680936406357335e-309 -> -6.5606671178400239e-313 -2.1680936406357335e-309 +atanh0224 atanh 0.0 2.5230944401820779e-319 -> 0.0 2.5230944401820779e-319 +atanh0225 atanh -0.0 5.6066569490064658e-320 -> -0.0 5.6066569490064658e-320 +atanh0226 atanh 0.0 -2.4222487249468377e-317 -> 0.0 -2.4222487249468377e-317 +atanh0227 atanh -0.0 -3.0861101089206037e-316 -> -0.0 -3.0861101089206037e-316 +atanh0228 atanh 3.1219222884393986e-310 0.0 -> 3.1219222884393986e-310 0.0 +atanh0229 atanh 9.8926337564976196e-309 -0.0 -> 9.8926337564976196e-309 -0.0 +atanh0230 atanh -1.5462535092918154e-312 0.0 -> -1.5462535092918154e-312 0.0 +atanh0231 atanh -9.8813129168249309e-324 -0.0 -> -9.8813129168249309e-324 -0.0 + +-- real part = +/-1, imaginary part tiny +atanh0300 atanh 1.0 1e-153 -> 176.49433320432448 0.78539816339744828 +atanh0301 atanh 1.0 9.9999999999999997e-155 -> 177.64562575082149 0.78539816339744828 +atanh0302 atanh -1.0 1e-161 -> -185.70467357630065 0.78539816339744828 +atanh0303 atanh 1.0 -1e-165 -> 190.30984376228875 -0.78539816339744828 +atanh0304 atanh -1.0 -9.8813129168249309e-324 -> -372.22003596069061 -0.78539816339744828 + +-- special values +atanh1000 atanh 0.0 0.0 -> 0.0 0.0 +atanh1001 atanh 0.0 nan -> 0.0 nan +atanh1002 atanh 1.0 0.0 -> inf 0.0 divide-by-zero +atanh1003 atanh 0.0 inf -> 0.0 1.5707963267948966 +atanh1004 atanh 2.3 inf -> 0.0 1.5707963267948966 +atanh1005 atanh 2.3 nan -> nan nan +atanh1006 atanh inf 0.0 -> 0.0 1.5707963267948966 +atanh1007 atanh inf 2.3 -> 0.0 1.5707963267948966 +atanh1008 atanh inf inf -> 0.0 1.5707963267948966 +atanh1009 atanh inf nan -> 0.0 nan +atanh1010 atanh nan 0.0 -> nan nan +atanh1011 atanh nan 2.3 -> nan nan +atanh1012 atanh nan inf -> 0.0 1.5707963267948966 ignore-real-sign +atanh1013 atanh nan nan -> nan nan +atanh1014 atanh 0.0 -0.0 -> 0.0 -0.0 +atanh1015 atanh 1.0 -0.0 -> inf -0.0 divide-by-zero +atanh1016 atanh 0.0 -inf -> 0.0 -1.5707963267948966 +atanh1017 atanh 2.3 -inf -> 0.0 -1.5707963267948966 +atanh1018 atanh inf -0.0 -> 0.0 -1.5707963267948966 +atanh1019 atanh inf -2.3 -> 0.0 -1.5707963267948966 +atanh1020 atanh inf -inf -> 0.0 -1.5707963267948966 +atanh1021 atanh nan -0.0 -> nan nan +atanh1022 atanh nan -2.3 -> nan nan +atanh1023 atanh nan -inf -> 0.0 -1.5707963267948966 ignore-real-sign +atanh1024 atanh -0.0 -0.0 -> -0.0 -0.0 +atanh1025 atanh -0.0 nan -> -0.0 nan +atanh1026 atanh -1.0 -0.0 -> -inf -0.0 divide-by-zero +atanh1027 atanh -0.0 -inf -> -0.0 -1.5707963267948966 +atanh1028 atanh -2.3 -inf -> -0.0 -1.5707963267948966 +atanh1029 atanh -2.3 nan -> nan nan +atanh1030 atanh -inf -0.0 -> -0.0 -1.5707963267948966 +atanh1031 atanh -inf -2.3 -> -0.0 -1.5707963267948966 +atanh1032 atanh -inf -inf -> -0.0 -1.5707963267948966 +atanh1033 atanh -inf nan -> -0.0 nan +atanh1034 atanh -0.0 0.0 -> -0.0 0.0 +atanh1035 atanh -1.0 0.0 -> -inf 0.0 divide-by-zero +atanh1036 atanh -0.0 inf -> -0.0 1.5707963267948966 +atanh1037 atanh -2.3 inf -> -0.0 1.5707963267948966 +atanh1038 atanh -inf 0.0 -> -0.0 1.5707963267948966 +atanh1039 atanh -inf 2.3 -> -0.0 1.5707963267948966 +atanh1040 atanh -inf inf -> -0.0 1.5707963267948966 + + +---------------------------- +-- log: Natural logarithm -- +---------------------------- + +log0000 log 1.0 0.0 -> 0.0 0.0 +log0001 log 1.0 -0.0 -> 0.0 -0.0 +log0002 log -1.0 0.0 -> 0.0 3.1415926535897931 +log0003 log -1.0 -0.0 -> 0.0 -3.1415926535897931 +-- values along both sides of real axis +log0010 log -9.8813129168249309e-324 0.0 -> -743.74692474082133 3.1415926535897931 +log0011 log -9.8813129168249309e-324 -0.0 -> -743.74692474082133 -3.1415926535897931 +log0012 log -1e-305 0.0 -> -702.28845336318398 3.1415926535897931 +log0013 log -1e-305 -0.0 -> -702.28845336318398 -3.1415926535897931 +log0014 log -1e-150 0.0 -> -345.38776394910684 3.1415926535897931 +log0015 log -1e-150 -0.0 -> -345.38776394910684 -3.1415926535897931 +log0016 log -9.9999999999999998e-17 0.0 -> -36.841361487904734 3.1415926535897931 +log0017 log -9.9999999999999998e-17 -0.0 -> -36.841361487904734 -3.1415926535897931 +log0018 log -0.001 0.0 -> -6.9077552789821368 3.1415926535897931 +log0019 log -0.001 -0.0 -> -6.9077552789821368 -3.1415926535897931 +log0020 log -0.57899999999999996 0.0 -> -0.54645280140914188 3.1415926535897931 +log0021 log -0.57899999999999996 -0.0 -> -0.54645280140914188 -3.1415926535897931 +log0022 log -0.99999999999999989 0.0 -> -1.1102230246251565e-16 3.1415926535897931 +log0023 log -0.99999999999999989 -0.0 -> -1.1102230246251565e-16 -3.1415926535897931 +log0024 log -1.0000000000000002 0.0 -> 2.2204460492503128e-16 3.1415926535897931 +log0025 log -1.0000000000000002 -0.0 -> 2.2204460492503128e-16 -3.1415926535897931 +log0026 log -1.0009999999999999 0.0 -> 0.00099950033308342321 3.1415926535897931 +log0027 log -1.0009999999999999 -0.0 -> 0.00099950033308342321 -3.1415926535897931 +log0028 log -2.0 0.0 -> 0.69314718055994529 3.1415926535897931 +log0029 log -2.0 -0.0 -> 0.69314718055994529 -3.1415926535897931 +log0030 log -23.0 0.0 -> 3.1354942159291497 3.1415926535897931 +log0031 log -23.0 -0.0 -> 3.1354942159291497 -3.1415926535897931 +log0032 log -10000000000000000.0 0.0 -> 36.841361487904734 3.1415926535897931 +log0033 log -10000000000000000.0 -0.0 -> 36.841361487904734 -3.1415926535897931 +log0034 log -9.9999999999999998e+149 0.0 -> 345.38776394910684 3.1415926535897931 +log0035 log -9.9999999999999998e+149 -0.0 -> 345.38776394910684 -3.1415926535897931 +log0036 log -1.0000000000000001e+299 0.0 -> 688.47294280521965 3.1415926535897931 +log0037 log -1.0000000000000001e+299 -0.0 -> 688.47294280521965 -3.1415926535897931 +log0038 log 9.8813129168249309e-324 0.0 -> -743.74692474082133 0.0 +log0039 log 9.8813129168249309e-324 -0.0 -> -743.74692474082133 -0.0 +log0040 log 1e-305 0.0 -> -702.28845336318398 0.0 +log0041 log 1e-305 -0.0 -> -702.28845336318398 -0.0 +log0042 log 1e-150 0.0 -> -345.38776394910684 0.0 +log0043 log 1e-150 -0.0 -> -345.38776394910684 -0.0 +log0044 log 9.9999999999999998e-17 0.0 -> -36.841361487904734 0.0 +log0045 log 9.9999999999999998e-17 -0.0 -> -36.841361487904734 -0.0 +log0046 log 0.001 0.0 -> -6.9077552789821368 0.0 +log0047 log 0.001 -0.0 -> -6.9077552789821368 -0.0 +log0048 log 0.57899999999999996 0.0 -> -0.54645280140914188 0.0 +log0049 log 0.57899999999999996 -0.0 -> -0.54645280140914188 -0.0 +log0050 log 0.99999999999999989 0.0 -> -1.1102230246251565e-16 0.0 +log0051 log 0.99999999999999989 -0.0 -> -1.1102230246251565e-16 -0.0 +log0052 log 1.0000000000000002 0.0 -> 2.2204460492503128e-16 0.0 +log0053 log 1.0000000000000002 -0.0 -> 2.2204460492503128e-16 -0.0 +log0054 log 1.0009999999999999 0.0 -> 0.00099950033308342321 0.0 +log0055 log 1.0009999999999999 -0.0 -> 0.00099950033308342321 -0.0 +log0056 log 2.0 0.0 -> 0.69314718055994529 0.0 +log0057 log 2.0 -0.0 -> 0.69314718055994529 -0.0 +log0058 log 23.0 0.0 -> 3.1354942159291497 0.0 +log0059 log 23.0 -0.0 -> 3.1354942159291497 -0.0 +log0060 log 10000000000000000.0 0.0 -> 36.841361487904734 0.0 +log0061 log 10000000000000000.0 -0.0 -> 36.841361487904734 -0.0 +log0062 log 9.9999999999999998e+149 0.0 -> 345.38776394910684 0.0 +log0063 log 9.9999999999999998e+149 -0.0 -> 345.38776394910684 -0.0 +log0064 log 1.0000000000000001e+299 0.0 -> 688.47294280521965 0.0 +log0065 log 1.0000000000000001e+299 -0.0 -> 688.47294280521965 -0.0 + +-- random inputs +log0066 log -1.9830454945186191e-16 -2.0334448025673346 -> 0.70973130194329803 -1.5707963267948968 +log0067 log -0.96745853024741857 -0.84995816228299692 -> 0.25292811398722387 -2.4207570438536905 +log0068 log -0.1603644313948418 -0.2929942111041835 -> -1.0965857872427374 -2.0715870859971419 +log0069 log -0.15917913168438699 -0.25238799251132177 -> -1.2093477313249901 -2.1334784232033863 +log0070 log -0.68907818535078802 -3.0693105853476346 -> 1.1460398629184565 -1.7916403813913211 +log0071 log -17.268133447565589 6.8165120014604756 -> 2.9212694465974836 2.7656245081603164 +log0072 log -1.7153894479690328 26.434055372802636 -> 3.2767542953718003 1.6355986276341734 +log0073 log -8.0456794648936578e-06 0.19722758057570208 -> -1.6233969848296075 1.5708371206810101 +log0074 log -2.4306442691323173 0.6846919750700996 -> 0.92633592001969589 2.8670160576718331 +log0075 log -3.5488049250888194 0.45324040643185254 -> 1.2747008374256426 3.0145640007885111 +log0076 log 0.18418516851510189 -0.26062518836212617 -> -1.1421287121940344 -0.95558440841183434 +log0077 log 2.7124837795638399 -13.148769067133387 -> 2.5971659975706802 -1.3673583045209439 +log0078 log 3.6521275476169149e-13 -3.7820543023170673e-05 -> -10.182658136741569 -1.5707963171384316 +log0079 log 5.0877545813862239 -1.2834978326786852 -> 1.6576856213076328 -0.24711583497738485 +log0080 log 0.26477986808461512 -0.67659001194187429 -> -0.31944085207999973 -1.197773671987121 +log0081 log 0.0014754261398071962 5.3514691608205442 -> 1.6773711707153829 1.5705206219261802 +log0082 log 0.29667334462157885 0.00020056045042584795 -> -1.2151233667079588 0.00067603114168689204 +log0083 log 0.82104233671099425 3.9005387130133102 -> 1.3827918965299593 1.3633304701848363 +log0084 log 0.27268135358180667 124.42088110945804 -> 4.8236724223559229 1.5686047258789015 +log0085 log 0.0026286959168267485 0.47795808180573013 -> -0.73821712137809126 1.5652965360960087 + +-- values near infinity +log0100 log 1.0512025744003172e+308 7.2621669750664611e+307 -> 709.44123967814494 0.60455434048332968 +log0101 log 5.5344249034372126e+307 -1.2155859158431275e+308 -> 709.48562300345679 -1.143553056717973 +log0102 log -1.3155575403469408e+308 1.1610793541663864e+308 -> 709.75847809546428 2.41848796504974 +log0103 log -1.632366720973235e+308 -1.54299446211448e+308 -> 710.00545236515586 -2.3843326028455087 +log0104 log 0.0 5.9449276692327712e+307 -> 708.67616191258526 1.5707963267948966 +log0105 log -0.0 1.1201850459025692e+308 -> 709.30970253338171 1.5707963267948966 +log0106 log 0.0 -1.6214225933466528e+308 -> 709.6795125501086 -1.5707963267948966 +log0107 log -0.0 -1.7453269791591058e+308 -> 709.75315056087379 -1.5707963267948966 +log0108 log 1.440860577601428e+308 0.0 -> 709.56144920058262 0.0 +log0109 log 1.391515176148282e+308 -0.0 -> 709.52660185041327 -0.0 +log0110 log -1.201354401295296e+308 0.0 -> 709.37965823023956 3.1415926535897931 +log0111 log -1.6704337825976804e+308 -0.0 -> 709.70929198492399 -3.1415926535897931 +log0112 log 7.2276974655190223e+307 7.94879711369164 -> 708.87154406512104 1.0997689307850458e-307 +log0113 log 1.1207859593716076e+308 -6.1956200868221147 -> 709.31023883080104 -5.5279244310803286e-308 +log0114 log -4.6678933874471045e+307 9.947107893220382 -> 708.43433142431388 3.1415926535897931 +log0115 log -1.5108012453950142e+308 -5.3117197179375619 -> 709.60884877835008 -3.1415926535897931 +log0116 log 7.4903750871504435 1.5320703776626352e+308 -> 709.62282865085137 1.5707963267948966 +log0117 log 5.9760325525654778 -8.0149473997349123e+307 -> 708.97493177248396 -1.5707963267948966 +log0118 log -7.880194206386629 1.7861845814767441e+308 -> 709.77629046837137 1.5707963267948966 +log0119 log -9.886438993852865 -6.19235781080747e+307 -> 708.71693946977302 -1.5707963267948966 + +-- values near 0 +log0120 log 2.2996867579227779e-308 6.7861840770939125e-312 -> -708.36343567717392 0.00029509166223339815 +log0121 log 6.9169190417774516e-323 -9.0414013188948118e-322 -> -739.22766796468386 -1.4944423210001669 +log0122 log -1.5378064962914011e-316 1.8243628389354635e-310 -> -713.20014803142965 1.5707971697228842 +log0123 log -2.3319898483706837e-321 -2.2358763941866371e-313 -> -719.9045008332522 -1.570796337224766 +log0124 log 0.0 3.872770101081121e-315 -> -723.96033425374401 1.5707963267948966 +log0125 log -0.0 9.6342800939043076e-322 -> -739.16707236281752 1.5707963267948966 +log0126 log 0.0 -2.266099393427834e-308 -> -708.37814861757965 -1.5707963267948966 +log0127 log -0.0 -2.1184695673766626e-315 -> -724.56361036731812 -1.5707963267948966 +log0128 log 1.1363509854348671e-322 0.0 -> -741.30457770545206 0.0 +log0129 log 3.5572726500569751e-322 -0.0 -> -740.16340580236522 -0.0 +log0130 log -2.3696071074040593e-310 0.0 -> -712.93865466421641 3.1415926535897931 +log0131 log -2.813283897266934e-317 -0.0 -> -728.88512203138862 -3.1415926535897931 + +-- values near the unit circle +log0200 log -0.59999999999999998 0.80000000000000004 -> 2.2204460492503132e-17 2.2142974355881808 +log0201 log 0.79999999999999993 0.60000000000000009 -> 6.1629758220391547e-33 0.64350110879328448 + +-- special values +log1000 log -0.0 0.0 -> -inf 3.1415926535897931 divide-by-zero +log1001 log 0.0 0.0 -> -inf 0.0 divide-by-zero +log1002 log 0.0 inf -> inf 1.5707963267948966 +log1003 log 2.3 inf -> inf 1.5707963267948966 +log1004 log -0.0 inf -> inf 1.5707963267948966 +log1005 log -2.3 inf -> inf 1.5707963267948966 +log1006 log 0.0 nan -> nan nan +log1007 log 2.3 nan -> nan nan +log1008 log -0.0 nan -> nan nan +log1009 log -2.3 nan -> nan nan +log1010 log -inf 0.0 -> inf 3.1415926535897931 +log1011 log -inf 2.3 -> inf 3.1415926535897931 +log1012 log inf 0.0 -> inf 0.0 +log1013 log inf 2.3 -> inf 0.0 +log1014 log -inf inf -> inf 2.3561944901923448 +log1015 log inf inf -> inf 0.78539816339744828 +log1016 log inf nan -> inf nan +log1017 log -inf nan -> inf nan +log1018 log nan 0.0 -> nan nan +log1019 log nan 2.3 -> nan nan +log1020 log nan inf -> inf nan +log1021 log nan nan -> nan nan +log1022 log -0.0 -0.0 -> -inf -3.1415926535897931 divide-by-zero +log1023 log 0.0 -0.0 -> -inf -0.0 divide-by-zero +log1024 log 0.0 -inf -> inf -1.5707963267948966 +log1025 log 2.3 -inf -> inf -1.5707963267948966 +log1026 log -0.0 -inf -> inf -1.5707963267948966 +log1027 log -2.3 -inf -> inf -1.5707963267948966 +log1028 log -inf -0.0 -> inf -3.1415926535897931 +log1029 log -inf -2.3 -> inf -3.1415926535897931 +log1030 log inf -0.0 -> inf -0.0 +log1031 log inf -2.3 -> inf -0.0 +log1032 log -inf -inf -> inf -2.3561944901923448 +log1033 log inf -inf -> inf -0.78539816339744828 +log1034 log nan -0.0 -> nan nan +log1035 log nan -2.3 -> nan nan +log1036 log nan -inf -> inf nan + + +------------------------------ +-- log10: Logarithm base 10 -- +------------------------------ + +logt0000 log10 1.0 0.0 -> 0.0 0.0 +logt0001 log10 1.0 -0.0 -> 0.0 -0.0 +logt0002 log10 -1.0 0.0 -> 0.0 1.3643763538418414 +logt0003 log10 -1.0 -0.0 -> 0.0 -1.3643763538418414 +-- values along both sides of real axis +logt0010 log10 -9.8813129168249309e-324 0.0 -> -323.0051853474518 1.3643763538418414 +logt0011 log10 -9.8813129168249309e-324 -0.0 -> -323.0051853474518 -1.3643763538418414 +logt0012 log10 -1e-305 0.0 -> -305.0 1.3643763538418414 +logt0013 log10 -1e-305 -0.0 -> -305.0 -1.3643763538418414 +logt0014 log10 -1e-150 0.0 -> -150.0 1.3643763538418414 +logt0015 log10 -1e-150 -0.0 -> -150.0 -1.3643763538418414 +logt0016 log10 -9.9999999999999998e-17 0.0 -> -16.0 1.3643763538418414 +logt0017 log10 -9.9999999999999998e-17 -0.0 -> -16.0 -1.3643763538418414 +logt0018 log10 -0.001 0.0 -> -3.0 1.3643763538418414 +logt0019 log10 -0.001 -0.0 -> -3.0 -1.3643763538418414 +logt0020 log10 -0.57899999999999996 0.0 -> -0.23732143627256383 1.3643763538418414 +logt0021 log10 -0.57899999999999996 -0.0 -> -0.23732143627256383 -1.3643763538418414 +logt0022 log10 -0.99999999999999989 0.0 -> -4.821637332766436e-17 1.3643763538418414 +logt0023 log10 -0.99999999999999989 -0.0 -> -4.821637332766436e-17 -1.3643763538418414 +logt0024 log10 -1.0000000000000002 0.0 -> 9.6432746655328696e-17 1.3643763538418414 +logt0025 log10 -1.0000000000000002 -0.0 -> 9.6432746655328696e-17 -1.3643763538418414 +logt0026 log10 -1.0009999999999999 0.0 -> 0.0004340774793185929 1.3643763538418414 +logt0027 log10 -1.0009999999999999 -0.0 -> 0.0004340774793185929 -1.3643763538418414 +logt0028 log10 -2.0 0.0 -> 0.3010299956639812 1.3643763538418414 +logt0029 log10 -2.0 -0.0 -> 0.3010299956639812 -1.3643763538418414 +logt0030 log10 -23.0 0.0 -> 1.3617278360175928 1.3643763538418414 +logt0031 log10 -23.0 -0.0 -> 1.3617278360175928 -1.3643763538418414 +logt0032 log10 -10000000000000000.0 0.0 -> 16.0 1.3643763538418414 +logt0033 log10 -10000000000000000.0 -0.0 -> 16.0 -1.3643763538418414 +logt0034 log10 -9.9999999999999998e+149 0.0 -> 150.0 1.3643763538418414 +logt0035 log10 -9.9999999999999998e+149 -0.0 -> 150.0 -1.3643763538418414 +logt0036 log10 -1.0000000000000001e+299 0.0 -> 299.0 1.3643763538418414 +logt0037 log10 -1.0000000000000001e+299 -0.0 -> 299.0 -1.3643763538418414 +logt0038 log10 9.8813129168249309e-324 0.0 -> -323.0051853474518 0.0 +logt0039 log10 9.8813129168249309e-324 -0.0 -> -323.0051853474518 -0.0 +logt0040 log10 1e-305 0.0 -> -305.0 0.0 +logt0041 log10 1e-305 -0.0 -> -305.0 -0.0 +logt0042 log10 1e-150 0.0 -> -150.0 0.0 +logt0043 log10 1e-150 -0.0 -> -150.0 -0.0 +logt0044 log10 9.9999999999999998e-17 0.0 -> -16.0 0.0 +logt0045 log10 9.9999999999999998e-17 -0.0 -> -16.0 -0.0 +logt0046 log10 0.001 0.0 -> -3.0 0.0 +logt0047 log10 0.001 -0.0 -> -3.0 -0.0 +logt0048 log10 0.57899999999999996 0.0 -> -0.23732143627256383 0.0 +logt0049 log10 0.57899999999999996 -0.0 -> -0.23732143627256383 -0.0 +logt0050 log10 0.99999999999999989 0.0 -> -4.821637332766436e-17 0.0 +logt0051 log10 0.99999999999999989 -0.0 -> -4.821637332766436e-17 -0.0 +logt0052 log10 1.0000000000000002 0.0 -> 9.6432746655328696e-17 0.0 +logt0053 log10 1.0000000000000002 -0.0 -> 9.6432746655328696e-17 -0.0 +logt0054 log10 1.0009999999999999 0.0 -> 0.0004340774793185929 0.0 +logt0055 log10 1.0009999999999999 -0.0 -> 0.0004340774793185929 -0.0 +logt0056 log10 2.0 0.0 -> 0.3010299956639812 0.0 +logt0057 log10 2.0 -0.0 -> 0.3010299956639812 -0.0 +logt0058 log10 23.0 0.0 -> 1.3617278360175928 0.0 +logt0059 log10 23.0 -0.0 -> 1.3617278360175928 -0.0 +logt0060 log10 10000000000000000.0 0.0 -> 16.0 0.0 +logt0061 log10 10000000000000000.0 -0.0 -> 16.0 -0.0 +logt0062 log10 9.9999999999999998e+149 0.0 -> 150.0 0.0 +logt0063 log10 9.9999999999999998e+149 -0.0 -> 150.0 -0.0 +logt0064 log10 1.0000000000000001e+299 0.0 -> 299.0 0.0 +logt0065 log10 1.0000000000000001e+299 -0.0 -> 299.0 -0.0 + +-- random inputs +logt0066 log10 -1.9830454945186191e-16 -2.0334448025673346 -> 0.30823238806798503 -0.68218817692092071 +logt0067 log10 -0.96745853024741857 -0.84995816228299692 -> 0.10984528422284802 -1.051321426174086 +logt0068 log10 -0.1603644313948418 -0.2929942111041835 -> -0.47624115633305419 -0.89967884023059597 +logt0069 log10 -0.15917913168438699 -0.25238799251132177 -> -0.52521304641665956 -0.92655790645688119 +logt0070 log10 -0.68907818535078802 -3.0693105853476346 -> 0.4977187885066448 -0.77809953119328823 +logt0071 log10 -17.268133447565589 6.8165120014604756 -> 1.2686912008098534 1.2010954629104202 +logt0072 log10 -1.7153894479690328 26.434055372802636 -> 1.423076309032751 0.71033145859005309 +logt0073 log10 -8.0456794648936578e-06 0.19722758057570208 -> -0.70503235244987561 0.68220589348055516 +logt0074 log10 -2.4306442691323173 0.6846919750700996 -> 0.40230257845332595 1.2451292533748923 +logt0075 log10 -3.5488049250888194 0.45324040643185254 -> 0.55359553977141063 1.3092085108866405 +logt0076 log10 0.18418516851510189 -0.26062518836212617 -> -0.49602019732913638 -0.41500503556604301 +logt0077 log10 2.7124837795638399 -13.148769067133387 -> 1.1279348613317008 -0.59383616643803216 +logt0078 log10 3.6521275476169149e-13 -3.7820543023170673e-05 -> -4.4222722398941112 -0.68218817272717114 +logt0079 log10 5.0877545813862239 -1.2834978326786852 -> 0.71992371806426847 -0.10732104352159283 +logt0080 log10 0.26477986808461512 -0.67659001194187429 -> -0.13873139935281681 -0.52018649631300229 +logt0081 log10 0.0014754261398071962 5.3514691608205442 -> 0.72847304354528819 0.6820684398178033 +logt0082 log10 0.29667334462157885 0.00020056045042584795 -> -0.52772137299296806 0.00029359659442937261 +logt0083 log10 0.82104233671099425 3.9005387130133102 -> 0.60053889028349361 0.59208690021184018 +logt0084 log10 0.27268135358180667 124.42088110945804 -> 2.094894315538069 0.68123637673656989 +logt0085 log10 0.0026286959168267485 0.47795808180573013 -> -0.32060362226100814 0.67979964816877081 + +-- values near infinity +logt0100 log10 1.0512025744003172e+308 7.2621669750664611e+307 -> 308.10641562682065 0.26255461408256975 +logt0101 log10 5.5344249034372126e+307 -1.2155859158431275e+308 -> 308.12569106009209 -0.496638782296212 +logt0102 log10 -1.3155575403469408e+308 1.1610793541663864e+308 -> 308.24419052091019 1.0503359777705266 +logt0103 log10 -1.632366720973235e+308 -1.54299446211448e+308 -> 308.3514500834093 -1.0355024924378222 +logt0104 log10 0.0 5.9449276692327712e+307 -> 307.77414657501117 0.68218817692092071 +logt0105 log10 -0.0 1.1201850459025692e+308 -> 308.04928977068465 0.68218817692092071 +logt0106 log10 0.0 -1.6214225933466528e+308 -> 308.20989622030174 -0.68218817692092071 +logt0107 log10 -0.0 -1.7453269791591058e+308 -> 308.24187680203539 -0.68218817692092071 +logt0108 log10 1.440860577601428e+308 0.0 -> 308.15862195908755 0.0 +logt0109 log10 1.391515176148282e+308 -0.0 -> 308.14348794720007 -0.0 +logt0110 log10 -1.201354401295296e+308 0.0 -> 308.07967114380773 1.3643763538418414 +logt0111 log10 -1.6704337825976804e+308 -0.0 -> 308.22282926451624 -1.3643763538418414 +logt0112 log10 7.2276974655190223e+307 7.94879711369164 -> 307.85899996571993 4.7762357800858463e-308 +logt0113 log10 1.1207859593716076e+308 -6.1956200868221147 -> 308.04952268169455 -2.4007470767963597e-308 +logt0114 log10 -4.6678933874471045e+307 9.947107893220382 -> 307.66912092839902 1.3643763538418414 +logt0115 log10 -1.5108012453950142e+308 -5.3117197179375619 -> 308.1792073341565 -1.3643763538418414 +logt0116 log10 7.4903750871504435 1.5320703776626352e+308 -> 308.18527871564157 0.68218817692092071 +logt0117 log10 5.9760325525654778 -8.0149473997349123e+307 -> 307.90390067652424 -0.68218817692092071 +logt0118 log10 -7.880194206386629 1.7861845814767441e+308 -> 308.25192633617331 0.68218817692092071 +logt0119 log10 -9.886438993852865 -6.19235781080747e+307 -> 307.79185604308338 -0.68218817692092071 + +-- values near 0 +logt0120 log10 2.2996867579227779e-308 6.7861840770939125e-312 -> -307.63833129662572 0.00012815668056362305 +logt0121 log10 6.9169190417774516e-323 -9.0414013188948118e-322 -> -321.04249706727148 -0.64902805353306059 +logt0122 log10 -1.5378064962914011e-316 1.8243628389354635e-310 -> -309.73888878263222 0.68218854299989429 +logt0123 log10 -2.3319898483706837e-321 -2.2358763941866371e-313 -> -312.65055220919641 -0.68218818145055538 +logt0124 log10 0.0 3.872770101081121e-315 -> -314.41197828323476 0.68218817692092071 +logt0125 log10 -0.0 9.6342800939043076e-322 -> -321.01618073175331 0.68218817692092071 +logt0126 log10 0.0 -2.266099393427834e-308 -> -307.64472104545649 -0.68218817692092071 +logt0127 log10 -0.0 -2.1184695673766626e-315 -> -314.67397777042407 -0.68218817692092071 +logt0128 log10 1.1363509854348671e-322 0.0 -> -321.94448750709819 0.0 +logt0129 log10 3.5572726500569751e-322 -0.0 -> -321.44888284668451 -0.0 +logt0130 log10 -2.3696071074040593e-310 0.0 -> -309.62532365619722 1.3643763538418414 +logt0131 log10 -2.813283897266934e-317 -0.0 -> -316.55078643961042 -1.3643763538418414 + +-- values near the unit circle +logt0200 log10 -0.59999999999999998 0.80000000000000004 -> 9.6432746655328709e-18 0.96165715756846815 +logt0201 log10 0.79999999999999993 0.60000000000000009 -> 2.6765463916147622e-33 0.2794689806475476 + +-- special values +logt1000 log10 -0.0 0.0 -> -inf 1.3643763538418414 divide-by-zero +logt1001 log10 0.0 0.0 -> -inf 0.0 divide-by-zero +logt1002 log10 0.0 inf -> inf 0.68218817692092071 +logt1003 log10 2.3 inf -> inf 0.68218817692092071 +logt1004 log10 -0.0 inf -> inf 0.68218817692092071 +logt1005 log10 -2.3 inf -> inf 0.68218817692092071 +logt1006 log10 0.0 nan -> nan nan +logt1007 log10 2.3 nan -> nan nan +logt1008 log10 -0.0 nan -> nan nan +logt1009 log10 -2.3 nan -> nan nan +logt1010 log10 -inf 0.0 -> inf 1.3643763538418414 +logt1011 log10 -inf 2.3 -> inf 1.3643763538418414 +logt1012 log10 inf 0.0 -> inf 0.0 +logt1013 log10 inf 2.3 -> inf 0.0 +logt1014 log10 -inf inf -> inf 1.0232822653813811 +logt1015 log10 inf inf -> inf 0.34109408846046035 +logt1016 log10 inf nan -> inf nan +logt1017 log10 -inf nan -> inf nan +logt1018 log10 nan 0.0 -> nan nan +logt1019 log10 nan 2.3 -> nan nan +logt1020 log10 nan inf -> inf nan +logt1021 log10 nan nan -> nan nan +logt1022 log10 -0.0 -0.0 -> -inf -1.3643763538418414 divide-by-zero +logt1023 log10 0.0 -0.0 -> -inf -0.0 divide-by-zero +logt1024 log10 0.0 -inf -> inf -0.68218817692092071 +logt1025 log10 2.3 -inf -> inf -0.68218817692092071 +logt1026 log10 -0.0 -inf -> inf -0.68218817692092071 +logt1027 log10 -2.3 -inf -> inf -0.68218817692092071 +logt1028 log10 -inf -0.0 -> inf -1.3643763538418414 +logt1029 log10 -inf -2.3 -> inf -1.3643763538418414 +logt1030 log10 inf -0.0 -> inf -0.0 +logt1031 log10 inf -2.3 -> inf -0.0 +logt1032 log10 -inf -inf -> inf -1.0232822653813811 +logt1033 log10 inf -inf -> inf -0.34109408846046035 +logt1034 log10 nan -0.0 -> nan nan +logt1035 log10 nan -2.3 -> nan nan +logt1036 log10 nan -inf -> inf nan + + +----------------------- +-- sqrt: Square root -- +----------------------- + +-- zeros +sqrt0000 sqrt 0.0 0.0 -> 0.0 0.0 +sqrt0001 sqrt 0.0 -0.0 -> 0.0 -0.0 +sqrt0002 sqrt -0.0 0.0 -> 0.0 0.0 +sqrt0003 sqrt -0.0 -0.0 -> 0.0 -0.0 + +-- values along both sides of real axis +sqrt0010 sqrt -9.8813129168249309e-324 0.0 -> 0.0 3.1434555694052576e-162 +sqrt0011 sqrt -9.8813129168249309e-324 -0.0 -> 0.0 -3.1434555694052576e-162 +sqrt0012 sqrt -1e-305 0.0 -> 0.0 3.1622776601683791e-153 +sqrt0013 sqrt -1e-305 -0.0 -> 0.0 -3.1622776601683791e-153 +sqrt0014 sqrt -1e-150 0.0 -> 0.0 9.9999999999999996e-76 +sqrt0015 sqrt -1e-150 -0.0 -> 0.0 -9.9999999999999996e-76 +sqrt0016 sqrt -9.9999999999999998e-17 0.0 -> 0.0 1e-08 +sqrt0017 sqrt -9.9999999999999998e-17 -0.0 -> 0.0 -1e-08 +sqrt0018 sqrt -0.001 0.0 -> 0.0 0.031622776601683791 +sqrt0019 sqrt -0.001 -0.0 -> 0.0 -0.031622776601683791 +sqrt0020 sqrt -0.57899999999999996 0.0 -> 0.0 0.76092049518987193 +sqrt0021 sqrt -0.57899999999999996 -0.0 -> 0.0 -0.76092049518987193 +sqrt0022 sqrt -0.99999999999999989 0.0 -> 0.0 0.99999999999999989 +sqrt0023 sqrt -0.99999999999999989 -0.0 -> 0.0 -0.99999999999999989 +sqrt0024 sqrt -1.0000000000000002 0.0 -> 0.0 1.0 +sqrt0025 sqrt -1.0000000000000002 -0.0 -> 0.0 -1.0 +sqrt0026 sqrt -1.0009999999999999 0.0 -> 0.0 1.000499875062461 +sqrt0027 sqrt -1.0009999999999999 -0.0 -> 0.0 -1.000499875062461 +sqrt0028 sqrt -2.0 0.0 -> 0.0 1.4142135623730951 +sqrt0029 sqrt -2.0 -0.0 -> 0.0 -1.4142135623730951 +sqrt0030 sqrt -23.0 0.0 -> 0.0 4.7958315233127191 +sqrt0031 sqrt -23.0 -0.0 -> 0.0 -4.7958315233127191 +sqrt0032 sqrt -10000000000000000.0 0.0 -> 0.0 100000000.0 +sqrt0033 sqrt -10000000000000000.0 -0.0 -> 0.0 -100000000.0 +sqrt0034 sqrt -9.9999999999999998e+149 0.0 -> 0.0 9.9999999999999993e+74 +sqrt0035 sqrt -9.9999999999999998e+149 -0.0 -> 0.0 -9.9999999999999993e+74 +sqrt0036 sqrt -1.0000000000000001e+299 0.0 -> 0.0 3.1622776601683796e+149 +sqrt0037 sqrt -1.0000000000000001e+299 -0.0 -> 0.0 -3.1622776601683796e+149 +sqrt0038 sqrt 9.8813129168249309e-324 0.0 -> 3.1434555694052576e-162 0.0 +sqrt0039 sqrt 9.8813129168249309e-324 -0.0 -> 3.1434555694052576e-162 -0.0 +sqrt0040 sqrt 1e-305 0.0 -> 3.1622776601683791e-153 0.0 +sqrt0041 sqrt 1e-305 -0.0 -> 3.1622776601683791e-153 -0.0 +sqrt0042 sqrt 1e-150 0.0 -> 9.9999999999999996e-76 0.0 +sqrt0043 sqrt 1e-150 -0.0 -> 9.9999999999999996e-76 -0.0 +sqrt0044 sqrt 9.9999999999999998e-17 0.0 -> 1e-08 0.0 +sqrt0045 sqrt 9.9999999999999998e-17 -0.0 -> 1e-08 -0.0 +sqrt0046 sqrt 0.001 0.0 -> 0.031622776601683791 0.0 +sqrt0047 sqrt 0.001 -0.0 -> 0.031622776601683791 -0.0 +sqrt0048 sqrt 0.57899999999999996 0.0 -> 0.76092049518987193 0.0 +sqrt0049 sqrt 0.57899999999999996 -0.0 -> 0.76092049518987193 -0.0 +sqrt0050 sqrt 0.99999999999999989 0.0 -> 0.99999999999999989 0.0 +sqrt0051 sqrt 0.99999999999999989 -0.0 -> 0.99999999999999989 -0.0 +sqrt0052 sqrt 1.0000000000000002 0.0 -> 1.0 0.0 +sqrt0053 sqrt 1.0000000000000002 -0.0 -> 1.0 -0.0 +sqrt0054 sqrt 1.0009999999999999 0.0 -> 1.000499875062461 0.0 +sqrt0055 sqrt 1.0009999999999999 -0.0 -> 1.000499875062461 -0.0 +sqrt0056 sqrt 2.0 0.0 -> 1.4142135623730951 0.0 +sqrt0057 sqrt 2.0 -0.0 -> 1.4142135623730951 -0.0 +sqrt0058 sqrt 23.0 0.0 -> 4.7958315233127191 0.0 +sqrt0059 sqrt 23.0 -0.0 -> 4.7958315233127191 -0.0 +sqrt0060 sqrt 10000000000000000.0 0.0 -> 100000000.0 0.0 +sqrt0061 sqrt 10000000000000000.0 -0.0 -> 100000000.0 -0.0 +sqrt0062 sqrt 9.9999999999999998e+149 0.0 -> 9.9999999999999993e+74 0.0 +sqrt0063 sqrt 9.9999999999999998e+149 -0.0 -> 9.9999999999999993e+74 -0.0 +sqrt0064 sqrt 1.0000000000000001e+299 0.0 -> 3.1622776601683796e+149 0.0 +sqrt0065 sqrt 1.0000000000000001e+299 -0.0 -> 3.1622776601683796e+149 -0.0 + +-- random inputs +sqrt0100 sqrt -0.34252542541549913 -223039880.15076211 -> 10560.300180587592 -10560.300196805192 +sqrt0101 sqrt -0.88790791393018909 -5.3307751730827402 -> 1.5027154613689004 -1.7737140896343291 +sqrt0102 sqrt -113916.89291310767 -0.018143374626153858 -> 2.6877817875351178e-05 -337.51576691038952 +sqrt0103 sqrt -0.63187172386197121 -0.26293913366617694 -> 0.16205707495266153 -0.81125471918761971 +sqrt0104 sqrt -0.058185169308906215 -2.3548312990430991 -> 1.0717660342420072 -1.0985752598086966 +sqrt0105 sqrt -1.0580584765935896 0.14400319259151736 -> 0.069837489270111242 1.030987755262468 +sqrt0106 sqrt -1.1667595947504932 0.11159711473953678 -> 0.051598531319315251 1.0813981705111229 +sqrt0107 sqrt -0.5123728411449906 0.026175433648339085 -> 0.018278026262418718 0.71603556293597614 +sqrt0108 sqrt -3.7453400060067228 1.0946500314809635 -> 0.27990088541692498 1.9554243814742367 +sqrt0109 sqrt -0.0027736121575097673 1.0367943000839817 -> 0.71903560338719175 0.72096172651250545 +sqrt0110 sqrt 1501.2559699453188 -1.1997325207283589 -> 38.746047664730959 -0.015481998720355024 +sqrt0111 sqrt 1.4830075326850578 -0.64100878436755349 -> 1.244712815741096 -0.25749264258434584 +sqrt0112 sqrt 0.095395618499734602 -0.48226565701639595 -> 0.54175904053472879 -0.44509239434231551 +sqrt0113 sqrt 0.50109185681863277 -0.54054037379892561 -> 0.7868179858332387 -0.34349772344520979 +sqrt0114 sqrt 0.98779807595367897 -0.00019848758437225191 -> 0.99388031770665153 -9.9854872279921968e-05 +sqrt0115 sqrt 11.845472380792259 0.0010051104581506761 -> 3.4417252072345397 0.00014601840612346451 +sqrt0116 sqrt 2.3558249686735975 0.25605157371744403 -> 1.5371278477386647 0.083288964575761404 +sqrt0117 sqrt 0.77584894123159098 1.0496420627016076 -> 1.0200744386390885 0.51449287568756552 +sqrt0118 sqrt 1.8961715669604893 0.34940793467158854 -> 1.3827991781411615 0.12634080935066902 +sqrt0119 sqrt 0.96025378316565801 0.69573224860140515 -> 1.0358710342209998 0.33581991658093457 + +-- values near 0 +sqrt0120 sqrt 7.3577938365086866e-313 8.1181408465112743e-319 -> 8.5777583531543516e-157 4.732087634251168e-163 +sqrt0121 sqrt 1.2406883874892108e-310 -5.1210133324269776e-312 -> 1.1140990057468052e-155 -2.2982756945349973e-157 +sqrt0122 sqrt -7.1145453001139502e-322 2.9561379244703735e-314 -> 1.2157585807480286e-157 1.2157586100077242e-157 +sqrt0123 sqrt -4.9963244206801218e-314 -8.4718424423690227e-319 -> 1.8950582312540437e-162 -2.2352459419578971e-157 +sqrt0124 sqrt 0.0 7.699553609385195e-318 -> 1.9620848107797476e-159 1.9620848107797476e-159 +sqrt0125 sqrt -0.0 3.3900826606499415e-309 -> 4.1170879639922327e-155 4.1170879639922327e-155 +sqrt0126 sqrt 0.0 -9.8907989772250828e-319 -> 7.032353438652342e-160 -7.032353438652342e-160 +sqrt0127 sqrt -0.0 -1.3722939367590908e-315 -> 2.6194407196566702e-158 -2.6194407196566702e-158 +sqrt0128 sqrt 7.9050503334599447e-323 0.0 -> 8.8910349979403099e-162 0.0 +sqrt0129 sqrt 1.8623241768349486e-309 -0.0 -> 4.3154654173506579e-155 -0.0 +sqrt0130 sqrt -2.665971134499887e-308 0.0 -> 0.0 1.6327801856036491e-154 +sqrt0131 sqrt -1.5477066694467245e-310 -0.0 -> 0.0 -1.2440685951533077e-155 + +-- inputs whose absolute value overflows +sqrt0140 sqrt 1.6999999999999999e+308 -1.6999999999999999e+308 -> 1.4325088230154573e+154 -5.9336458271212207e+153 +sqrt0141 sqrt -1.797e+308 -9.9999999999999999e+306 -> 3.7284476432057307e+152 -1.3410406899802901e+154 + +-- Additional real values (mpmath) +sqrt0150 sqrt 1.7976931348623157e+308 0.0 -> 1.3407807929942596355e+154 0.0 +sqrt0151 sqrt 2.2250738585072014e-308 0.0 -> 1.4916681462400413487e-154 0.0 +sqrt0152 sqrt 5e-324 0.0 -> 2.2227587494850774834e-162 0.0 +sqrt0153 sqrt 5e-324 1.0 -> 0.7071067811865476 0.7071067811865476 + +-- special values +sqrt1000 sqrt 0.0 0.0 -> 0.0 0.0 +sqrt1001 sqrt -0.0 0.0 -> 0.0 0.0 +sqrt1002 sqrt 0.0 inf -> inf inf +sqrt1003 sqrt 2.3 inf -> inf inf +sqrt1004 sqrt inf inf -> inf inf +sqrt1005 sqrt -0.0 inf -> inf inf +sqrt1006 sqrt -2.3 inf -> inf inf +sqrt1007 sqrt -inf inf -> inf inf +sqrt1008 sqrt nan inf -> inf inf +sqrt1009 sqrt 0.0 nan -> nan nan +sqrt1010 sqrt 2.3 nan -> nan nan +sqrt1011 sqrt -0.0 nan -> nan nan +sqrt1012 sqrt -2.3 nan -> nan nan +sqrt1013 sqrt -inf 0.0 -> 0.0 inf +sqrt1014 sqrt -inf 2.3 -> 0.0 inf +sqrt1015 sqrt inf 0.0 -> inf 0.0 +sqrt1016 sqrt inf 2.3 -> inf 0.0 +sqrt1017 sqrt -inf nan -> nan inf ignore-imag-sign +sqrt1018 sqrt inf nan -> inf nan +sqrt1019 sqrt nan 0.0 -> nan nan +sqrt1020 sqrt nan 2.3 -> nan nan +sqrt1021 sqrt nan nan -> nan nan +sqrt1022 sqrt 0.0 -0.0 -> 0.0 -0.0 +sqrt1023 sqrt -0.0 -0.0 -> 0.0 -0.0 +sqrt1024 sqrt 0.0 -inf -> inf -inf +sqrt1025 sqrt 2.3 -inf -> inf -inf +sqrt1026 sqrt inf -inf -> inf -inf +sqrt1027 sqrt -0.0 -inf -> inf -inf +sqrt1028 sqrt -2.3 -inf -> inf -inf +sqrt1029 sqrt -inf -inf -> inf -inf +sqrt1030 sqrt nan -inf -> inf -inf +sqrt1031 sqrt -inf -0.0 -> 0.0 -inf +sqrt1032 sqrt -inf -2.3 -> 0.0 -inf +sqrt1033 sqrt inf -0.0 -> inf -0.0 +sqrt1034 sqrt inf -2.3 -> inf -0.0 +sqrt1035 sqrt nan -0.0 -> nan nan +sqrt1036 sqrt nan -2.3 -> nan nan + + +-- For exp, cosh, sinh, tanh we limit tests to arguments whose +-- imaginary part is less than 10 in absolute value: most math +-- libraries have poor accuracy for (real) sine and cosine for +-- large arguments, and the accuracy of these complex functions +-- suffer correspondingly. +-- +-- Similarly, for cos, sin and tan we limit tests to arguments +-- with relatively small real part. + + +------------------------------- +-- exp: Exponential function -- +------------------------------- + +-- zeros +exp0000 exp 0.0 0.0 -> 1.0 0.0 +exp0001 exp 0.0 -0.0 -> 1.0 -0.0 +exp0002 exp -0.0 0.0 -> 1.0 0.0 +exp0003 exp -0.0 -0.0 -> 1.0 -0.0 + +-- random inputs +exp0004 exp -17.957359009564684 -1.108613895795274 -> 7.0869292576226611e-09 -1.4225929202377833e-08 +exp0005 exp -1.4456149663368642e-15 -0.75359817331772239 -> 0.72923148323917997 -0.68426708517419033 +exp0006 exp -0.76008654883512661 -0.46657235480105019 -> 0.41764393109928666 -0.21035108396792854 +exp0007 exp -5.7071614697735731 -2.3744161818115816e-11 -> 0.0033220890242068356 -7.8880219364953578e-14 +exp0008 exp -0.4653981327927097 -5.2236706667445587e-21 -> 0.62788507378216663 -3.2798648420026468e-21 +exp0009 exp -3.2444565242295518 1.1535625304243959 -> 0.015799936931457641 0.035644950380024749 +exp0010 exp -3.0651456337977727 0.87765086532391878 -> 0.029805595629855953 0.035882775180855669 +exp0011 exp -0.11080823753233926 0.96486386300873106 -> 0.50979112534376314 0.73575512419561562 +exp0012 exp -2.5629722598928648 0.019636235754708079 -> 0.077060452853917397 0.0015133717341137684 +exp0013 exp -3.3201709957983357e-10 1.2684017344487268 -> 0.29780699855434889 0.95462610007689186 +exp0014 exp 0.88767276057993272 -0.18953422986895557 -> 2.3859624049858095 -0.45771559132044426 +exp0015 exp 1.5738333486794742 -2.2576803075544328e-11 -> 4.8251091132458654 -1.0893553826776623e-10 +exp0016 exp 1.6408702341813795 -1.438879484380837 -> 0.6786733590689048 -5.1148284173168825 +exp0017 exp 1.820279424202033 -0.020812040370785722 -> 6.1722462896420902 -0.1284755888435051 +exp0018 exp 1.7273965735945873 -0.61140621328954947 -> 4.6067931898799976 -3.2294267694441308 +exp0019 exp 2.5606034306862995 0.098153136008435504 -> 12.881325889966629 1.2684184812864494 +exp0020 exp 10.280368619483029 3.4564622559748535 -> -27721.283321551502 -9028.9663215568835 +exp0021 exp 1.104007405129741e-155 0.21258803067317278 -> 0.97748813933531764 0.21099037290544478 +exp0022 exp 0.027364777809295172 0.00059226603500623363 -> 1.0277424518451876 0.0006086970181346579 +exp0023 exp 0.94356313429255245 3.418530463518592 -> -2.4712285695346194 -0.70242654900218349 + +-- cases where exp(z) representable, exp(z.real) not +exp0030 exp 710.0 0.78500000000000003 -> 1.5803016909637158e+308 1.5790437551806911e+308 +exp0031 exp 710.0 -0.78500000000000003 -> 1.5803016909637158e+308 -1.5790437551806911e+308 + +-- values for which exp(x) is subnormal, or underflows to 0 +exp0040 exp -735.0 0.78500000000000003 -> 4.3976783136329355e-320 4.3942198541120468e-320 +exp0041 exp -735.0 -2.3559999999999999 -> -4.3952079854037293e-320 -4.396690182341253e-320 +exp0042 exp -745.0 0.0 -> 4.9406564584124654e-324 0.0 +exp0043 exp -745.0 0.7 -> 0.0 0.0 +exp0044 exp -745.0 2.1 -> -0.0 0.0 +exp0045 exp -745.0 3.7 -> -0.0 -0.0 +exp0046 exp -745.0 5.3 -> 0.0 -0.0 + +-- values for which exp(z) overflows +exp0050 exp 710.0 0.0 -> inf 0.0 overflow +exp0051 exp 711.0 0.7 -> inf inf overflow +exp0052 exp 710.0 1.5 -> 1.5802653829857376e+307 inf overflow +exp0053 exp 710.0 1.6 -> -6.5231579995501372e+306 inf overflow +exp0054 exp 710.0 2.8 -> -inf 7.4836177417448528e+307 overflow + +-- Additional real values (mpmath) +exp0070 exp 1e-08 0.0 -> 1.00000001000000005 0.0 +exp0071 exp 0.0003 0.0 -> 1.0003000450045003375 0.0 +exp0072 exp 0.2 0.0 -> 1.2214027581601698475 0.0 +exp0073 exp 1.0 0.0 -> 2.7182818284590452354 0.0 +exp0074 exp -1e-08 0.0 -> 0.99999999000000005 0.0 +exp0075 exp -0.0003 0.0 -> 0.99970004499550033751 0.0 +exp0076 exp -1.0 0.0 -> 0.3678794411714423216 0.0 +exp0077 exp 2.220446049250313e-16 0.0 -> 1.000000000000000222 0.0 +exp0078 exp -1.1102230246251565e-16 0.0 -> 0.99999999999999988898 0.0 +exp0079 exp 2.302585092994046 0.0 -> 10.000000000000002171 0.0 +exp0080 exp -2.302585092994046 0.0 -> 0.099999999999999978292 0.0 +exp0081 exp 709.7827 0.0 -> 1.7976699566638014654e+308 0.0 + +-- special values +exp1000 exp 0.0 0.0 -> 1.0 0.0 +exp1001 exp -0.0 0.0 -> 1.0 0.0 +exp1002 exp 0.0 inf -> nan nan invalid +exp1003 exp 2.3 inf -> nan nan invalid +exp1004 exp -0.0 inf -> nan nan invalid +exp1005 exp -2.3 inf -> nan nan invalid +exp1006 exp 0.0 nan -> nan nan +exp1007 exp 2.3 nan -> nan nan +exp1008 exp -0.0 nan -> nan nan +exp1009 exp -2.3 nan -> nan nan +exp1010 exp -inf 0.0 -> 0.0 0.0 +exp1011 exp -inf 1.4 -> 0.0 0.0 +exp1012 exp -inf 2.8 -> -0.0 0.0 +exp1013 exp -inf 4.2 -> -0.0 -0.0 +exp1014 exp -inf 5.6 -> 0.0 -0.0 +exp1015 exp -inf 7.0 -> 0.0 0.0 +exp1016 exp inf 0.0 -> inf 0.0 +exp1017 exp inf 1.4 -> inf inf +exp1018 exp inf 2.8 -> -inf inf +exp1019 exp inf 4.2 -> -inf -inf +exp1020 exp inf 5.6 -> inf -inf +exp1021 exp inf 7.0 -> inf inf +exp1022 exp -inf inf -> 0.0 0.0 ignore-real-sign ignore-imag-sign +exp1023 exp inf inf -> inf nan invalid ignore-real-sign +exp1024 exp -inf nan -> 0.0 0.0 ignore-real-sign ignore-imag-sign +exp1025 exp inf nan -> inf nan ignore-real-sign +exp1026 exp nan 0.0 -> nan 0.0 +exp1027 exp nan 2.3 -> nan nan +exp1028 exp nan inf -> nan nan +exp1029 exp nan nan -> nan nan +exp1030 exp 0.0 -0.0 -> 1.0 -0.0 +exp1031 exp -0.0 -0.0 -> 1.0 -0.0 +exp1032 exp 0.0 -inf -> nan nan invalid +exp1033 exp 2.3 -inf -> nan nan invalid +exp1034 exp -0.0 -inf -> nan nan invalid +exp1035 exp -2.3 -inf -> nan nan invalid +exp1036 exp -inf -0.0 -> 0.0 -0.0 +exp1037 exp -inf -1.4 -> 0.0 -0.0 +exp1038 exp -inf -2.8 -> -0.0 -0.0 +exp1039 exp -inf -4.2 -> -0.0 0.0 +exp1040 exp -inf -5.6 -> 0.0 0.0 +exp1041 exp -inf -7.0 -> 0.0 -0.0 +exp1042 exp inf -0.0 -> inf -0.0 +exp1043 exp inf -1.4 -> inf -inf +exp1044 exp inf -2.8 -> -inf -inf +exp1045 exp inf -4.2 -> -inf inf +exp1046 exp inf -5.6 -> inf inf +exp1047 exp inf -7.0 -> inf -inf +exp1048 exp -inf -inf -> 0.0 0.0 ignore-real-sign ignore-imag-sign +exp1049 exp inf -inf -> inf nan invalid ignore-real-sign +exp1050 exp nan -0.0 -> nan -0.0 +exp1051 exp nan -2.3 -> nan nan +exp1052 exp nan -inf -> nan nan + + +----------------------------- +-- cosh: Hyperbolic Cosine -- +----------------------------- + +-- zeros +cosh0000 cosh 0.0 0.0 -> 1.0 0.0 +cosh0001 cosh 0.0 -0.0 -> 1.0 -0.0 +cosh0002 cosh -0.0 0.0 -> 1.0 -0.0 +cosh0003 cosh -0.0 -0.0 -> 1.0 0.0 + +-- random inputs +cosh0004 cosh -0.85395264297414253 -8.8553756148671958 -> -1.1684340348021185 0.51842195359787435 +cosh0005 cosh -19.584904237211223 -0.066582627994906177 -> 159816812.23336992 10656776.050406246 +cosh0006 cosh -0.11072618401130772 -1.484820215073247 -> 0.086397164744949503 0.11054275637717284 +cosh0007 cosh -3.4764840250681752 -0.48440348288275276 -> 14.325931955190844 7.5242053548737955 +cosh0008 cosh -0.52047063604524602 -0.3603805382775585 -> 1.0653940354683802 0.19193293606252473 +cosh0009 cosh -1.39518962975995 0.0074738604700702906 -> 2.1417031027235969 -0.01415518712296308 +cosh0010 cosh -0.37107064757653541 0.14728085307856609 -> 1.0580601496776991 -0.055712531964568587 +cosh0011 cosh -5.8470200958739653 4.0021722388336292 -> -112.86220667618285 131.24734033545013 +cosh0012 cosh -0.1700261444851883 0.97167540135354513 -> 0.57208748253577946 -0.1410904820240203 +cosh0013 cosh -0.44042397902648783 1.0904791964139742 -> 0.50760322393058133 -0.40333966652010816 +cosh0014 cosh 0.052267552491867299 -3.8889011430644174 -> -0.73452303414639297 0.035540704833537134 +cosh0015 cosh 0.98000764177127453 -1.2548829247784097 -> 0.47220747341416142 -1.0879421432180316 +cosh0016 cosh 0.083594701222644008 -0.88847899930181284 -> 0.63279782419312613 -0.064954566816002285 +cosh0017 cosh 1.38173531783776 -0.43185040816732229 -> 1.9221663374671647 -0.78073830858849347 +cosh0018 cosh 0.57315681120148465 -0.22255760951027942 -> 1.1399733125173004 -0.1335512343605956 +cosh0019 cosh 1.8882512333062347 4.5024932182383797 -> -0.7041602065362691 -3.1573822131964615 +cosh0020 cosh 0.5618219206858317 0.92620452129575348 -> 0.69822380405378381 0.47309067471054522 +cosh0021 cosh 0.54361442847062591 0.64176483583018462 -> 0.92234462074193491 0.34167906495845501 +cosh0022 cosh 0.0014777403107920331 1.3682028122677661 -> 0.2012106963899549 0.001447518137863219 +cosh0023 cosh 2.218885944363501 2.0015727395883687 -> -1.94294321081968 4.1290269176083196 + +-- large real part +cosh0030 cosh 710.5 2.3519999999999999 -> -1.2967465239355998e+308 1.3076707908857333e+308 +cosh0031 cosh -710.5 0.69999999999999996 -> 1.4085466381392499e+308 -1.1864024666450239e+308 +cosh0032 cosh 720.0 0.0 -> inf 0.0 overflow + +-- Additional real values (mpmath) +cosh0050 cosh 1e-150 0.0 -> 1.0 0.0 +cosh0051 cosh 1e-18 0.0 -> 1.0 0.0 +cosh0052 cosh 1e-09 0.0 -> 1.0000000000000000005 0.0 +cosh0053 cosh 0.0003 0.0 -> 1.0000000450000003375 0.0 +cosh0054 cosh 0.2 0.0 -> 1.0200667556190758485 0.0 +cosh0055 cosh 1.0 0.0 -> 1.5430806348152437785 0.0 +cosh0056 cosh -1e-18 0.0 -> 1.0 -0.0 +cosh0057 cosh -0.0003 0.0 -> 1.0000000450000003375 -0.0 +cosh0058 cosh -1.0 0.0 -> 1.5430806348152437785 -0.0 +cosh0059 cosh 1.3169578969248168 0.0 -> 2.0000000000000001504 0.0 +cosh0060 cosh -1.3169578969248168 0.0 -> 2.0000000000000001504 -0.0 +cosh0061 cosh 17.328679513998633 0.0 -> 16777216.000000021938 0.0 +cosh0062 cosh 18.714973875118524 0.0 -> 67108864.000000043662 0.0 +cosh0063 cosh 709.7827 0.0 -> 8.9883497833190073272e+307 0.0 +cosh0064 cosh -709.7827 0.0 -> 8.9883497833190073272e+307 -0.0 + +-- special values +cosh1000 cosh 0.0 0.0 -> 1.0 0.0 +cosh1001 cosh 0.0 inf -> nan 0.0 invalid ignore-imag-sign +cosh1002 cosh 0.0 nan -> nan 0.0 ignore-imag-sign +cosh1003 cosh 2.3 inf -> nan nan invalid +cosh1004 cosh 2.3 nan -> nan nan +cosh1005 cosh inf 0.0 -> inf 0.0 +cosh1006 cosh inf 1.4 -> inf inf +cosh1007 cosh inf 2.8 -> -inf inf +cosh1008 cosh inf 4.2 -> -inf -inf +cosh1009 cosh inf 5.6 -> inf -inf +cosh1010 cosh inf 7.0 -> inf inf +cosh1011 cosh inf inf -> inf nan invalid ignore-real-sign +cosh1012 cosh inf nan -> inf nan +cosh1013 cosh nan 0.0 -> nan 0.0 ignore-imag-sign +cosh1014 cosh nan 2.3 -> nan nan +cosh1015 cosh nan inf -> nan nan +cosh1016 cosh nan nan -> nan nan +cosh1017 cosh 0.0 -0.0 -> 1.0 -0.0 +cosh1018 cosh 0.0 -inf -> nan 0.0 invalid ignore-imag-sign +cosh1019 cosh 2.3 -inf -> nan nan invalid +cosh1020 cosh inf -0.0 -> inf -0.0 +cosh1021 cosh inf -1.4 -> inf -inf +cosh1022 cosh inf -2.8 -> -inf -inf +cosh1023 cosh inf -4.2 -> -inf inf +cosh1024 cosh inf -5.6 -> inf inf +cosh1025 cosh inf -7.0 -> inf -inf +cosh1026 cosh inf -inf -> inf nan invalid ignore-real-sign +cosh1027 cosh nan -0.0 -> nan 0.0 ignore-imag-sign +cosh1028 cosh nan -2.3 -> nan nan +cosh1029 cosh nan -inf -> nan nan +cosh1030 cosh -0.0 -0.0 -> 1.0 0.0 +cosh1031 cosh -0.0 -inf -> nan 0.0 invalid ignore-imag-sign +cosh1032 cosh -0.0 nan -> nan 0.0 ignore-imag-sign +cosh1033 cosh -2.3 -inf -> nan nan invalid +cosh1034 cosh -2.3 nan -> nan nan +cosh1035 cosh -inf -0.0 -> inf 0.0 +cosh1036 cosh -inf -1.4 -> inf inf +cosh1037 cosh -inf -2.8 -> -inf inf +cosh1038 cosh -inf -4.2 -> -inf -inf +cosh1039 cosh -inf -5.6 -> inf -inf +cosh1040 cosh -inf -7.0 -> inf inf +cosh1041 cosh -inf -inf -> inf nan invalid ignore-real-sign +cosh1042 cosh -inf nan -> inf nan +cosh1043 cosh -0.0 0.0 -> 1.0 -0.0 +cosh1044 cosh -0.0 inf -> nan 0.0 invalid ignore-imag-sign +cosh1045 cosh -2.3 inf -> nan nan invalid +cosh1046 cosh -inf 0.0 -> inf -0.0 +cosh1047 cosh -inf 1.4 -> inf -inf +cosh1048 cosh -inf 2.8 -> -inf -inf +cosh1049 cosh -inf 4.2 -> -inf inf +cosh1050 cosh -inf 5.6 -> inf inf +cosh1051 cosh -inf 7.0 -> inf -inf +cosh1052 cosh -inf inf -> inf nan invalid ignore-real-sign + + +--------------------------- +-- sinh: Hyperbolic Sine -- +--------------------------- + +-- zeros +sinh0000 sinh 0.0 0.0 -> 0.0 0.0 +sinh0001 sinh 0.0 -0.0 -> 0.0 -0.0 +sinh0002 sinh -0.0 0.0 -> -0.0 0.0 +sinh0003 sinh -0.0 -0.0 -> -0.0 -0.0 + +-- random inputs +sinh0004 sinh -17.282588091462742 -0.38187948694103546 -> -14867386.857248396 -5970648.6553516639 +sinh0005 sinh -343.91971203143208 -5.0172868877771525e-22 -> -1.1518691776521735e+149 -5.7792581214689021e+127 +sinh0006 sinh -14.178122253300922 -1.9387157579351293 -> 258440.37909034826 -670452.58500946441 +sinh0007 sinh -1.0343810581686239 -1.0970235266369905 -> -0.56070858278092739 -1.4098883258046697 +sinh0008 sinh -0.066126561416368204 -0.070461584169961872 -> -0.066010558700938124 -0.070557276738637542 +sinh0009 sinh -0.37630149150308484 3.3621734692162173 -> 0.37591118119332617 -0.23447115926369383 +sinh0010 sinh -0.049941960978670055 0.40323767020414625 -> -0.045955482136329009 0.3928878494430646 +sinh0011 sinh -16.647852603903715 0.0026852219129082098 -> -8492566.5739382561 22804.480671133562 +sinh0012 sinh -1.476625314303694 0.89473773116683386 -> -1.2982943334382224 1.7966593367791204 +sinh0013 sinh -422.36429577556913 0.10366634502307912 -> -1.3400321008920044e+183 1.3941600948045599e+182 +sinh0014 sinh 0.09108340745641981 -0.40408227416070353 -> 0.083863724802237902 -0.39480716553935602 +sinh0015 sinh 2.036064132067386 -2.6831729961386239 -> -3.37621124363175 -1.723868330002817 +sinh0016 sinh 2.5616717223063317 -0.0078978498622717767 -> 6.4399415853815869 -0.051472264400722133 +sinh0017 sinh 0.336804011985188 -6.5654622971649337 -> 0.32962499307574578 -0.29449170159995197 +sinh0018 sinh 0.23774603755649693 -0.92467195799232049 -> 0.14449839490603389 -0.82109449053556793 +sinh0019 sinh 0.0011388273541465494 1.9676196882949855 -> -0.00044014605389634999 0.92229398407098806 +sinh0020 sinh 3.2443870105663759 0.8054287559616895 -> 8.8702890778527426 9.2610748597042196 +sinh0021 sinh 0.040628908857054738 0.098206391190944958 -> 0.04044426841671233 0.098129544739707392 +sinh0022 sinh 4.7252283918217696e-30 9.1198155642656697 -> -4.5071980561644404e-30 0.30025730701661713 +sinh0023 sinh 0.043713693678420068 0.22512549887532657 -> 0.042624198673416713 0.22344201231217961 + +-- large real part +sinh0030 sinh 710.5 -2.3999999999999999 -> -1.3579970564885919e+308 -1.24394470907798e+308 +sinh0031 sinh -710.5 0.80000000000000004 -> -1.2830671601735164e+308 1.3210954193997678e+308 +sinh0032 sinh 720.0 0.0 -> inf 0.0 overflow + +-- Additional real values (mpmath) +sinh0050 sinh 1e-100 0.0 -> 1.00000000000000002e-100 0.0 +sinh0051 sinh 5e-17 0.0 -> 4.9999999999999998955e-17 0.0 +sinh0052 sinh 1e-16 0.0 -> 9.999999999999999791e-17 0.0 +sinh0053 sinh 3.7e-08 0.0 -> 3.7000000000000008885e-8 0.0 +sinh0054 sinh 0.001 0.0 -> 0.0010000001666666750208 0.0 +sinh0055 sinh 0.2 0.0 -> 0.20133600254109399895 0.0 +sinh0056 sinh 1.0 0.0 -> 1.1752011936438014569 0.0 +sinh0057 sinh -3.7e-08 0.0 -> -3.7000000000000008885e-8 0.0 +sinh0058 sinh -0.001 0.0 -> -0.0010000001666666750208 0.0 +sinh0059 sinh -1.0 0.0 -> -1.1752011936438014569 0.0 +sinh0060 sinh 1.4436354751788103 0.0 -> 1.9999999999999999078 0.0 +sinh0061 sinh -1.4436354751788103 0.0 -> -1.9999999999999999078 0.0 +sinh0062 sinh 17.328679513998633 0.0 -> 16777215.999999992136 0.0 +sinh0063 sinh 18.714973875118524 0.0 -> 67108864.000000036211 0.0 +sinh0064 sinh 709.7827 0.0 -> 8.9883497833190073272e+307 0.0 +sinh0065 sinh -709.7827 0.0 -> -8.9883497833190073272e+307 0.0 + +-- special values +sinh1000 sinh 0.0 0.0 -> 0.0 0.0 +sinh1001 sinh 0.0 inf -> 0.0 nan invalid ignore-real-sign +sinh1002 sinh 0.0 nan -> 0.0 nan ignore-real-sign +sinh1003 sinh 2.3 inf -> nan nan invalid +sinh1004 sinh 2.3 nan -> nan nan +sinh1005 sinh inf 0.0 -> inf 0.0 +sinh1006 sinh inf 1.4 -> inf inf +sinh1007 sinh inf 2.8 -> -inf inf +sinh1008 sinh inf 4.2 -> -inf -inf +sinh1009 sinh inf 5.6 -> inf -inf +sinh1010 sinh inf 7.0 -> inf inf +sinh1011 sinh inf inf -> inf nan invalid ignore-real-sign +sinh1012 sinh inf nan -> inf nan ignore-real-sign +sinh1013 sinh nan 0.0 -> nan 0.0 +sinh1014 sinh nan 2.3 -> nan nan +sinh1015 sinh nan inf -> nan nan +sinh1016 sinh nan nan -> nan nan +sinh1017 sinh 0.0 -0.0 -> 0.0 -0.0 +sinh1018 sinh 0.0 -inf -> 0.0 nan invalid ignore-real-sign +sinh1019 sinh 2.3 -inf -> nan nan invalid +sinh1020 sinh inf -0.0 -> inf -0.0 +sinh1021 sinh inf -1.4 -> inf -inf +sinh1022 sinh inf -2.8 -> -inf -inf +sinh1023 sinh inf -4.2 -> -inf inf +sinh1024 sinh inf -5.6 -> inf inf +sinh1025 sinh inf -7.0 -> inf -inf +sinh1026 sinh inf -inf -> inf nan invalid ignore-real-sign +sinh1027 sinh nan -0.0 -> nan -0.0 +sinh1028 sinh nan -2.3 -> nan nan +sinh1029 sinh nan -inf -> nan nan +sinh1030 sinh -0.0 -0.0 -> -0.0 -0.0 +sinh1031 sinh -0.0 -inf -> 0.0 nan invalid ignore-real-sign +sinh1032 sinh -0.0 nan -> 0.0 nan ignore-real-sign +sinh1033 sinh -2.3 -inf -> nan nan invalid +sinh1034 sinh -2.3 nan -> nan nan +sinh1035 sinh -inf -0.0 -> -inf -0.0 +sinh1036 sinh -inf -1.4 -> -inf -inf +sinh1037 sinh -inf -2.8 -> inf -inf +sinh1038 sinh -inf -4.2 -> inf inf +sinh1039 sinh -inf -5.6 -> -inf inf +sinh1040 sinh -inf -7.0 -> -inf -inf +sinh1041 sinh -inf -inf -> inf nan invalid ignore-real-sign +sinh1042 sinh -inf nan -> inf nan ignore-real-sign +sinh1043 sinh -0.0 0.0 -> -0.0 0.0 +sinh1044 sinh -0.0 inf -> 0.0 nan invalid ignore-real-sign +sinh1045 sinh -2.3 inf -> nan nan invalid +sinh1046 sinh -inf 0.0 -> -inf 0.0 +sinh1047 sinh -inf 1.4 -> -inf inf +sinh1048 sinh -inf 2.8 -> inf inf +sinh1049 sinh -inf 4.2 -> inf -inf +sinh1050 sinh -inf 5.6 -> -inf -inf +sinh1051 sinh -inf 7.0 -> -inf inf +sinh1052 sinh -inf inf -> inf nan invalid ignore-real-sign + + +------------------------------ +-- tanh: Hyperbolic Tangent -- +------------------------------ + +-- Disabled test: replaced by test_math.testTanhSign() +-- and test_cmath.testTanhSign() + +-- -- zeros +-- tanh0000 tanh 0.0 0.0 -> 0.0 0.0 +-- tanh0001 tanh 0.0 -0.0 -> 0.0 -0.0 +-- tanh0002 tanh -0.0 0.0 -> -0.0 0.0 +-- tanh0003 tanh -0.0 -0.0 -> -0.0 -0.0 + +-- random inputs +tanh0004 tanh -21.200500450664993 -1.6970729480342996 -> -1.0 1.9241352344849399e-19 +tanh0005 tanh -0.34158771504251928 -8.0848504951747131 -> -2.123711225855613 1.2827526782026006 +tanh0006 tanh -15.454144725193689 -0.23619582288265617 -> -0.99999999999993283 -3.4336684248260036e-14 +tanh0007 tanh -7.6103163119661952 -0.7802748320307008 -> -0.99999999497219438 -4.9064845343755437e-07 +tanh0008 tanh -0.15374717235792129 -0.6351086327306138 -> -0.23246081703561869 -0.71083467433910219 +tanh0009 tanh -0.49101115474392465 0.09723001264886301 -> -0.45844445715492133 0.077191158541805888 +tanh0010 tanh -0.10690612157664491 2.861612800856395 -> -0.11519761626257358 -0.28400488355647507 +tanh0011 tanh -0.91505774192066702 1.5431174597727007 -> -1.381109893068114 0.025160819663709356 +tanh0012 tanh -0.057433367093792223 0.35491159541246459 -> -0.065220499046696953 0.36921788332369498 +tanh0013 tanh -1.3540418621233514 0.18969415642242535 -> -0.88235642861151387 0.043764069984411721 +tanh0014 tanh 0.94864783961003529 -0.11333689578867717 -> 0.74348401861861368 -0.051271042543855221 +tanh0015 tanh 1.9591698133845488 -0.0029654444904578339 -> 0.9610270776968135 -0.00022664240049212933 +tanh0016 tanh 1.0949715796669197 -0.24706642853984456 -> 0.81636574501369386 -0.087767436914149954 +tanh0017 tanh 5770428.2113731047 -3.7160580339833165 -> 1.0 -0.0 +tanh0018 tanh 1.5576782321399629 -1.0357943787966468 -> 1.0403002384895388 -0.081126347894671463 +tanh0019 tanh 0.62378536230552961 2.3471393579560216 -> 0.85582499238960363 -0.53569473646842869 +tanh0020 tanh 17.400628602508025 9.3987059533841979 -> 0.99999999999999845 -8.0175867720530832e-17 +tanh0021 tanh 0.15026177509871896 0.50630349159505472 -> 0.19367536571827768 0.53849847858853661 +tanh0022 tanh 0.57433977530711167 1.0071604546265627 -> 1.0857848159262844 0.69139213955872214 +tanh0023 tanh 0.16291181500449456 0.006972810241567544 -> 0.16149335907551157 0.0067910772903467817 + +-- large real part +tanh0030 tanh 710 0.13 -> 1.0 0.0 +tanh0031 tanh -711 7.4000000000000004 -> -1.0 0.0 +tanh0032 tanh 1000 -2.3199999999999998 -> 1.0 0.0 +tanh0033 tanh -1.0000000000000001e+300 -9.6699999999999999 -> -1.0 -0.0 + +-- Additional real values (mpmath) +tanh0050 tanh 1e-100 0.0 -> 1.00000000000000002e-100 0.0 +tanh0051 tanh 5e-17 0.0 -> 4.9999999999999998955e-17 0.0 +tanh0052 tanh 1e-16 0.0 -> 9.999999999999999791e-17 0.0 +tanh0053 tanh 3.7e-08 0.0 -> 3.6999999999999983559e-8 0.0 +tanh0054 tanh 0.001 0.0 -> 0.00099999966666680002076 0.0 +tanh0055 tanh 0.2 0.0 -> 0.19737532022490401141 0.0 +tanh0056 tanh 1.0 0.0 -> 0.76159415595576488812 0.0 +tanh0057 tanh -3.7e-08 0.0 -> -3.6999999999999983559e-8 0.0 +tanh0058 tanh -0.001 0.0 -> -0.00099999966666680002076 0.0 +tanh0059 tanh -1.0 0.0 -> -0.76159415595576488812 0.0 +tanh0060 tanh 0.5493061443340549 0.0 -> 0.50000000000000003402 0.0 +tanh0061 tanh -0.5493061443340549 0.0 -> -0.50000000000000003402 0.0 +tanh0062 tanh 17.328679513998633 0.0 -> 0.99999999999999822364 0.0 +tanh0063 tanh 18.714973875118524 0.0 -> 0.99999999999999988898 0.0 +tanh0064 tanh 711 0.0 -> 1.0 0.0 +tanh0065 tanh 1.797e+308 0.0 -> 1.0 0.0 + +--special values +tanh1000 tanh 0.0 0.0 -> 0.0 0.0 +tanh1001 tanh 0.0 inf -> nan nan invalid +tanh1002 tanh 2.3 inf -> nan nan invalid +tanh1003 tanh 0.0 nan -> nan nan +tanh1004 tanh 2.3 nan -> nan nan +tanh1005 tanh inf 0.0 -> 1.0 0.0 +tanh1006 tanh inf 0.7 -> 1.0 0.0 +tanh1007 tanh inf 1.4 -> 1.0 0.0 +tanh1008 tanh inf 2.1 -> 1.0 -0.0 +tanh1009 tanh inf 2.8 -> 1.0 -0.0 +tanh1010 tanh inf 3.5 -> 1.0 0.0 +tanh1011 tanh inf inf -> 1.0 0.0 ignore-imag-sign +tanh1012 tanh inf nan -> 1.0 0.0 ignore-imag-sign +tanh1013 tanh nan 0.0 -> nan 0.0 +tanh1014 tanh nan 2.3 -> nan nan +tanh1015 tanh nan inf -> nan nan +tanh1016 tanh nan nan -> nan nan +tanh1017 tanh 0.0 -0.0 -> 0.0 -0.0 +tanh1018 tanh 0.0 -inf -> nan nan invalid +tanh1019 tanh 2.3 -inf -> nan nan invalid +tanh1020 tanh inf -0.0 -> 1.0 -0.0 +tanh1021 tanh inf -0.7 -> 1.0 -0.0 +tanh1022 tanh inf -1.4 -> 1.0 -0.0 +tanh1023 tanh inf -2.1 -> 1.0 0.0 +tanh1024 tanh inf -2.8 -> 1.0 0.0 +tanh1025 tanh inf -3.5 -> 1.0 -0.0 +tanh1026 tanh inf -inf -> 1.0 0.0 ignore-imag-sign +tanh1027 tanh nan -0.0 -> nan -0.0 +tanh1028 tanh nan -2.3 -> nan nan +tanh1029 tanh nan -inf -> nan nan +tanh1030 tanh -0.0 -0.0 -> -0.0 -0.0 +tanh1031 tanh -0.0 -inf -> nan nan invalid +tanh1032 tanh -2.3 -inf -> nan nan invalid +tanh1033 tanh -0.0 nan -> nan nan +tanh1034 tanh -2.3 nan -> nan nan +tanh1035 tanh -inf -0.0 -> -1.0 -0.0 +tanh1036 tanh -inf -0.7 -> -1.0 -0.0 +tanh1037 tanh -inf -1.4 -> -1.0 -0.0 +tanh1038 tanh -inf -2.1 -> -1.0 0.0 +tanh1039 tanh -inf -2.8 -> -1.0 0.0 +tanh1040 tanh -inf -3.5 -> -1.0 -0.0 +tanh1041 tanh -inf -inf -> -1.0 0.0 ignore-imag-sign +tanh1042 tanh -inf nan -> -1.0 0.0 ignore-imag-sign +tanh1043 tanh -0.0 0.0 -> -0.0 0.0 +tanh1044 tanh -0.0 inf -> nan nan invalid +tanh1045 tanh -2.3 inf -> nan nan invalid +tanh1046 tanh -inf 0.0 -> -1.0 0.0 +tanh1047 tanh -inf 0.7 -> -1.0 0.0 +tanh1048 tanh -inf 1.4 -> -1.0 0.0 +tanh1049 tanh -inf 2.1 -> -1.0 -0.0 +tanh1050 tanh -inf 2.8 -> -1.0 -0.0 +tanh1051 tanh -inf 3.5 -> -1.0 0.0 +tanh1052 tanh -inf inf -> -1.0 0.0 ignore-imag-sign + + +----------------- +-- cos: Cosine -- +----------------- + +-- zeros +cos0000 cos 0.0 0.0 -> 1.0 -0.0 +cos0001 cos 0.0 -0.0 -> 1.0 0.0 +cos0002 cos -0.0 0.0 -> 1.0 0.0 +cos0003 cos -0.0 -0.0 -> 1.0 -0.0 + +-- random inputs +cos0004 cos -2.0689194692073034 -0.0016802181751734313 -> -0.47777827208561469 -0.0014760401501695971 +cos0005 cos -0.4209627318177977 -1.8238516774258027 -> 2.9010402201444108 -1.2329207042329617 +cos0006 cos -1.9402181630694557 -2.9751857392891217 -> -3.5465459297970985 -9.1119163586282248 +cos0007 cos -3.3118320290191616 -0.87871302909286142 -> -1.3911528636565498 0.16878141517391701 +cos0008 cos -4.9540404623376872 -0.57949232239026827 -> 0.28062445586552065 0.59467861308508008 +cos0009 cos -0.45374584316245026 1.3950283448373935 -> 1.9247665574290578 0.83004572204761107 +cos0010 cos -0.42578172040176843 1.2715881615413049 -> 1.7517161459489148 0.67863902697363332 +cos0011 cos -0.13862985354300136 0.43587635877670328 -> 1.0859880290361912 0.062157548146672272 +cos0012 cos -0.11073221308966584 9.9384082307326475e-15 -> 0.99387545040722947 1.0982543264065479e-15 +cos0013 cos -1.5027633662054623e-07 0.0069668060249955498 -> 1.0000242682912412 1.0469545565660995e-09 +cos0014 cos 4.9728645490503052 -0.00027479808860952822 -> 0.25754011731975501 -0.00026552849549083186 +cos0015 cos 7.81969303486719 -0.79621523445878783 -> 0.045734882501585063 0.88253139933082991 +cos0016 cos 0.13272421880766716 -0.74668445308718201 -> 1.2806012244432847 0.10825373267437005 +cos0017 cos 4.2396521985973274 -2.2178848380884881 -> -2.1165117057056855 -4.0416492444641401 +cos0018 cos 1.1622206624927296 -0.50400115461197081 -> 0.44884072613370379 0.4823469915034318 +cos0019 cos 1.628772864620884e-08 0.58205705428979282 -> 1.1742319995791435 -1.0024839481956604e-08 +cos0020 cos 2.6385212606111241 2.9886107100937296 -> -8.7209475927161417 -4.7748352107199796 +cos0021 cos 4.8048375263775256 0.0062248852898515658 -> 0.092318702015846243 0.0061983430422306142 +cos0022 cos 7.9914515433858515 0.71659966615501436 -> -0.17375439906936566 -0.77217043527294582 +cos0023 cos 0.45124351152540226 1.6992693993812158 -> 2.543477948972237 -1.1528193694875477 + +-- Additional real values (mpmath) +cos0050 cos 1e-150 0.0 -> 1.0 -0.0 +cos0051 cos 1e-18 0.0 -> 1.0 -0.0 +cos0052 cos 1e-09 0.0 -> 0.9999999999999999995 -0.0 +cos0053 cos 0.0003 0.0 -> 0.9999999550000003375 -0.0 +cos0054 cos 0.2 0.0 -> 0.98006657784124162892 -0.0 +cos0055 cos 1.0 0.0 -> 0.5403023058681397174 -0.0 +cos0056 cos -1e-18 0.0 -> 1.0 0.0 +cos0057 cos -0.0003 0.0 -> 0.9999999550000003375 0.0 +cos0058 cos -1.0 0.0 -> 0.5403023058681397174 0.0 +cos0059 cos 1.0471975511965976 0.0 -> 0.50000000000000009945 -0.0 +cos0060 cos 2.5707963267948966 0.0 -> -0.84147098480789647357 -0.0 +cos0061 cos -2.5707963267948966 0.0 -> -0.84147098480789647357 0.0 +cos0062 cos 7.225663103256523 0.0 -> 0.58778525229247407559 -0.0 +cos0063 cos -8.79645943005142 0.0 -> -0.80901699437494722255 0.0 + +-- special values +cos1000 cos -0.0 0.0 -> 1.0 0.0 +cos1001 cos -inf 0.0 -> nan 0.0 invalid ignore-imag-sign +cos1002 cos nan 0.0 -> nan 0.0 ignore-imag-sign +cos1003 cos -inf 2.2999999999999998 -> nan nan invalid +cos1004 cos nan 2.2999999999999998 -> nan nan +cos1005 cos -0.0 inf -> inf 0.0 +cos1006 cos -1.3999999999999999 inf -> inf inf +cos1007 cos -2.7999999999999998 inf -> -inf inf +cos1008 cos -4.2000000000000002 inf -> -inf -inf +cos1009 cos -5.5999999999999996 inf -> inf -inf +cos1010 cos -7.0 inf -> inf inf +cos1011 cos -inf inf -> inf nan invalid ignore-real-sign +cos1012 cos nan inf -> inf nan +cos1013 cos -0.0 nan -> nan 0.0 ignore-imag-sign +cos1014 cos -2.2999999999999998 nan -> nan nan +cos1015 cos -inf nan -> nan nan +cos1016 cos nan nan -> nan nan +cos1017 cos 0.0 0.0 -> 1.0 -0.0 +cos1018 cos inf 0.0 -> nan 0.0 invalid ignore-imag-sign +cos1019 cos inf 2.2999999999999998 -> nan nan invalid +cos1020 cos 0.0 inf -> inf -0.0 +cos1021 cos 1.3999999999999999 inf -> inf -inf +cos1022 cos 2.7999999999999998 inf -> -inf -inf +cos1023 cos 4.2000000000000002 inf -> -inf inf +cos1024 cos 5.5999999999999996 inf -> inf inf +cos1025 cos 7.0 inf -> inf -inf +cos1026 cos inf inf -> inf nan invalid ignore-real-sign +cos1027 cos 0.0 nan -> nan 0.0 ignore-imag-sign +cos1028 cos 2.2999999999999998 nan -> nan nan +cos1029 cos inf nan -> nan nan +cos1030 cos 0.0 -0.0 -> 1.0 0.0 +cos1031 cos inf -0.0 -> nan 0.0 invalid ignore-imag-sign +cos1032 cos nan -0.0 -> nan 0.0 ignore-imag-sign +cos1033 cos inf -2.2999999999999998 -> nan nan invalid +cos1034 cos nan -2.2999999999999998 -> nan nan +cos1035 cos 0.0 -inf -> inf 0.0 +cos1036 cos 1.3999999999999999 -inf -> inf inf +cos1037 cos 2.7999999999999998 -inf -> -inf inf +cos1038 cos 4.2000000000000002 -inf -> -inf -inf +cos1039 cos 5.5999999999999996 -inf -> inf -inf +cos1040 cos 7.0 -inf -> inf inf +cos1041 cos inf -inf -> inf nan invalid ignore-real-sign +cos1042 cos nan -inf -> inf nan +cos1043 cos -0.0 -0.0 -> 1.0 -0.0 +cos1044 cos -inf -0.0 -> nan 0.0 invalid ignore-imag-sign +cos1045 cos -inf -2.2999999999999998 -> nan nan invalid +cos1046 cos -0.0 -inf -> inf -0.0 +cos1047 cos -1.3999999999999999 -inf -> inf -inf +cos1048 cos -2.7999999999999998 -inf -> -inf -inf +cos1049 cos -4.2000000000000002 -inf -> -inf inf +cos1050 cos -5.5999999999999996 -inf -> inf inf +cos1051 cos -7.0 -inf -> inf -inf +cos1052 cos -inf -inf -> inf nan invalid ignore-real-sign + + +--------------- +-- sin: Sine -- +--------------- + +-- zeros +sin0000 sin 0.0 0.0 -> 0.0 0.0 +sin0001 sin 0.0 -0.0 -> 0.0 -0.0 +sin0002 sin -0.0 0.0 -> -0.0 0.0 +sin0003 sin -0.0 -0.0 -> -0.0 -0.0 + +-- random inputs +sin0004 sin -0.18691829163163759 -0.74388741985507034 -> -0.2396636733773444 -0.80023231101856751 +sin0005 sin -0.45127453702459158 -461.81339920716164 -> -7.9722299331077877e+199 -1.6450205811004628e+200 +sin0006 sin -0.47669228345768921 -2.7369936564987514 -> -3.557238022267124 -6.8308030771226615 +sin0007 sin -0.31024285525950857 -1.4869219939188296 -> -0.70972676047175209 -1.9985029635426839 +sin0008 sin -4.4194573407025608 -1.405999210989288 -> 2.0702480800802685 0.55362250792180601 +sin0009 sin -1.7810832046434898e-05 0.0016439555384379083 -> -1.7810856113185261e-05 0.0016439562786668375 +sin0010 sin -0.8200017874897666 0.61724876887771929 -> -0.8749078195948865 0.44835295550987758 +sin0011 sin -1.4536502806107114 0.63998575534150415 -> -1.2035709929437679 0.080012187489163708 +sin0012 sin -2.2653412155506079 0.13172760685583729 -> -0.77502093809190431 -0.084554426868229532 +sin0013 sin -0.02613983069491858 0.18404766597776073 -> -0.026580778863127943 0.18502525396735642 +sin0014 sin 1.5743065001054617 -0.53125574272642029 -> 1.1444596332092725 0.0019537598099352077 +sin0015 sin 7.3833101791283289e-20 -0.16453221324236217 -> 7.4834720674379429e-20 -0.16527555646466915 +sin0016 sin 0.34763834641254038 -2.8377416421089565 -> 2.918883541504663 -8.0002718053250224 +sin0017 sin 0.077105785180421563 -0.090056027316200674 -> 0.077341973814471304 -0.089909869380524587 +sin0018 sin 3.9063227798142329e-17 -0.05954098654295524 -> 3.9132490348956512e-17 -0.059576172859837351 +sin0019 sin 0.57333917932544598 8.7785221430594696e-06 -> 0.54244029338302935 7.3747869125301368e-06 +sin0020 sin 0.024861722816513169 0.33044620756118515 -> 0.026228801369651 0.3363889671570689 +sin0021 sin 1.4342727387492671 0.81361889790284347 -> 1.3370960060947923 0.12336137961387163 +sin0022 sin 1.1518087354403725 4.8597235966150558 -> 58.919141989603041 26.237003403758852 +sin0023 sin 0.00087773078406649192 34.792379211312095 -> 565548145569.38245 644329685822700.62 + +-- Additional real values (mpmath) +sin0050 sin 1e-100 0.0 -> 1.00000000000000002e-100 0.0 +sin0051 sin 3.7e-08 0.0 -> 3.6999999999999992001e-8 0.0 +sin0052 sin 0.001 0.0 -> 0.00099999983333334168748 0.0 +sin0053 sin 0.2 0.0 -> 0.19866933079506122634 0.0 +sin0054 sin 1.0 0.0 -> 0.84147098480789650665 0.0 +sin0055 sin -3.7e-08 0.0 -> -3.6999999999999992001e-8 0.0 +sin0056 sin -0.001 0.0 -> -0.00099999983333334168748 0.0 +sin0057 sin -1.0 0.0 -> -0.84147098480789650665 0.0 +sin0058 sin 0.5235987755982989 0.0 -> 0.50000000000000004642 0.0 +sin0059 sin -0.5235987755982989 0.0 -> -0.50000000000000004642 0.0 +sin0060 sin 2.6179938779914944 0.0 -> 0.49999999999999996018 -0.0 +sin0061 sin -2.6179938779914944 0.0 -> -0.49999999999999996018 -0.0 +sin0062 sin 7.225663103256523 0.0 -> 0.80901699437494673648 0.0 +sin0063 sin -8.79645943005142 0.0 -> -0.58778525229247340658 -0.0 + +-- special values +sin1000 sin -0.0 0.0 -> -0.0 0.0 +sin1001 sin -inf 0.0 -> nan 0.0 invalid ignore-imag-sign +sin1002 sin nan 0.0 -> nan 0.0 ignore-imag-sign +sin1003 sin -inf 2.2999999999999998 -> nan nan invalid +sin1004 sin nan 2.2999999999999998 -> nan nan +sin1005 sin -0.0 inf -> -0.0 inf +sin1006 sin -1.3999999999999999 inf -> -inf inf +sin1007 sin -2.7999999999999998 inf -> -inf -inf +sin1008 sin -4.2000000000000002 inf -> inf -inf +sin1009 sin -5.5999999999999996 inf -> inf inf +sin1010 sin -7.0 inf -> -inf inf +sin1011 sin -inf inf -> nan inf invalid ignore-imag-sign +sin1012 sin nan inf -> nan inf ignore-imag-sign +sin1013 sin -0.0 nan -> -0.0 nan +sin1014 sin -2.2999999999999998 nan -> nan nan +sin1015 sin -inf nan -> nan nan +sin1016 sin nan nan -> nan nan +sin1017 sin 0.0 0.0 -> 0.0 0.0 +sin1018 sin inf 0.0 -> nan 0.0 invalid ignore-imag-sign +sin1019 sin inf 2.2999999999999998 -> nan nan invalid +sin1020 sin 0.0 inf -> 0.0 inf +sin1021 sin 1.3999999999999999 inf -> inf inf +sin1022 sin 2.7999999999999998 inf -> inf -inf +sin1023 sin 4.2000000000000002 inf -> -inf -inf +sin1024 sin 5.5999999999999996 inf -> -inf inf +sin1025 sin 7.0 inf -> inf inf +sin1026 sin inf inf -> nan inf invalid ignore-imag-sign +sin1027 sin 0.0 nan -> 0.0 nan +sin1028 sin 2.2999999999999998 nan -> nan nan +sin1029 sin inf nan -> nan nan +sin1030 sin 0.0 -0.0 -> 0.0 -0.0 +sin1031 sin inf -0.0 -> nan 0.0 invalid ignore-imag-sign +sin1032 sin nan -0.0 -> nan 0.0 ignore-imag-sign +sin1033 sin inf -2.2999999999999998 -> nan nan invalid +sin1034 sin nan -2.2999999999999998 -> nan nan +sin1035 sin 0.0 -inf -> 0.0 -inf +sin1036 sin 1.3999999999999999 -inf -> inf -inf +sin1037 sin 2.7999999999999998 -inf -> inf inf +sin1038 sin 4.2000000000000002 -inf -> -inf inf +sin1039 sin 5.5999999999999996 -inf -> -inf -inf +sin1040 sin 7.0 -inf -> inf -inf +sin1041 sin inf -inf -> nan inf invalid ignore-imag-sign +sin1042 sin nan -inf -> nan inf ignore-imag-sign +sin1043 sin -0.0 -0.0 -> -0.0 -0.0 +sin1044 sin -inf -0.0 -> nan 0.0 invalid ignore-imag-sign +sin1045 sin -inf -2.2999999999999998 -> nan nan invalid +sin1046 sin -0.0 -inf -> -0.0 -inf +sin1047 sin -1.3999999999999999 -inf -> -inf -inf +sin1048 sin -2.7999999999999998 -inf -> -inf inf +sin1049 sin -4.2000000000000002 -inf -> inf inf +sin1050 sin -5.5999999999999996 -inf -> inf -inf +sin1051 sin -7.0 -inf -> -inf -inf +sin1052 sin -inf -inf -> nan inf invalid ignore-imag-sign + + +------------------ +-- tan: Tangent -- +------------------ + +-- zeros +tan0000 tan 0.0 0.0 -> 0.0 0.0 +tan0001 tan 0.0 -0.0 -> 0.0 -0.0 +tan0002 tan -0.0 0.0 -> -0.0 0.0 +tan0003 tan -0.0 -0.0 -> -0.0 -0.0 + +-- random inputs +tan0004 tan -0.56378561833861074 -1.7110276237187664e+73 -> -0.0 -1.0 +tan0005 tan -3.5451633993471915e-12 -2.855471863564059 -> -4.6622441304889575e-14 -0.99340273843093951 +tan0006 tan -2.502442719638696 -0.26742234390504221 -> 0.66735215252994995 -0.39078997935420956 +tan0007 tan -0.87639597720371365 -55.586225523280206 -> -1.0285264565948176e-48 -1.0 +tan0008 tan -0.015783869596427243 -520.05944436039272 -> -0.0 -1.0 +tan0009 tan -0.84643549990725164 2.0749097935396343 -> -0.031412661676959573 1.0033548479526764 +tan0010 tan -0.43613792248559646 8.1082741629458059 -> -1.3879848444644593e-07 0.99999988344224011 +tan0011 tan -1.0820906367833114 0.28571868992480248 -> -1.3622485737936536 0.99089269377971245 +tan0012 tan -1.1477859580220084 1.9021637002708041 -> -0.034348450042071196 1.0293954097901687 +tan0013 tan -0.12465543176953409 3.0606851016344815e-05 -> -0.12530514290387343 3.1087420769945479e-05 +tan0014 tan 3.7582848717525343 -692787020.44038939 -> 0.0 -1.0 +tan0015 tan 2.2321967655142176e-06 -10.090069423008169 -> 1.5369846120622643e-14 -0.99999999655723759 +tan0016 tan 0.88371172390245012 -1.1635053630132823 -> 0.19705017118625889 -1.0196452280843129 +tan0017 tan 2.1347414231849267 -1.9311339960416831 -> -0.038663576915982524 -1.0174399993980778 +tan0018 tan 5.9027945255899974 -2.1574195684607135e-183 -> -0.39986591539281496 -2.5023753167976915e-183 +tan0019 tan 0.44811489490805362 683216075670.07556 -> 0.0 1.0 +tan0020 tan 4.1459766396068325 12.523017205605756 -> 2.4022514758988068e-11 1.0000000000112499 +tan0021 tan 1.7809617968443272 1.5052381702853379 -> -0.044066222118946903 1.0932684517702778 +tan0022 tan 1.1615313900880577 1.7956298728647107 -> 0.041793186826390362 1.0375339546034792 +tan0023 tan 0.067014779477908945 5.8517361577457097 -> 2.2088639754800034e-06 0.9999836182420061 + +-- Additional real values (mpmath) +tan0050 tan 1e-100 0.0 -> 1.00000000000000002e-100 0.0 +tan0051 tan 3.7e-08 0.0 -> 3.7000000000000017328e-8 0.0 +tan0052 tan 0.001 0.0 -> 0.0010000003333334666875 0.0 +tan0053 tan 0.2 0.0 -> 0.20271003550867249488 0.0 +tan0054 tan 1.0 0.0 -> 1.5574077246549022305 0.0 +tan0055 tan -3.7e-08 0.0 -> -3.7000000000000017328e-8 0.0 +tan0056 tan -0.001 0.0 -> -0.0010000003333334666875 0.0 +tan0057 tan -1.0 0.0 -> -1.5574077246549022305 0.0 +tan0058 tan 0.4636476090008061 0.0 -> 0.49999999999999997163 0.0 +tan0059 tan -0.4636476090008061 0.0 -> -0.49999999999999997163 0.0 +tan0060 tan 1.1071487177940904 0.0 -> 1.9999999999999995298 0.0 +tan0061 tan -1.1071487177940904 0.0 -> -1.9999999999999995298 0.0 +tan0062 tan 1.5 0.0 -> 14.101419947171719388 0.0 +tan0063 tan 1.57 0.0 -> 1255.7655915007896475 0.0 +tan0064 tan 1.5707963267948961 0.0 -> 1978937966095219.0538 0.0 +tan0065 tan 7.225663103256523 0.0 -> 1.3763819204711701522 0.0 +tan0066 tan -8.79645943005142 0.0 -> 0.7265425280053614098 0.0 + +-- special values +tan1000 tan -0.0 0.0 -> -0.0 0.0 +tan1001 tan -inf 0.0 -> nan nan invalid +tan1002 tan -inf 2.2999999999999998 -> nan nan invalid +tan1003 tan nan 0.0 -> nan nan +tan1004 tan nan 2.2999999999999998 -> nan nan +tan1005 tan -0.0 inf -> -0.0 1.0 +tan1006 tan -0.69999999999999996 inf -> -0.0 1.0 +tan1007 tan -1.3999999999999999 inf -> -0.0 1.0 +tan1008 tan -2.1000000000000001 inf -> 0.0 1.0 +tan1009 tan -2.7999999999999998 inf -> 0.0 1.0 +tan1010 tan -3.5 inf -> -0.0 1.0 +tan1011 tan -inf inf -> -0.0 1.0 ignore-real-sign +tan1012 tan nan inf -> -0.0 1.0 ignore-real-sign +tan1013 tan -0.0 nan -> -0.0 nan +tan1014 tan -2.2999999999999998 nan -> nan nan +tan1015 tan -inf nan -> nan nan +tan1016 tan nan nan -> nan nan +tan1017 tan 0.0 0.0 -> 0.0 0.0 +tan1018 tan inf 0.0 -> nan nan invalid +tan1019 tan inf 2.2999999999999998 -> nan nan invalid +tan1020 tan 0.0 inf -> 0.0 1.0 +tan1021 tan 0.69999999999999996 inf -> 0.0 1.0 +tan1022 tan 1.3999999999999999 inf -> 0.0 1.0 +tan1023 tan 2.1000000000000001 inf -> -0.0 1.0 +tan1024 tan 2.7999999999999998 inf -> -0.0 1.0 +tan1025 tan 3.5 inf -> 0.0 1.0 +tan1026 tan inf inf -> -0.0 1.0 ignore-real-sign +tan1027 tan 0.0 nan -> 0.0 nan +tan1028 tan 2.2999999999999998 nan -> nan nan +tan1029 tan inf nan -> nan nan +tan1030 tan 0.0 -0.0 -> 0.0 -0.0 +tan1031 tan inf -0.0 -> nan nan invalid +tan1032 tan inf -2.2999999999999998 -> nan nan invalid +tan1033 tan nan -0.0 -> nan nan +tan1034 tan nan -2.2999999999999998 -> nan nan +tan1035 tan 0.0 -inf -> 0.0 -1.0 +tan1036 tan 0.69999999999999996 -inf -> 0.0 -1.0 +tan1037 tan 1.3999999999999999 -inf -> 0.0 -1.0 +tan1038 tan 2.1000000000000001 -inf -> -0.0 -1.0 +tan1039 tan 2.7999999999999998 -inf -> -0.0 -1.0 +tan1040 tan 3.5 -inf -> 0.0 -1.0 +tan1041 tan inf -inf -> -0.0 -1.0 ignore-real-sign +tan1042 tan nan -inf -> -0.0 -1.0 ignore-real-sign +tan1043 tan -0.0 -0.0 -> -0.0 -0.0 +tan1044 tan -inf -0.0 -> nan nan invalid +tan1045 tan -inf -2.2999999999999998 -> nan nan invalid +tan1046 tan -0.0 -inf -> -0.0 -1.0 +tan1047 tan -0.69999999999999996 -inf -> -0.0 -1.0 +tan1048 tan -1.3999999999999999 -inf -> -0.0 -1.0 +tan1049 tan -2.1000000000000001 -inf -> 0.0 -1.0 +tan1050 tan -2.7999999999999998 -inf -> 0.0 -1.0 +tan1051 tan -3.5 -inf -> -0.0 -1.0 +tan1052 tan -inf -inf -> -0.0 -1.0 ignore-real-sign + + +------------------------------------------------------------------------ +-- rect: Conversion from polar coordinates to rectangular coordinates -- +------------------------------------------------------------------------ +-- +-- For cmath.rect, we can use the same testcase syntax as for the +-- complex -> complex functions above, but here the input arguments +-- should be interpreted as a pair of floating-point numbers rather +-- than the real and imaginary parts of a complex number. +-- +-- Here are the 'spirit of C99' rules for rect. First, the short +-- version: +-- +-- rect(x, t) = exp(log(x)+it) for positive-signed x +-- rect(x, t) = -exp(log(-x)+it) for negative-signed x +-- rect(nan, t) = exp(nan + it), except that in rect(nan, +-0) the +-- sign of the imaginary part is unspecified. +-- +-- and now the long version: +-- +-- rect(x, -t) = conj(rect(x, t)) for all x and t +-- rect(-x, t) = -rect(x, t) for all x and t +-- rect(+0, +0) returns +0 + i0 +-- rect(+0, inf) returns +- 0 +- i0, where the signs of the real and +-- imaginary parts are unspecified. +-- rect(x, inf) returns NaN + i NaN and raises the "invalid" +-- floating-point exception, for finite nonzero x. +-- rect(inf, inf) returns +-inf + i NaN and raises the "invalid" +-- floating-point exception (where the sign of the real part of the +-- result is unspecified). +-- rect(inf, +0) returns inf+i0 +-- rect(inf, x) returns inf*cis(x), for finite nonzero x +-- rect(inf, NaN) returns +-inf+i NaN, where the sign of the real part +-- of the result is unspecified. +-- rect(NaN, x) returns NaN + i NaN for all nonzero numbers (including +-- infinities) x +-- rect(NaN, 0) returns NaN +- i0, where the sign of the imaginary +-- part is unspecified +-- rect(NaN, NaN) returns NaN + i NaN +-- rect(x, NaN) returns NaN + i NaN for finite nonzero x +-- rect(+0, NaN) return +-0 +- i0, where the signs of the real and +-- imaginary parts are unspecified. + +-- special values +rect1000 rect 0.0 0.0 -> 0.0 0.0 +rect1001 rect 0.0 inf -> 0.0 0.0 ignore-real-sign ignore-imag-sign +rect1002 rect 2.3 inf -> nan nan invalid +rect1003 rect inf inf -> inf nan invalid ignore-real-sign +rect1004 rect inf 0.0 -> inf 0.0 +rect1005 rect inf 1.4 -> inf inf +rect1006 rect inf 2.8 -> -inf inf +rect1007 rect inf 4.2 -> -inf -inf +rect1008 rect inf 5.6 -> inf -inf +rect1009 rect inf 7.0 -> inf inf +rect1010 rect nan 0.0 -> nan 0.0 ignore-imag-sign +rect1011 rect nan 2.3 -> nan nan +rect1012 rect nan inf -> nan nan +rect1013 rect nan nan -> nan nan +rect1014 rect inf nan -> inf nan ignore-real-sign +rect1015 rect 2.3 nan -> nan nan +rect1016 rect 0.0 nan -> 0.0 0.0 ignore-real-sign ignore-imag-sign +rect1017 rect 0.0 -0.0 -> 0.0 -0.0 +rect1018 rect 0.0 -inf -> 0.0 0.0 ignore-real-sign ignore-imag-sign +rect1019 rect 2.3 -inf -> nan nan invalid +rect1020 rect inf -inf -> inf nan invalid ignore-real-sign +rect1021 rect inf -0.0 -> inf -0.0 +rect1022 rect inf -1.4 -> inf -inf +rect1023 rect inf -2.8 -> -inf -inf +rect1024 rect inf -4.2 -> -inf inf +rect1025 rect inf -5.6 -> inf inf +rect1026 rect inf -7.0 -> inf -inf +rect1027 rect nan -0.0 -> nan 0.0 ignore-imag-sign +rect1028 rect nan -2.3 -> nan nan +rect1029 rect nan -inf -> nan nan +rect1030 rect -0.0 0.0 -> -0.0 -0.0 +rect1031 rect -0.0 inf -> 0.0 0.0 ignore-real-sign ignore-imag-sign +rect1032 rect -2.3 inf -> nan nan invalid +rect1033 rect -inf inf -> -inf nan invalid ignore-real-sign +rect1034 rect -inf 0.0 -> -inf -0.0 +rect1035 rect -inf 1.4 -> -inf -inf +rect1036 rect -inf 2.8 -> inf -inf +rect1037 rect -inf 4.2 -> inf inf +rect1038 rect -inf 5.6 -> -inf inf +rect1039 rect -inf 7.0 -> -inf -inf +rect1040 rect -inf nan -> inf nan ignore-real-sign +rect1041 rect -2.3 nan -> nan nan +rect1042 rect -0.0 nan -> 0.0 0.0 ignore-real-sign ignore-imag-sign +rect1043 rect -0.0 -0.0 -> -0.0 0.0 +rect1044 rect -0.0 -inf -> 0.0 0.0 ignore-real-sign ignore-imag-sign +rect1045 rect -2.3 -inf -> nan nan invalid +rect1046 rect -inf -inf -> -inf nan invalid ignore-real-sign +rect1047 rect -inf -0.0 -> -inf 0.0 +rect1048 rect -inf -1.4 -> -inf inf +rect1049 rect -inf -2.8 -> inf inf +rect1050 rect -inf -4.2 -> inf -inf +rect1051 rect -inf -5.6 -> -inf -inf +rect1052 rect -inf -7.0 -> -inf inf + +------------------------------------------------------------------------- +-- polar: Conversion from rectangular coordinates to polar coordinates -- +------------------------------------------------------------------------- +-- +-- For cmath.polar, we can use the same testcase syntax as for the +-- complex -> complex functions above, but here the output arguments +-- should be interpreted as a pair of floating-point numbers rather +-- than the real and imaginary parts of a complex number. +-- +-- Annex G of the C99 standard describes fully both the real and +-- imaginary parts of polar (as cabs and carg, respectively, which in turn +-- are defined in terms of the functions hypot and atan2). + +-- overflow +polar0100 polar 1.4e308 1.4e308 -> inf 0.78539816339744828 overflow + +-- special values +polar1000 polar 0.0 0.0 -> 0.0 0.0 +polar1001 polar 0.0 -0.0 -> 0.0 -0.0 +polar1002 polar -0.0 0.0 -> 0.0 3.1415926535897931 +polar1003 polar -0.0 -0.0 -> 0.0 -3.1415926535897931 +polar1004 polar inf 0.0 -> inf 0.0 +polar1005 polar inf 2.3 -> inf 0.0 +polar1006 polar inf inf -> inf 0.78539816339744828 +polar1007 polar 2.3 inf -> inf 1.5707963267948966 +polar1008 polar 0.0 inf -> inf 1.5707963267948966 +polar1009 polar -0.0 inf -> inf 1.5707963267948966 +polar1010 polar -2.3 inf -> inf 1.5707963267948966 +polar1011 polar -inf inf -> inf 2.3561944901923448 +polar1012 polar -inf 2.3 -> inf 3.1415926535897931 +polar1013 polar -inf 0.0 -> inf 3.1415926535897931 +polar1014 polar -inf -0.0 -> inf -3.1415926535897931 +polar1015 polar -inf -2.3 -> inf -3.1415926535897931 +polar1016 polar -inf -inf -> inf -2.3561944901923448 +polar1017 polar -2.3 -inf -> inf -1.5707963267948966 +polar1018 polar -0.0 -inf -> inf -1.5707963267948966 +polar1019 polar 0.0 -inf -> inf -1.5707963267948966 +polar1020 polar 2.3 -inf -> inf -1.5707963267948966 +polar1021 polar inf -inf -> inf -0.78539816339744828 +polar1022 polar inf -2.3 -> inf -0.0 +polar1023 polar inf -0.0 -> inf -0.0 +polar1024 polar nan -inf -> inf nan +polar1025 polar nan -2.3 -> nan nan +polar1026 polar nan -0.0 -> nan nan +polar1027 polar nan 0.0 -> nan nan +polar1028 polar nan 2.3 -> nan nan +polar1029 polar nan inf -> inf nan +polar1030 polar nan nan -> nan nan +polar1031 polar inf nan -> inf nan +polar1032 polar 2.3 nan -> nan nan +polar1033 polar 0.0 nan -> nan nan +polar1034 polar -0.0 nan -> nan nan +polar1035 polar -2.3 nan -> nan nan +polar1036 polar -inf nan -> inf nan diff --git a/Lib/test/mathdata/floating_points.txt b/Lib/test/mathdata/floating_points.txt new file mode 100644 index 0000000..539073d --- /dev/null +++ b/Lib/test/mathdata/floating_points.txt @@ -0,0 +1,1028 @@ +# These numbers are used to test floating point binary-to-decimal conversion. +# They are based on the TCL test suite (tests/expr.test), which is based on +# test data from: +# Brigitte Verdonk, Annie Cuyt, Dennis Verschaeren, A precision and range +# independent tool for testing floating-point arithmetic II: Conversions, +# ACM Transactions on Mathematical Software 27:2 (March 2001), pp. 119-140. + +0E0 +-0E0 +1E0 +15E-1 +125E-2 +1125E-3 +10625E-4 +103125E-5 +1015625E-6 +10078125E-7 +100390625E-8 +1001953125E-9 +10009765625E-10 +100048828125E-11 +1000244140625E-12 +10001220703125E-13 +100006103515625E-14 +1000030517578125E-15 +10000152587890625E-16 ++8E153 +-1E153 ++9E306 +-2E153 ++7E-304 +-3E-49 ++7E-303 +-6E-49 ++9E43 +-9E44 ++8E303 +-1E303 ++7E-287 +-2E-204 ++2E-205 +-9E-47 ++34E195 +-68E195 ++85E194 +-67E97 ++93E-234 +-19E-87 ++38E-87 +-38E-88 +-69E220 ++18E43 +-36E43 ++61E-99 +-43E-92 ++86E-92 +-51E-74 ++283E85 +-566E85 ++589E187 +-839E143 +-744E-234 ++930E-235 +-186E-234 ++604E175 +-302E175 ++755E174 +-151E175 ++662E-213 +-408E-74 ++510E-75 ++6782E55 +-2309E92 ++7963E34 +-3391E55 ++7903E-96 +-7611E-226 ++4907E-196 +-5547E-311 ++5311E241 +-5311E243 ++5311E242 ++9269E-45 +-8559E-289 ++8699E-276 +-8085E-64 ++74819E201 +-82081E41 ++51881E37 +-55061E157 ++77402E-215 +-33891E-92 ++38701E-215 +-82139E-76 ++75859E25 ++89509E140 +-57533E287 ++46073E-32 +-92146E-32 ++83771E-74 +-34796E-276 ++584169E229 ++164162E41 +-328324E41 ++209901E-11 +-419802E-11 ++940189E-112 +-892771E-213 ++757803E120 +-252601E120 ++252601E121 +-505202E120 ++970811E-264 +-654839E-60 ++289767E-178 +-579534E-178 +-8823691E130 ++9346704E229 +-1168338E229 +-6063369E-136 ++3865421E-225 +-5783893E-127 ++2572231E223 +-5144462E223 ++1817623E109 ++6431543E-97 +-5444097E-21 ++8076999E-121 +-9997649E-270 ++50609263E157 ++70589528E130 +-88236910E129 ++87575437E-310 +-23135572E-127 ++85900881E177 +-84863171E113 ++68761586E232 +-50464069E286 ++27869147E-248 +-55738294E-248 ++70176353E-53 +-80555086E-32 +-491080654E121 ++526250918E287 +-245540327E121 +-175150874E-310 ++350301748E-310 +-437877185E-311 ++458117166E52 +-916234332E52 ++229058583E52 +-525789935E98 ++282926897E-227 +-565853794E-227 ++667284113E-240 +-971212611E-126 ++9981396317E-182 +-5035231965E-156 ++8336960483E-153 +-8056371144E-155 ++6418488827E79 +-3981006983E252 ++7962013966E252 +-4713898551E261 ++8715380633E-58 +-9078555839E-109 ++9712126110E-127 ++42333842451E201 +-84667684902E201 ++23792120709E-315 +-78564021519E-227 ++71812054883E-188 +-30311163631E-116 ++71803914657E292 ++36314223356E-109 ++18157111678E-109 +-45392779195E-110 ++778380362293E218 +-685763015669E280 ++952918668151E70 +-548357443505E32 ++384865004907E-285 +-769730009814E-285 ++697015418417E-93 +-915654049301E-28 ++178548656339E169 +-742522891517E259 ++742522891517E258 +-357097312678E169 +-3113521449172E218 ++3891901811465E217 +-1556760724586E218 ++9997878507563E-195 +-7247563029154E-319 ++3623781514577E-319 +-3092446298323E-200 ++6363857920591E145 +-8233559360849E94 ++2689845954547E49 +-5379691909094E49 ++5560322501926E-301 +-7812878489261E-179 ++8439398533053E-256 +-2780161250963E-301 +-87605699161665E155 +-17521139832333E156 +-88218101363513E-170 ++38639244311627E-115 ++35593959807306E261 +-53390939710959E260 ++71187919614612E261 +-88984899518265E260 ++77003665618895E-73 +-15400733123779E-72 ++61602932495116E-72 +-30801466247558E-72 ++834735494917063E-300 +-589795149206434E-151 ++475603213226859E-42 +-294897574603217E-151 ++850813008001913E93 +-203449172043339E185 ++406898344086678E185 +-813796688173356E185 ++6045338514609393E244 +-5145963778954906E142 ++2572981889477453E142 +-6965949469487146E74 ++6182410494241627E-119 +-8510309498186985E-277 ++6647704637273331E-212 +-2215901545757777E-212 ++3771476185376383E276 +-3729901848043846E212 ++3771476185376383E277 +-9977830465649166E119 ++8439928496349319E-142 +-8204230082070882E-59 ++8853686434843997E-244 +-5553274272288559E-104 ++36149023611096162E144 +-36149023611096162E147 ++18074511805548081E146 +-18074511805548081E147 ++97338774138954421E-290 +-88133809804950961E-308 ++94080055902682397E-243 +-24691002732654881E-115 ++52306490527514614E49 +-26153245263757307E49 ++55188692254193604E165 +-68985865317742005E164 ++27176258005319167E-261 +-73169230107256116E-248 ++91461537634070145E-249 +-54352516010638334E-261 ++586144289638535878E280 +-601117006785295431E245 ++293072144819267939E280 +-953184713238516652E272 ++902042358290366539E-281 +-557035730189854663E-294 ++902042358290366539E-280 +-354944100507554393E-238 ++272104041512242479E199 +-816312124536727437E199 ++544208083024484958E199 +-792644927852378159E78 +-679406450132979175E-263 ++543525160106383340E-262 ++7400253695682920196E215 +-1850063423920730049E215 ++3700126847841460098E215 +-9250317119603650245E214 ++8396094300569779681E-252 +-3507665085003296281E-75 ++7015330170006592562E-75 +-7015330170006592562E-74 ++7185620434951919351E205 +-1360520207561212395E198 ++2178999185345151731E-184 +-8691089486201567102E-218 ++4345544743100783551E-218 +-4357998370690303462E-184 ++59825267349106892461E177 +-62259110684423957791E47 ++58380168477038565599E265 +-62259110684423957791E48 +-33584377202279118724E-252 +-57484963479615354808E205 ++71856204349519193510E204 +-14371240869903838702E205 ++36992084760177624177E-318 +-73984169520355248354E-318 ++99257763227713890244E-115 +-87336362425182547697E-280 ++7E289 +-3E153 ++6E153 +-5E243 ++7E-161 +-7E-172 ++8E-63 +-7E-113 ++8E126 +-4E126 ++5E125 +-1E126 ++8E-163 +-1E-163 ++2E-163 +-4E-163 ++51E195 +-37E46 ++74E46 +-56E289 ++69E-145 +-70E-162 ++56E-161 +-21E-303 ++34E-276 +-68E-276 ++85E-277 +-87E-274 ++829E102 +-623E100 ++723E-162 +-457E-102 ++914E-102 +-323E-135 ++151E176 +-302E176 ++921E90 +-604E176 ++823E-206 +-463E-114 ++348E-274 ++9968E100 +-6230E99 ++1246E100 ++6676E-296 +-8345E-297 ++1669E-296 +-3338E-296 ++3257E58 +-6514E58 ++2416E176 ++8085E-63 +-3234E-62 ++1617E-62 +-6468E-62 ++53418E111 +-60513E160 ++26709E111 +-99447E166 ++12549E48 +-25098E48 ++50196E48 +-62745E47 ++83771E-73 +-97451E-167 ++86637E-203 +-75569E-254 ++473806E83 +-947612E83 ++292369E76 +-584738E76 ++933587E-140 +-720919E-14 ++535001E-149 +-890521E-235 ++548057E81 +-706181E88 ++820997E106 +-320681E63 ++928609E-261 +-302276E-254 ++151138E-254 ++4691773E45 +-9383546E45 ++3059949E-243 +-6119898E-243 ++5356626E-213 +-4877378E-199 ++7716693E223 +-5452869E109 ++4590831E156 +-9181662E156 +-3714436E-261 ++4643045E-262 +-7428872E-261 ++52942146E130 +-27966061E145 ++26471073E130 +-55932122E145 ++95412548E-99 +-47706274E-99 ++23853137E-99 +-78493654E-301 ++65346417E29 +-51083099E167 ++89396333E264 +-84863171E114 ++59540836E-251 +-74426045E-252 ++14885209E-251 +-29770418E-251 ++982161308E122 +-245540327E122 ++491080654E122 ++525452622E-310 +-771837113E-134 ++820858081E-150 +-262726311E-310 ++923091487E209 +-653777767E273 ++842116236E-53 +-741111169E-202 ++839507247E-284 +-951487269E-264 +-9821613080E121 ++6677856011E-31 +-3573796826E-266 ++7147593652E-266 +-9981396317E-181 ++3268888835E272 +-2615111068E273 ++1307555534E273 ++2990671154E-190 +-1495335577E-190 ++5981342308E-190 +-7476677885E-191 ++82259684194E-202 +-93227267727E-49 ++41129842097E-202 +-47584241418E-314 +-79360293406E92 ++57332259349E225 +-57202326162E111 ++86860597053E-206 +-53827010643E-200 ++53587107423E-61 ++635007636765E200 ++508006109412E201 +-254003054706E201 ++561029718715E-72 +-897647549944E-71 ++112205943743E-71 +-873947086081E-236 ++809184709177E116 +-573112917422E81 ++286556458711E81 ++952805821491E-259 +-132189992873E-44 +-173696038493E-144 ++1831132757599E-107 +-9155663787995E-108 ++7324531030396E-107 +-9277338894969E-200 ++8188292423973E287 +-5672557437938E59 ++2836278718969E59 +-9995153153494E54 ++9224786422069E-291 +-3142213164987E-294 ++6284426329974E-294 +-8340483752889E-301 ++67039371486466E89 +-62150786615239E197 ++33519685743233E89 +-52563419496999E156 ++32599460466991E-65 +-41010988798007E-133 ++65198920933982E-65 +-82021977596014E-133 ++80527976643809E61 +-74712611505209E158 ++53390939710959E261 +-69277302659155E225 ++46202199371337E-72 +-23438635467783E-179 ++41921560615349E-67 +-92404398742674E-72 ++738545606647197E124 +-972708181182949E117 +-837992143580825E87 ++609610927149051E-255 +-475603213226859E-41 ++563002800671023E-177 +-951206426453718E-41 ++805416432656519E202 +-530658674694337E159 ++946574173863918E208 +-318329953318553E113 +-462021993713370E-73 ++369617594970696E-72 ++3666156212014994E233 +-1833078106007497E233 ++8301790508624232E174 +-1037723813578029E174 ++7297662880581139E-286 +-5106185698912191E-276 ++7487252720986826E-165 +-3743626360493413E-165 ++3773057430100257E230 +-7546114860200514E230 ++4321222892463822E58 +-7793560217139653E51 ++26525993941010681E112 +-53051987882021362E112 ++72844871414247907E77 +-88839359596763261E105 ++18718131802467065E-166 +-14974505441973652E-165 ++73429396004640239E106 +-58483921078398283E57 ++41391519190645203E165 +-82783038381290406E165 ++58767043776702677E-163 +-90506231831231999E-129 ++64409240769861689E-159 +-77305427432277771E-190 ++476592356619258326E273 +-953184713238516652E273 ++899810892172646163E283 +-929167076892018333E187 ++647761278967534239E-312 +-644290479820542942E-180 ++926145344610700019E-225 +-958507931896511964E-246 ++272104041512242479E200 +-792644927852378159E79 ++544208083024484958E200 +-929963218616126365E290 ++305574339166810102E-219 +-152787169583405051E-219 ++611148678333620204E-219 +-763935847917025255E-220 ++7439550220920798612E158 +-3719775110460399306E158 ++9299437776150998265E157 +-7120190517612959703E120 ++3507665085003296281E-73 +-7015330170006592562E-73 +-6684428762278255956E-294 +-1088416166048969916E200 +-8707329328391759328E200 ++4439021781608558002E-65 +-8878043563217116004E-65 ++2219510890804279001E-65 ++33051223951904955802E55 +-56961524140903677624E120 ++71201905176129597030E119 ++14030660340013185124E-73 +-17538325425016481405E-74 ++67536228609141569109E-133 +-35620497849450218807E-306 ++66550376797582521751E-126 +-71240995698900437614E-306 ++3E24 +-6E24 ++6E26 +-7E25 ++1E-14 +-2E-14 ++4E-14 +-8E-14 ++5E26 +-8E27 ++1E27 +-4E27 ++9E-13 +-7E-20 ++56E25 +-70E24 ++51E26 ++71E-17 +-31E-5 ++62E-5 +-94E-8 ++67E27 +-81E24 ++54E23 +-54E25 ++63E-22 +-63E-23 ++43E-4 +-86E-4 ++942E26 +-471E25 ++803E24 +-471E26 +-409E-21 ++818E-21 +-867E-8 ++538E27 +-857E24 ++269E27 +-403E26 ++959E-7 +-959E-6 ++373E-27 +-746E-27 ++4069E24 +-4069E23 +-8138E24 ++8294E-15 +-4147E-14 ++4147E-15 +-8294E-14 ++538E27 +-2690E26 ++269E27 +-2152E27 ++1721E-17 +-7979E-27 ++6884E-17 +-8605E-18 ++82854E27 +-55684E24 ++27842E24 +-48959E25 ++81921E-17 +-76207E-8 ++4147E-15 +-41470E-16 ++89309E24 ++75859E26 +-75859E25 ++14257E-23 +-28514E-23 ++57028E-23 +-71285E-24 ++344863E27 +-951735E27 ++200677E23 +-401354E24 ++839604E-11 +-209901E-11 ++419802E-11 +-537734E-24 ++910308E26 +-227577E26 ++455154E26 +-531013E25 ++963019E-21 +-519827E-13 ++623402E-27 +-311701E-27 ++9613651E26 +-9191316E23 ++4595658E23 +-2297829E23 +-1679208E-11 ++3379223E27 +-6758446E27 ++5444097E-21 +-8399969E-27 ++8366487E-16 +-8366487E-15 ++65060671E25 ++65212389E23 ++55544957E-13 +-51040905E-20 ++99585767E-22 +-99585767E-23 ++40978393E26 +-67488159E24 ++69005339E23 +-81956786E26 +-87105552E-21 ++10888194E-21 +-21776388E-21 ++635806667E27 +-670026614E25 ++335013307E26 +-335013307E25 ++371790617E-24 +-371790617E-25 ++743581234E-24 +-743581234E-25 ++202464477E24 +-404928954E24 ++997853758E27 +-997853758E26 ++405498418E-17 +-582579084E-14 ++608247627E-18 +-291289542E-14 +-9537100005E26 ++6358066670E27 +-1271613334E27 ++5229646999E-16 ++5229646999E-17 ++4429943614E24 +-8859887228E24 ++2214971807E24 +-4176887093E26 ++4003495257E-20 +-4361901637E-23 ++8723803274E-23 +-8006990514E-20 ++72835110098E27 +-36417555049E27 ++84279630104E25 +-84279630104E24 ++21206176437E-27 +-66461566917E-22 ++64808355539E-16 +-84932679673E-19 ++65205430094E26 +-68384463429E25 ++32602715047E26 +-62662203426E27 ++58784444678E-18 +-50980203373E-21 ++29392222339E-18 +-75529940323E-27 +-937495906299E26 ++842642485799E-20 +-387824150699E-23 ++924948814726E-27 +-775648301398E-23 ++547075707432E25 ++683844634290E24 +-136768926858E25 ++509802033730E-22 ++101960406746E-21 +-815683253968E-21 ++7344124123524E24 +-9180155154405E23 ++6479463327323E27 +-1836031030881E24 ++4337269293039E-19 +-4599163554373E-23 ++9198327108746E-23 ++4812803938347E27 +-8412030890011E23 ++9625607876694E27 +-4739968828249E24 ++9697183891673E-23 +-7368108517543E-20 ++51461358161422E25 +-77192037242133E26 ++77192037242133E25 +-51461358161422E27 ++43999661561541E-21 +-87999323123082E-21 ++48374886826137E-26 +-57684246567111E-23 ++87192805957686E23 +-75108713005913E24 ++64233110587487E27 +-77577471133384E-23 ++48485919458365E-24 +-56908598265713E-26 ++589722294620133E23 ++652835804449289E-22 +-656415363936202E-23 ++579336749585745E-25 +-381292764980839E-26 ++965265859649698E23 +-848925235434882E27 ++536177612222491E23 +-424462617717441E27 ++276009279888989E-27 +-608927158043691E-26 ++552018559777978E-27 +-425678377667758E-22 ++8013702726927119E26 ++8862627962362001E27 +-5068007907757162E26 +-7379714799828406E-23 ++4114538064016107E-27 +-3689857399914203E-23 ++5575954851815478E23 ++3395700941739528E27 ++4115535777581961E-23 +-8231071555163922E-23 ++6550246696190871E-26 +-68083046403986701E27 ++43566388595783643E27 +-87132777191567286E27 ++59644881059342141E25 +-83852770718576667E23 ++99482967418206961E-25 +-99482967418206961E-26 ++87446669969994614E-27 +-43723334984997307E-27 ++5E24 +-8E25 ++1E25 +-4E25 ++2E-5 +-5E-6 ++4E-5 +-3E-20 ++3E27 +-9E26 ++7E25 +-6E27 ++2E-21 +-5E-22 +-4E-21 ++87E25 +-97E24 ++82E-24 +-41E-24 ++76E-23 ++83E25 +-50E27 ++25E27 +-99E27 ++97E-10 +-57E-20 ++997E23 ++776E24 +-388E24 ++521E-10 +-506E-26 ++739E-10 +-867E-7 +-415E24 ++332E25 +-664E25 ++291E-13 +-982E-8 ++582E-13 +-491E-8 ++4574E26 +-8609E26 ++2287E26 +-4818E24 ++6529E-8 +-8151E-21 ++1557E-12 +-2573E-18 ++4929E-16 +-3053E-22 ++9858E-16 +-7767E-11 ++54339E26 +-62409E25 ++32819E27 +-89849E27 ++63876E-20 +-15969E-20 ++31938E-20 +-79845E-21 ++89306E27 +-25487E24 ++79889E24 +-97379E26 ++81002E-8 +-43149E-25 ++40501E-8 +-60318E-10 +-648299E27 ++780649E24 ++720919E-14 +-629703E-11 ++557913E24 +-847899E23 ++565445E27 +-736531E24 ++680013E-19 +-529981E-10 ++382923E-23 +-633614E-18 ++2165479E27 +-8661916E27 ++4330958E27 +-9391993E22 +-5767352E-14 ++7209190E-15 +-1441838E-14 ++8478990E22 ++1473062E24 ++8366487E-14 +-8399969E-25 ++9366737E-12 +-9406141E-13 ++65970979E24 +-65060671E26 ++54923002E27 +-63846927E25 ++99585767E-21 ++67488159E25 +-69005339E24 ++81956786E27 +-40978393E27 ++77505754E-12 +-38752877E-12 ++82772981E-15 +-95593517E-25 ++200036989E25 +-772686455E27 ++859139907E23 +-400073978E25 ++569014327E-14 +-794263862E-15 ++397131931E-15 +-380398957E-16 ++567366773E27 +-337440795E24 ++134976318E25 +-269952636E25 ++932080597E-20 +-331091924E-15 +-413864905E-16 ++8539246247E26 +-5859139791E26 ++6105010149E24 +-3090745820E27 ++3470877773E-20 +-6136309089E-27 ++8917758713E-19 +-6941755546E-20 ++9194900535E25 +-1838980107E26 ++7355920428E26 +-3677960214E26 ++8473634343E-17 +-8870766274E-16 ++4435383137E-16 +-9598990129E-15 ++71563496764E26 +-89454370955E25 ++17890874191E26 +-35781748382E26 ++57973447842E-19 +-28986723921E-19 ++76822711313E-19 +-97699466874E-20 ++67748656762E27 +-19394840991E24 ++38789681982E24 +-33874328381E27 ++54323763886E-27 +-58987193887E-20 ++27161881943E-27 +-93042648033E-19 ++520831059055E27 +-768124264394E25 ++384062132197E25 ++765337749889E-25 ++794368912771E25 +-994162090146E23 ++781652779431E26 ++910077190046E-26 +-455038595023E-26 ++471897551096E-20 +-906698409911E-21 ++8854128003935E25 +-8146122716299E27 ++7083302403148E26 +-3541651201574E26 ++8394920649291E-25 +-7657975756753E-22 ++5473834002228E-20 +-6842292502785E-21 +-2109568884597E25 ++8438275538388E25 +-4219137769194E25 ++3200141789841E-25 +-8655689322607E-22 ++6400283579682E-25 +-8837719634493E-21 ++19428217075297E24 +-38856434150594E24 ++77712868301188E24 +-77192037242133E27 ++76579757567530E-23 ++15315951513506E-22 +-38289878783765E-23 ++49378033925202E25 +-50940527102367E24 ++98756067850404E25 +-99589397544892E26 +-56908598265713E-25 ++97470695699657E-22 +-35851901247343E-25 ++154384074484266E27 +-308768148968532E27 ++910990389005985E23 ++271742424169201E-27 +-543484848338402E-27 ++162192083357563E-26 +-869254552770081E-23 ++664831007626046E24 +-332415503813023E24 ++943701829041427E24 +-101881054204734E24 ++828027839666967E-27 +-280276135608777E-27 ++212839188833879E-21 +-113817196531426E-25 ++9711553197796883E27 +-2739849386524269E26 ++5479698773048538E26 ++6124568318523113E-25 +-1139777988171071E-24 ++6322612303128019E-27 +-2955864564844617E-25 +-9994029144998961E25 +-2971238324022087E27 +-1656055679333934E-27 +-1445488709150234E-26 ++55824717499885172E27 +-69780896874856465E26 ++84161538867545199E25 +-27912358749942586E27 ++24711112462926331E-25 +-12645224606256038E-27 +-12249136637046226E-25 ++74874448287465757E27 +-35642836832753303E24 +-71285673665506606E24 ++43723334984997307E-26 ++10182419849537963E-24 +-93501703572661982E-26 + +# A value that caused a crash in debug builds for Python >= 2.7, 3.1 +# See http://bugs.python.org/issue7632 +2183167012312112312312.23538020374420446192e-370 + +# Another value designed to test a corner case of Python's strtod code. +0.99999999999999999999999999999999999999999e+23 diff --git a/Lib/test/mathdata/formatfloat_testcases.txt b/Lib/test/mathdata/formatfloat_testcases.txt new file mode 100644 index 0000000..25c07ba --- /dev/null +++ b/Lib/test/mathdata/formatfloat_testcases.txt @@ -0,0 +1,355 @@ +-- 'f' code formatting, with explicit precision (>= 0). Output always +-- has the given number of places after the point; zeros are added if +-- necessary to make this true. + +-- zeros +%.0f 0 -> 0 +%.1f 0 -> 0.0 +%.2f 0 -> 0.00 +%.3f 0 -> 0.000 +%.50f 0 -> 0.00000000000000000000000000000000000000000000000000 + +-- precision 0; result should never include a . +%.0f 1.5 -> 2 +%.0f 2.5 -> 2 +%.0f 3.5 -> 4 +%.0f 0.0 -> 0 +%.0f 0.1 -> 0 +%.0f 0.001 -> 0 +%.0f 10.0 -> 10 +%.0f 10.1 -> 10 +%.0f 10.01 -> 10 +%.0f 123.456 -> 123 +%.0f 1234.56 -> 1235 +%.0f 1e49 -> 9999999999999999464902769475481793196872414789632 +%.0f 9.9999999999999987e+49 -> 99999999999999986860582406952576489172979654066176 +%.0f 1e50 -> 100000000000000007629769841091887003294964970946560 + +-- precision 1 +%.1f 0.0001 -> 0.0 +%.1f 0.001 -> 0.0 +%.1f 0.01 -> 0.0 +%.1f 0.04 -> 0.0 +%.1f 0.06 -> 0.1 +%.1f 0.25 -> 0.2 +%.1f 0.75 -> 0.8 +%.1f 1.4 -> 1.4 +%.1f 1.5 -> 1.5 +%.1f 10.0 -> 10.0 +%.1f 1000.03 -> 1000.0 +%.1f 1234.5678 -> 1234.6 +%.1f 1234.7499 -> 1234.7 +%.1f 1234.75 -> 1234.8 + +-- precision 2 +%.2f 0.0001 -> 0.00 +%.2f 0.001 -> 0.00 +%.2f 0.004999 -> 0.00 +%.2f 0.005001 -> 0.01 +%.2f 0.01 -> 0.01 +%.2f 0.125 -> 0.12 +%.2f 0.375 -> 0.38 +%.2f 1234500 -> 1234500.00 +%.2f 1234560 -> 1234560.00 +%.2f 1234567 -> 1234567.00 +%.2f 1234567.8 -> 1234567.80 +%.2f 1234567.89 -> 1234567.89 +%.2f 1234567.891 -> 1234567.89 +%.2f 1234567.8912 -> 1234567.89 + +-- alternate form always includes a decimal point. This only +-- makes a difference when the precision is 0. +%#.0f 0 -> 0. +%#.1f 0 -> 0.0 +%#.0f 1.5 -> 2. +%#.0f 2.5 -> 2. +%#.0f 10.1 -> 10. +%#.0f 1234.56 -> 1235. +%#.1f 1.4 -> 1.4 +%#.2f 0.375 -> 0.38 + +-- if precision is omitted it defaults to 6 +%f 0 -> 0.000000 +%f 1230000 -> 1230000.000000 +%f 1234567 -> 1234567.000000 +%f 123.4567 -> 123.456700 +%f 1.23456789 -> 1.234568 +%f 0.00012 -> 0.000120 +%f 0.000123 -> 0.000123 +%f 0.00012345 -> 0.000123 +%f 0.000001 -> 0.000001 +%f 0.0000005001 -> 0.000001 +%f 0.0000004999 -> 0.000000 + +-- 'e' code formatting with explicit precision (>= 0). Output should +-- always have exactly the number of places after the point that were +-- requested. + +-- zeros +%.0e 0 -> 0e+00 +%.1e 0 -> 0.0e+00 +%.2e 0 -> 0.00e+00 +%.10e 0 -> 0.0000000000e+00 +%.50e 0 -> 0.00000000000000000000000000000000000000000000000000e+00 + +-- precision 0. no decimal point in the output +%.0e 0.01 -> 1e-02 +%.0e 0.1 -> 1e-01 +%.0e 1 -> 1e+00 +%.0e 10 -> 1e+01 +%.0e 100 -> 1e+02 +%.0e 0.012 -> 1e-02 +%.0e 0.12 -> 1e-01 +%.0e 1.2 -> 1e+00 +%.0e 12 -> 1e+01 +%.0e 120 -> 1e+02 +%.0e 123.456 -> 1e+02 +%.0e 0.000123456 -> 1e-04 +%.0e 123456000 -> 1e+08 +%.0e 0.5 -> 5e-01 +%.0e 1.4 -> 1e+00 +%.0e 1.5 -> 2e+00 +%.0e 1.6 -> 2e+00 +%.0e 2.4999999 -> 2e+00 +%.0e 2.5 -> 2e+00 +%.0e 2.5000001 -> 3e+00 +%.0e 3.499999999999 -> 3e+00 +%.0e 3.5 -> 4e+00 +%.0e 4.5 -> 4e+00 +%.0e 5.5 -> 6e+00 +%.0e 6.5 -> 6e+00 +%.0e 7.5 -> 8e+00 +%.0e 8.5 -> 8e+00 +%.0e 9.4999 -> 9e+00 +%.0e 9.5 -> 1e+01 +%.0e 10.5 -> 1e+01 +%.0e 14.999 -> 1e+01 +%.0e 15 -> 2e+01 + +-- precision 1 +%.1e 0.0001 -> 1.0e-04 +%.1e 0.001 -> 1.0e-03 +%.1e 0.01 -> 1.0e-02 +%.1e 0.1 -> 1.0e-01 +%.1e 1 -> 1.0e+00 +%.1e 10 -> 1.0e+01 +%.1e 100 -> 1.0e+02 +%.1e 120 -> 1.2e+02 +%.1e 123 -> 1.2e+02 +%.1e 123.4 -> 1.2e+02 + +-- precision 2 +%.2e 0.00013 -> 1.30e-04 +%.2e 0.000135 -> 1.35e-04 +%.2e 0.0001357 -> 1.36e-04 +%.2e 0.0001 -> 1.00e-04 +%.2e 0.001 -> 1.00e-03 +%.2e 0.01 -> 1.00e-02 +%.2e 0.1 -> 1.00e-01 +%.2e 1 -> 1.00e+00 +%.2e 10 -> 1.00e+01 +%.2e 100 -> 1.00e+02 +%.2e 1000 -> 1.00e+03 +%.2e 1500 -> 1.50e+03 +%.2e 1590 -> 1.59e+03 +%.2e 1598 -> 1.60e+03 +%.2e 1598.7 -> 1.60e+03 +%.2e 1598.76 -> 1.60e+03 +%.2e 9999 -> 1.00e+04 + +-- omitted precision defaults to 6 +%e 0 -> 0.000000e+00 +%e 165 -> 1.650000e+02 +%e 1234567 -> 1.234567e+06 +%e 12345678 -> 1.234568e+07 +%e 1.1 -> 1.100000e+00 + +-- alternate form always contains a decimal point. This only makes +-- a difference when precision is 0. + +%#.0e 0.01 -> 1.e-02 +%#.0e 0.1 -> 1.e-01 +%#.0e 1 -> 1.e+00 +%#.0e 10 -> 1.e+01 +%#.0e 100 -> 1.e+02 +%#.0e 0.012 -> 1.e-02 +%#.0e 0.12 -> 1.e-01 +%#.0e 1.2 -> 1.e+00 +%#.0e 12 -> 1.e+01 +%#.0e 120 -> 1.e+02 +%#.0e 123.456 -> 1.e+02 +%#.0e 0.000123456 -> 1.e-04 +%#.0e 123456000 -> 1.e+08 +%#.0e 0.5 -> 5.e-01 +%#.0e 1.4 -> 1.e+00 +%#.0e 1.5 -> 2.e+00 +%#.0e 1.6 -> 2.e+00 +%#.0e 2.4999999 -> 2.e+00 +%#.0e 2.5 -> 2.e+00 +%#.0e 2.5000001 -> 3.e+00 +%#.0e 3.499999999999 -> 3.e+00 +%#.0e 3.5 -> 4.e+00 +%#.0e 4.5 -> 4.e+00 +%#.0e 5.5 -> 6.e+00 +%#.0e 6.5 -> 6.e+00 +%#.0e 7.5 -> 8.e+00 +%#.0e 8.5 -> 8.e+00 +%#.0e 9.4999 -> 9.e+00 +%#.0e 9.5 -> 1.e+01 +%#.0e 10.5 -> 1.e+01 +%#.0e 14.999 -> 1.e+01 +%#.0e 15 -> 2.e+01 +%#.1e 123.4 -> 1.2e+02 +%#.2e 0.0001357 -> 1.36e-04 + +-- 'g' code formatting. + +-- zeros +%.0g 0 -> 0 +%.1g 0 -> 0 +%.2g 0 -> 0 +%.3g 0 -> 0 +%.4g 0 -> 0 +%.10g 0 -> 0 +%.50g 0 -> 0 +%.100g 0 -> 0 + +-- precision 0 doesn't make a lot of sense for the 'g' code (what does +-- it mean to have no significant digits?); in practice, it's interpreted +-- as identical to precision 1 +%.0g 1000 -> 1e+03 +%.0g 100 -> 1e+02 +%.0g 10 -> 1e+01 +%.0g 1 -> 1 +%.0g 0.1 -> 0.1 +%.0g 0.01 -> 0.01 +%.0g 1e-3 -> 0.001 +%.0g 1e-4 -> 0.0001 +%.0g 1e-5 -> 1e-05 +%.0g 1e-6 -> 1e-06 +%.0g 12 -> 1e+01 +%.0g 120 -> 1e+02 +%.0g 1.2 -> 1 +%.0g 0.12 -> 0.1 +%.0g 0.012 -> 0.01 +%.0g 0.0012 -> 0.001 +%.0g 0.00012 -> 0.0001 +%.0g 0.000012 -> 1e-05 +%.0g 0.0000012 -> 1e-06 + +-- precision 1 identical to precision 0 +%.1g 1000 -> 1e+03 +%.1g 100 -> 1e+02 +%.1g 10 -> 1e+01 +%.1g 1 -> 1 +%.1g 0.1 -> 0.1 +%.1g 0.01 -> 0.01 +%.1g 1e-3 -> 0.001 +%.1g 1e-4 -> 0.0001 +%.1g 1e-5 -> 1e-05 +%.1g 1e-6 -> 1e-06 +%.1g 12 -> 1e+01 +%.1g 120 -> 1e+02 +%.1g 1.2 -> 1 +%.1g 0.12 -> 0.1 +%.1g 0.012 -> 0.01 +%.1g 0.0012 -> 0.001 +%.1g 0.00012 -> 0.0001 +%.1g 0.000012 -> 1e-05 +%.1g 0.0000012 -> 1e-06 + +-- precision 2 +%.2g 1000 -> 1e+03 +%.2g 100 -> 1e+02 +%.2g 10 -> 10 +%.2g 1 -> 1 +%.2g 0.1 -> 0.1 +%.2g 0.01 -> 0.01 +%.2g 0.001 -> 0.001 +%.2g 1e-4 -> 0.0001 +%.2g 1e-5 -> 1e-05 +%.2g 1e-6 -> 1e-06 +%.2g 1234 -> 1.2e+03 +%.2g 123 -> 1.2e+02 +%.2g 12.3 -> 12 +%.2g 1.23 -> 1.2 +%.2g 0.123 -> 0.12 +%.2g 0.0123 -> 0.012 +%.2g 0.00123 -> 0.0012 +%.2g 0.000123 -> 0.00012 +%.2g 0.0000123 -> 1.2e-05 + +-- bad cases from http://bugs.python.org/issue9980 +%.12g 38210.0 -> 38210 +%.12g 37210.0 -> 37210 +%.12g 36210.0 -> 36210 + +-- alternate g formatting: always include decimal point and +-- exactly significant digits. +%#.0g 0 -> 0. +%#.1g 0 -> 0. +%#.2g 0 -> 0.0 +%#.3g 0 -> 0.00 +%#.4g 0 -> 0.000 + +%#.0g 0.2 -> 0.2 +%#.1g 0.2 -> 0.2 +%#.2g 0.2 -> 0.20 +%#.3g 0.2 -> 0.200 +%#.4g 0.2 -> 0.2000 +%#.10g 0.2 -> 0.2000000000 + +%#.0g 2 -> 2. +%#.1g 2 -> 2. +%#.2g 2 -> 2.0 +%#.3g 2 -> 2.00 +%#.4g 2 -> 2.000 + +%#.0g 20 -> 2.e+01 +%#.1g 20 -> 2.e+01 +%#.2g 20 -> 20. +%#.3g 20 -> 20.0 +%#.4g 20 -> 20.00 + +%#.0g 234.56 -> 2.e+02 +%#.1g 234.56 -> 2.e+02 +%#.2g 234.56 -> 2.3e+02 +%#.3g 234.56 -> 235. +%#.4g 234.56 -> 234.6 +%#.5g 234.56 -> 234.56 +%#.6g 234.56 -> 234.560 + +-- repr formatting. Result always includes decimal point and at +-- least one digit after the point, or an exponent. +%r 0 -> 0.0 +%r 1 -> 1.0 + +%r 0.01 -> 0.01 +%r 0.02 -> 0.02 +%r 0.03 -> 0.03 +%r 0.04 -> 0.04 +%r 0.05 -> 0.05 + +-- values >= 1e16 get an exponent +%r 10 -> 10.0 +%r 100 -> 100.0 +%r 1e15 -> 1000000000000000.0 +%r 9.999e15 -> 9999000000000000.0 +%r 9999999999999998 -> 9999999999999998.0 +%r 9999999999999999 -> 1e+16 +%r 1e16 -> 1e+16 +%r 1e17 -> 1e+17 + +-- as do values < 1e-4 +%r 1e-3 -> 0.001 +%r 1.001e-4 -> 0.0001001 +%r 1.0000000000000001e-4 -> 0.0001 +%r 1.000000000000001e-4 -> 0.0001000000000000001 +%r 1.00000000001e-4 -> 0.000100000000001 +%r 1.0000000001e-4 -> 0.00010000000001 +%r 1e-4 -> 0.0001 +%r 0.99999999999999999e-4 -> 0.0001 +%r 0.9999999999999999e-4 -> 9.999999999999999e-05 +%r 0.999999999999e-4 -> 9.99999999999e-05 +%r 0.999e-4 -> 9.99e-05 +%r 1e-5 -> 1e-05 diff --git a/Lib/test/mathdata/ieee754.txt b/Lib/test/mathdata/ieee754.txt new file mode 100644 index 0000000..a8b8a0a --- /dev/null +++ b/Lib/test/mathdata/ieee754.txt @@ -0,0 +1,183 @@ +====================================== +Python IEEE 754 floating point support +====================================== + +>>> from sys import float_info as FI +>>> from math import * +>>> PI = pi +>>> E = e + +You must never compare two floats with == because you are not going to get +what you expect. We treat two floats as equal if the difference between them +is small than epsilon. +>>> EPS = 1E-15 +>>> def equal(x, y): +... """Almost equal helper for floats""" +... return abs(x - y) < EPS + + +NaNs and INFs +============= + +In Python 2.6 and newer NaNs (not a number) and infinity can be constructed +from the strings 'inf' and 'nan'. + +>>> INF = float('inf') +>>> NINF = float('-inf') +>>> NAN = float('nan') + +>>> INF +inf +>>> NINF +-inf +>>> NAN +nan + +The math module's ``isnan`` and ``isinf`` functions can be used to detect INF +and NAN: +>>> isinf(INF), isinf(NINF), isnan(NAN) +(True, True, True) +>>> INF == -NINF +True + +Infinity +-------- + +Ambiguous operations like ``0 * inf`` or ``inf - inf`` result in NaN. +>>> INF * 0 +nan +>>> INF - INF +nan +>>> INF / INF +nan + +However unambigous operations with inf return inf: +>>> INF * INF +inf +>>> 1.5 * INF +inf +>>> 0.5 * INF +inf +>>> INF / 1000 +inf + +Not a Number +------------ + +NaNs are never equal to another number, even itself +>>> NAN == NAN +False +>>> NAN < 0 +False +>>> NAN >= 0 +False + +All operations involving a NaN return a NaN except for nan**0 and 1**nan. +>>> 1 + NAN +nan +>>> 1 * NAN +nan +>>> 0 * NAN +nan +>>> 1 ** NAN +1.0 +>>> NAN ** 0 +1.0 +>>> 0 ** NAN +nan +>>> (1.0 + FI.epsilon) * NAN +nan + +Misc Functions +============== + +The power of 1 raised to x is always 1.0, even for special values like 0, +infinity and NaN. + +>>> pow(1, 0) +1.0 +>>> pow(1, INF) +1.0 +>>> pow(1, -INF) +1.0 +>>> pow(1, NAN) +1.0 + +The power of 0 raised to x is defined as 0, if x is positive. Negative +finite values are a domain error or zero division error and NaN result in a +silent NaN. + +>>> pow(0, 0) +1.0 +>>> pow(0, INF) +0.0 +>>> pow(0, -INF) +inf +>>> 0 ** -1 +Traceback (most recent call last): +... +ZeroDivisionError: 0.0 cannot be raised to a negative power +>>> pow(0, NAN) +nan + + +Trigonometric Functions +======================= + +>>> sin(INF) +Traceback (most recent call last): +... +ValueError: math domain error +>>> sin(NINF) +Traceback (most recent call last): +... +ValueError: math domain error +>>> sin(NAN) +nan +>>> cos(INF) +Traceback (most recent call last): +... +ValueError: math domain error +>>> cos(NINF) +Traceback (most recent call last): +... +ValueError: math domain error +>>> cos(NAN) +nan +>>> tan(INF) +Traceback (most recent call last): +... +ValueError: math domain error +>>> tan(NINF) +Traceback (most recent call last): +... +ValueError: math domain error +>>> tan(NAN) +nan + +Neither pi nor tan are exact, but you can assume that tan(pi/2) is a large value +and tan(pi) is a very small value: +>>> tan(PI/2) > 1E10 +True +>>> -tan(-PI/2) > 1E10 +True +>>> tan(PI) < 1E-15 +True + +>>> asin(NAN), acos(NAN), atan(NAN) +(nan, nan, nan) +>>> asin(INF), asin(NINF) +Traceback (most recent call last): +... +ValueError: math domain error +>>> acos(INF), acos(NINF) +Traceback (most recent call last): +... +ValueError: math domain error +>>> equal(atan(INF), PI/2), equal(atan(NINF), -PI/2) +(True, True) + + +Hyberbolic Functions +==================== + diff --git a/Lib/test/mathdata/math_testcases.txt b/Lib/test/mathdata/math_testcases.txt new file mode 100644 index 0000000..9585188 --- /dev/null +++ b/Lib/test/mathdata/math_testcases.txt @@ -0,0 +1,633 @@ +-- Testcases for functions in math. +-- +-- Each line takes the form: +-- +-- -> +-- +-- where: +-- +-- is a short name identifying the test, +-- +-- is the function to be tested (exp, cos, asinh, ...), +-- +-- is a string representing a floating-point value +-- +-- is the expected (ideal) output value, again +-- represented as a string. +-- +-- is a list of the floating-point flags required by C99 +-- +-- The possible flags are: +-- +-- divide-by-zero : raised when a finite input gives a +-- mathematically infinite result. +-- +-- overflow : raised when a finite input gives a finite result that +-- is too large to fit in the usual range of an IEEE 754 double. +-- +-- invalid : raised for invalid inputs (e.g., sqrt(-1)) +-- +-- ignore-sign : indicates that the sign of the result is +-- unspecified; e.g., if the result is given as inf, +-- then both -inf and inf should be accepted as correct. +-- +-- Flags may appear in any order. +-- +-- Lines beginning with '--' (like this one) start a comment, and are +-- ignored. Blank lines, or lines containing only whitespace, are also +-- ignored. + +-- Many of the values below were computed with the help of +-- version 2.4 of the MPFR library for multiple-precision +-- floating-point computations with correct rounding. All output +-- values in this file are (modulo yet-to-be-discovered bugs) +-- correctly rounded, provided that each input and output decimal +-- floating-point value below is interpreted as a representation of +-- the corresponding nearest IEEE 754 double-precision value. See the +-- MPFR homepage at http://www.mpfr.org for more information about the +-- MPFR project. + + +------------------------- +-- erf: error function -- +------------------------- + +erf0000 erf 0.0 -> 0.0 +erf0001 erf -0.0 -> -0.0 +erf0002 erf inf -> 1.0 +erf0003 erf -inf -> -1.0 +erf0004 erf nan -> nan + +-- tiny values +erf0010 erf 1e-308 -> 1.1283791670955125e-308 +erf0011 erf 5e-324 -> 4.9406564584124654e-324 +erf0012 erf 1e-10 -> 1.1283791670955126e-10 + +-- small integers +erf0020 erf 1 -> 0.84270079294971489 +erf0021 erf 2 -> 0.99532226501895271 +erf0022 erf 3 -> 0.99997790950300136 +erf0023 erf 4 -> 0.99999998458274209 +erf0024 erf 5 -> 0.99999999999846256 +erf0025 erf 6 -> 1.0 + +erf0030 erf -1 -> -0.84270079294971489 +erf0031 erf -2 -> -0.99532226501895271 +erf0032 erf -3 -> -0.99997790950300136 +erf0033 erf -4 -> -0.99999998458274209 +erf0034 erf -5 -> -0.99999999999846256 +erf0035 erf -6 -> -1.0 + +-- huge values should all go to +/-1, depending on sign +erf0040 erf -40 -> -1.0 +erf0041 erf 1e16 -> 1.0 +erf0042 erf -1e150 -> -1.0 +erf0043 erf 1.7e308 -> 1.0 + +-- Issue 8986: inputs x with exp(-x*x) near the underflow threshold +-- incorrectly signalled overflow on some platforms. +erf0100 erf 26.2 -> 1.0 +erf0101 erf 26.4 -> 1.0 +erf0102 erf 26.6 -> 1.0 +erf0103 erf 26.8 -> 1.0 +erf0104 erf 27.0 -> 1.0 +erf0105 erf 27.2 -> 1.0 +erf0106 erf 27.4 -> 1.0 +erf0107 erf 27.6 -> 1.0 + +erf0110 erf -26.2 -> -1.0 +erf0111 erf -26.4 -> -1.0 +erf0112 erf -26.6 -> -1.0 +erf0113 erf -26.8 -> -1.0 +erf0114 erf -27.0 -> -1.0 +erf0115 erf -27.2 -> -1.0 +erf0116 erf -27.4 -> -1.0 +erf0117 erf -27.6 -> -1.0 + +---------------------------------------- +-- erfc: complementary error function -- +---------------------------------------- + +erfc0000 erfc 0.0 -> 1.0 +erfc0001 erfc -0.0 -> 1.0 +erfc0002 erfc inf -> 0.0 +erfc0003 erfc -inf -> 2.0 +erfc0004 erfc nan -> nan + +-- tiny values +erfc0010 erfc 1e-308 -> 1.0 +erfc0011 erfc 5e-324 -> 1.0 +erfc0012 erfc 1e-10 -> 0.99999999988716204 + +-- small integers +erfc0020 erfc 1 -> 0.15729920705028513 +erfc0021 erfc 2 -> 0.0046777349810472662 +erfc0022 erfc 3 -> 2.2090496998585441e-05 +erfc0023 erfc 4 -> 1.541725790028002e-08 +erfc0024 erfc 5 -> 1.5374597944280349e-12 +erfc0025 erfc 6 -> 2.1519736712498913e-17 + +erfc0030 erfc -1 -> 1.8427007929497148 +erfc0031 erfc -2 -> 1.9953222650189528 +erfc0032 erfc -3 -> 1.9999779095030015 +erfc0033 erfc -4 -> 1.9999999845827421 +erfc0034 erfc -5 -> 1.9999999999984626 +erfc0035 erfc -6 -> 2.0 + +-- as x -> infinity, erfc(x) behaves like exp(-x*x)/x/sqrt(pi) +erfc0040 erfc 20 -> 5.3958656116079012e-176 +erfc0041 erfc 25 -> 8.3001725711965228e-274 +erfc0042 erfc 27 -> 5.2370464393526292e-319 +erfc0043 erfc 28 -> 0.0 + +-- huge values +erfc0050 erfc -40 -> 2.0 +erfc0051 erfc 1e16 -> 0.0 +erfc0052 erfc -1e150 -> 2.0 +erfc0053 erfc 1.7e308 -> 0.0 + +-- Issue 8986: inputs x with exp(-x*x) near the underflow threshold +-- incorrectly signalled overflow on some platforms. +erfc0100 erfc 26.2 -> 1.6432507924389461e-300 +erfc0101 erfc 26.4 -> 4.4017768588035426e-305 +erfc0102 erfc 26.6 -> 1.0885125885442269e-309 +erfc0103 erfc 26.8 -> 2.4849621571966629e-314 +erfc0104 erfc 27.0 -> 5.2370464393526292e-319 +erfc0105 erfc 27.2 -> 9.8813129168249309e-324 +erfc0106 erfc 27.4 -> 0.0 +erfc0107 erfc 27.6 -> 0.0 + +erfc0110 erfc -26.2 -> 2.0 +erfc0111 erfc -26.4 -> 2.0 +erfc0112 erfc -26.6 -> 2.0 +erfc0113 erfc -26.8 -> 2.0 +erfc0114 erfc -27.0 -> 2.0 +erfc0115 erfc -27.2 -> 2.0 +erfc0116 erfc -27.4 -> 2.0 +erfc0117 erfc -27.6 -> 2.0 + +--------------------------------------------------------- +-- lgamma: log of absolute value of the gamma function -- +--------------------------------------------------------- + +-- special values +lgam0000 lgamma 0.0 -> inf divide-by-zero +lgam0001 lgamma -0.0 -> inf divide-by-zero +lgam0002 lgamma inf -> inf +lgam0003 lgamma -inf -> inf +lgam0004 lgamma nan -> nan + +-- negative integers +lgam0010 lgamma -1 -> inf divide-by-zero +lgam0011 lgamma -2 -> inf divide-by-zero +lgam0012 lgamma -1e16 -> inf divide-by-zero +lgam0013 lgamma -1e300 -> inf divide-by-zero +lgam0014 lgamma -1.79e308 -> inf divide-by-zero + +-- small positive integers give factorials +lgam0020 lgamma 1 -> 0.0 +lgam0021 lgamma 2 -> 0.0 +lgam0022 lgamma 3 -> 0.69314718055994529 +lgam0023 lgamma 4 -> 1.791759469228055 +lgam0024 lgamma 5 -> 3.1780538303479458 +lgam0025 lgamma 6 -> 4.7874917427820458 + +-- half integers +lgam0030 lgamma 0.5 -> 0.57236494292470008 +lgam0031 lgamma 1.5 -> -0.12078223763524522 +lgam0032 lgamma 2.5 -> 0.28468287047291918 +lgam0033 lgamma 3.5 -> 1.2009736023470743 +lgam0034 lgamma -0.5 -> 1.2655121234846454 +lgam0035 lgamma -1.5 -> 0.86004701537648098 +lgam0036 lgamma -2.5 -> -0.056243716497674054 +lgam0037 lgamma -3.5 -> -1.309006684993042 + +-- values near 0 +lgam0040 lgamma 0.1 -> 2.252712651734206 +lgam0041 lgamma 0.01 -> 4.5994798780420219 +lgam0042 lgamma 1e-8 -> 18.420680738180209 +lgam0043 lgamma 1e-16 -> 36.841361487904734 +lgam0044 lgamma 1e-30 -> 69.077552789821368 +lgam0045 lgamma 1e-160 -> 368.41361487904732 +lgam0046 lgamma 1e-308 -> 709.19620864216608 +lgam0047 lgamma 5.6e-309 -> 709.77602713741896 +lgam0048 lgamma 5.5e-309 -> 709.79404564292167 +lgam0049 lgamma 1e-309 -> 711.49879373516012 +lgam0050 lgamma 1e-323 -> 743.74692474082133 +lgam0051 lgamma 5e-324 -> 744.44007192138122 +lgam0060 lgamma -0.1 -> 2.3689613327287886 +lgam0061 lgamma -0.01 -> 4.6110249927528013 +lgam0062 lgamma -1e-8 -> 18.420680749724522 +lgam0063 lgamma -1e-16 -> 36.841361487904734 +lgam0064 lgamma -1e-30 -> 69.077552789821368 +lgam0065 lgamma -1e-160 -> 368.41361487904732 +lgam0066 lgamma -1e-308 -> 709.19620864216608 +lgam0067 lgamma -5.6e-309 -> 709.77602713741896 +lgam0068 lgamma -5.5e-309 -> 709.79404564292167 +lgam0069 lgamma -1e-309 -> 711.49879373516012 +lgam0070 lgamma -1e-323 -> 743.74692474082133 +lgam0071 lgamma -5e-324 -> 744.44007192138122 + +-- values near negative integers +lgam0080 lgamma -0.99999999999999989 -> 36.736800569677101 +lgam0081 lgamma -1.0000000000000002 -> 36.043653389117154 +lgam0082 lgamma -1.9999999999999998 -> 35.350506208557213 +lgam0083 lgamma -2.0000000000000004 -> 34.657359027997266 +lgam0084 lgamma -100.00000000000001 -> -331.85460524980607 +lgam0085 lgamma -99.999999999999986 -> -331.85460524980596 + +-- large inputs +lgam0100 lgamma 170 -> 701.43726380873704 +lgam0101 lgamma 171 -> 706.57306224578736 +lgam0102 lgamma 171.624 -> 709.78077443669895 +lgam0103 lgamma 171.625 -> 709.78591682948365 +lgam0104 lgamma 172 -> 711.71472580228999 +lgam0105 lgamma 2000 -> 13198.923448054265 +lgam0106 lgamma 2.55998332785163e305 -> 1.7976931348623099e+308 +lgam0107 lgamma 2.55998332785164e305 -> inf overflow +lgam0108 lgamma 1.7e308 -> inf overflow + +-- inputs for which gamma(x) is tiny +lgam0120 lgamma -100.5 -> -364.90096830942736 +lgam0121 lgamma -160.5 -> -656.88005261126432 +lgam0122 lgamma -170.5 -> -707.99843314507882 +lgam0123 lgamma -171.5 -> -713.14301641168481 +lgam0124 lgamma -176.5 -> -738.95247590846486 +lgam0125 lgamma -177.5 -> -744.13144651738037 +lgam0126 lgamma -178.5 -> -749.3160351186001 + +lgam0130 lgamma -1000.5 -> -5914.4377011168517 +lgam0131 lgamma -30000.5 -> -279278.6629959144 +lgam0132 lgamma -4503599627370495.5 -> -1.5782258434492883e+17 + +-- results close to 0: positive argument ... +lgam0150 lgamma 0.99999999999999989 -> 6.4083812134800075e-17 +lgam0151 lgamma 1.0000000000000002 -> -1.2816762426960008e-16 +lgam0152 lgamma 1.9999999999999998 -> -9.3876980655431170e-17 +lgam0153 lgamma 2.0000000000000004 -> 1.8775396131086244e-16 + +-- ... and negative argument +lgam0160 lgamma -2.7476826467 -> -5.2477408147689136e-11 +lgam0161 lgamma -2.457024738 -> 3.3464637541912932e-10 + + +--------------------------- +-- gamma: Gamma function -- +--------------------------- + +-- special values +gam0000 gamma 0.0 -> inf divide-by-zero +gam0001 gamma -0.0 -> -inf divide-by-zero +gam0002 gamma inf -> inf +gam0003 gamma -inf -> nan invalid +gam0004 gamma nan -> nan + +-- negative integers inputs are invalid +gam0010 gamma -1 -> nan invalid +gam0011 gamma -2 -> nan invalid +gam0012 gamma -1e16 -> nan invalid +gam0013 gamma -1e300 -> nan invalid + +-- small positive integers give factorials +gam0020 gamma 1 -> 1 +gam0021 gamma 2 -> 1 +gam0022 gamma 3 -> 2 +gam0023 gamma 4 -> 6 +gam0024 gamma 5 -> 24 +gam0025 gamma 6 -> 120 + +-- half integers +gam0030 gamma 0.5 -> 1.7724538509055161 +gam0031 gamma 1.5 -> 0.88622692545275805 +gam0032 gamma 2.5 -> 1.3293403881791370 +gam0033 gamma 3.5 -> 3.3233509704478426 +gam0034 gamma -0.5 -> -3.5449077018110322 +gam0035 gamma -1.5 -> 2.3632718012073548 +gam0036 gamma -2.5 -> -0.94530872048294190 +gam0037 gamma -3.5 -> 0.27008820585226911 + +-- values near 0 +gam0040 gamma 0.1 -> 9.5135076986687306 +gam0041 gamma 0.01 -> 99.432585119150602 +gam0042 gamma 1e-8 -> 99999999.422784343 +gam0043 gamma 1e-16 -> 10000000000000000 +gam0044 gamma 1e-30 -> 9.9999999999999988e+29 +gam0045 gamma 1e-160 -> 1.0000000000000000e+160 +gam0046 gamma 1e-308 -> 1.0000000000000000e+308 +gam0047 gamma 5.6e-309 -> 1.7857142857142848e+308 +gam0048 gamma 5.5e-309 -> inf overflow +gam0049 gamma 1e-309 -> inf overflow +gam0050 gamma 1e-323 -> inf overflow +gam0051 gamma 5e-324 -> inf overflow +gam0060 gamma -0.1 -> -10.686287021193193 +gam0061 gamma -0.01 -> -100.58719796441078 +gam0062 gamma -1e-8 -> -100000000.57721567 +gam0063 gamma -1e-16 -> -10000000000000000 +gam0064 gamma -1e-30 -> -9.9999999999999988e+29 +gam0065 gamma -1e-160 -> -1.0000000000000000e+160 +gam0066 gamma -1e-308 -> -1.0000000000000000e+308 +gam0067 gamma -5.6e-309 -> -1.7857142857142848e+308 +gam0068 gamma -5.5e-309 -> -inf overflow +gam0069 gamma -1e-309 -> -inf overflow +gam0070 gamma -1e-323 -> -inf overflow +gam0071 gamma -5e-324 -> -inf overflow + +-- values near negative integers +gam0080 gamma -0.99999999999999989 -> -9007199254740992.0 +gam0081 gamma -1.0000000000000002 -> 4503599627370495.5 +gam0082 gamma -1.9999999999999998 -> 2251799813685248.5 +gam0083 gamma -2.0000000000000004 -> -1125899906842623.5 +gam0084 gamma -100.00000000000001 -> -7.5400833348831090e-145 +gam0085 gamma -99.999999999999986 -> 7.5400833348840962e-145 + +-- large inputs +gam0100 gamma 170 -> 4.2690680090047051e+304 +gam0101 gamma 171 -> 7.2574156153079990e+306 +gam0102 gamma 171.624 -> 1.7942117599248104e+308 +gam0103 gamma 171.625 -> inf overflow +gam0104 gamma 172 -> inf overflow +gam0105 gamma 2000 -> inf overflow +gam0106 gamma 1.7e308 -> inf overflow + +-- inputs for which gamma(x) is tiny +gam0120 gamma -100.5 -> -3.3536908198076787e-159 +gam0121 gamma -160.5 -> -5.2555464470078293e-286 +gam0122 gamma -170.5 -> -3.3127395215386074e-308 +gam0123 gamma -171.5 -> 1.9316265431711902e-310 +gam0124 gamma -176.5 -> -1.1956388629358166e-321 +gam0125 gamma -177.5 -> 4.9406564584124654e-324 +gam0126 gamma -178.5 -> -0.0 +gam0127 gamma -179.5 -> 0.0 +gam0128 gamma -201.0001 -> 0.0 +gam0129 gamma -202.9999 -> -0.0 +gam0130 gamma -1000.5 -> -0.0 +gam0131 gamma -1000000000.3 -> -0.0 +gam0132 gamma -4503599627370495.5 -> 0.0 + +-- inputs that cause problems for the standard reflection formula, +-- thanks to loss of accuracy in 1-x +gam0140 gamma -63.349078729022985 -> 4.1777971677761880e-88 +gam0141 gamma -127.45117632943295 -> 1.1831110896236810e-214 + + +----------------------------------------------------------- +-- log1p: log(1 + x), without precision loss for small x -- +----------------------------------------------------------- + +-- special values +log1p0000 log1p 0.0 -> 0.0 +log1p0001 log1p -0.0 -> -0.0 +log1p0002 log1p inf -> inf +log1p0003 log1p -inf -> nan invalid +log1p0004 log1p nan -> nan + +-- singularity at -1.0 +log1p0010 log1p -1.0 -> -inf divide-by-zero +log1p0011 log1p -0.9999999999999999 -> -36.736800569677101 + +-- finite values < 1.0 are invalid +log1p0020 log1p -1.0000000000000002 -> nan invalid +log1p0021 log1p -1.1 -> nan invalid +log1p0022 log1p -2.0 -> nan invalid +log1p0023 log1p -1e300 -> nan invalid + +-- tiny x: log1p(x) ~ x +log1p0110 log1p 5e-324 -> 5e-324 +log1p0111 log1p 1e-320 -> 1e-320 +log1p0112 log1p 1e-300 -> 1e-300 +log1p0113 log1p 1e-150 -> 1e-150 +log1p0114 log1p 1e-20 -> 1e-20 + +log1p0120 log1p -5e-324 -> -5e-324 +log1p0121 log1p -1e-320 -> -1e-320 +log1p0122 log1p -1e-300 -> -1e-300 +log1p0123 log1p -1e-150 -> -1e-150 +log1p0124 log1p -1e-20 -> -1e-20 + +-- some (mostly) random small and moderate-sized values +log1p0200 log1p -0.89156889782277482 -> -2.2216403106762863 +log1p0201 log1p -0.23858496047770464 -> -0.27257668276980057 +log1p0202 log1p -0.011641726191307515 -> -0.011710021654495657 +log1p0203 log1p -0.0090126398571693817 -> -0.0090534993825007650 +log1p0204 log1p -0.00023442805985712781 -> -0.00023445554240995693 +log1p0205 log1p -1.5672870980936349e-5 -> -1.5672993801662046e-5 +log1p0206 log1p -7.9650013274825295e-6 -> -7.9650330482740401e-6 +log1p0207 log1p -2.5202948343227410e-7 -> -2.5202951519170971e-7 +log1p0208 log1p -8.2446372820745855e-11 -> -8.2446372824144559e-11 +log1p0209 log1p -8.1663670046490789e-12 -> -8.1663670046824230e-12 +log1p0210 log1p 7.0351735084656292e-18 -> 7.0351735084656292e-18 +log1p0211 log1p 5.2732161907375226e-12 -> 5.2732161907236188e-12 +log1p0212 log1p 1.0000000000000000e-10 -> 9.9999999995000007e-11 +log1p0213 log1p 2.1401273266000197e-9 -> 2.1401273243099470e-9 +log1p0214 log1p 1.2668914653979560e-8 -> 1.2668914573728861e-8 +log1p0215 log1p 1.6250007816299069e-6 -> 1.6249994613175672e-6 +log1p0216 log1p 8.3740495645839399e-6 -> 8.3740145024266269e-6 +log1p0217 log1p 3.0000000000000001e-5 -> 2.9999550008999799e-5 +log1p0218 log1p 0.0070000000000000001 -> 0.0069756137364252423 +log1p0219 log1p 0.013026235315053002 -> 0.012942123564008787 +log1p0220 log1p 0.013497160797236184 -> 0.013406885521915038 +log1p0221 log1p 0.027625599078135284 -> 0.027250897463483054 +log1p0222 log1p 0.14179687245544870 -> 0.13260322540908789 + +-- large values +log1p0300 log1p 1.7976931348623157e+308 -> 709.78271289338397 +log1p0301 log1p 1.0000000000000001e+300 -> 690.77552789821368 +log1p0302 log1p 1.0000000000000001e+70 -> 161.18095650958321 +log1p0303 log1p 10000000000.000000 -> 23.025850930040455 + +-- other values transferred from testLog1p in test_math +log1p0400 log1p -0.63212055882855767 -> -1.0000000000000000 +log1p0401 log1p 1.7182818284590451 -> 1.0000000000000000 +log1p0402 log1p 1.0000000000000000 -> 0.69314718055994529 +log1p0403 log1p 1.2379400392853803e+27 -> 62.383246250395075 + + +----------------------------------------------------------- +-- expm1: exp(x) - 1, without precision loss for small x -- +----------------------------------------------------------- + +-- special values +expm10000 expm1 0.0 -> 0.0 +expm10001 expm1 -0.0 -> -0.0 +expm10002 expm1 inf -> inf +expm10003 expm1 -inf -> -1.0 +expm10004 expm1 nan -> nan + +-- expm1(x) ~ x for tiny x +expm10010 expm1 5e-324 -> 5e-324 +expm10011 expm1 1e-320 -> 1e-320 +expm10012 expm1 1e-300 -> 1e-300 +expm10013 expm1 1e-150 -> 1e-150 +expm10014 expm1 1e-20 -> 1e-20 + +expm10020 expm1 -5e-324 -> -5e-324 +expm10021 expm1 -1e-320 -> -1e-320 +expm10022 expm1 -1e-300 -> -1e-300 +expm10023 expm1 -1e-150 -> -1e-150 +expm10024 expm1 -1e-20 -> -1e-20 + +-- moderate sized values, where direct evaluation runs into trouble +expm10100 expm1 1e-10 -> 1.0000000000500000e-10 +expm10101 expm1 -9.9999999999999995e-08 -> -9.9999995000000163e-8 +expm10102 expm1 3.0000000000000001e-05 -> 3.0000450004500034e-5 +expm10103 expm1 -0.0070000000000000001 -> -0.0069755570667648951 +expm10104 expm1 -0.071499208740094633 -> -0.069002985744820250 +expm10105 expm1 -0.063296004180116799 -> -0.061334416373633009 +expm10106 expm1 0.02390954035597756 -> 0.024197665143819942 +expm10107 expm1 0.085637352649044901 -> 0.089411184580357767 +expm10108 expm1 0.5966174947411006 -> 0.81596588596501485 +expm10109 expm1 0.30247206212075139 -> 0.35319987035848677 +expm10110 expm1 0.74574727375889516 -> 1.1080161116737459 +expm10111 expm1 0.97767512926555711 -> 1.6582689207372185 +expm10112 expm1 0.8450154566787712 -> 1.3280137976535897 +expm10113 expm1 -0.13979260323125264 -> -0.13046144381396060 +expm10114 expm1 -0.52899322039643271 -> -0.41080213643695923 +expm10115 expm1 -0.74083261478900631 -> -0.52328317124797097 +expm10116 expm1 -0.93847766984546055 -> -0.60877704724085946 +expm10117 expm1 10.0 -> 22025.465794806718 +expm10118 expm1 27.0 -> 532048240600.79865 +expm10119 expm1 123 -> 2.6195173187490626e+53 +expm10120 expm1 -12.0 -> -0.99999385578764666 +expm10121 expm1 -35.100000000000001 -> -0.99999999999999944 + +-- extreme negative values +expm10201 expm1 -37.0 -> -0.99999999999999989 +expm10200 expm1 -38.0 -> -1.0 +expm10210 expm1 -710.0 -> -1.0 +-- the formula expm1(x) = 2 * sinh(x/2) * exp(x/2) doesn't work so +-- well when exp(x/2) is subnormal or underflows to zero; check we're +-- not using it! +expm10211 expm1 -1420.0 -> -1.0 +expm10212 expm1 -1450.0 -> -1.0 +expm10213 expm1 -1500.0 -> -1.0 +expm10214 expm1 -1e50 -> -1.0 +expm10215 expm1 -1.79e308 -> -1.0 + +-- extreme positive values +expm10300 expm1 300 -> 1.9424263952412558e+130 +expm10301 expm1 700 -> 1.0142320547350045e+304 +-- the next test (expm10302) is disabled because it causes failure on +-- OS X 10.4/Intel: apparently all values over 709.78 produce an +-- overflow on that platform. See issue #7575. +-- expm10302 expm1 709.78271289328393 -> 1.7976931346824240e+308 +expm10303 expm1 709.78271289348402 -> inf overflow +expm10304 expm1 1000 -> inf overflow +expm10305 expm1 1e50 -> inf overflow +expm10306 expm1 1.79e308 -> inf overflow + +-- weaker version of expm10302 +expm10307 expm1 709.5 -> 1.3549863193146328e+308 + +------------------------- +-- log2: log to base 2 -- +------------------------- + +-- special values +log20000 log2 0.0 -> -inf divide-by-zero +log20001 log2 -0.0 -> -inf divide-by-zero +log20002 log2 inf -> inf +log20003 log2 -inf -> nan invalid +log20004 log2 nan -> nan + +-- exact value at 1.0 +log20010 log2 1.0 -> 0.0 + +-- negatives +log20020 log2 -5e-324 -> nan invalid +log20021 log2 -1.0 -> nan invalid +log20022 log2 -1.7e-308 -> nan invalid + +-- exact values at powers of 2 +log20100 log2 2.0 -> 1.0 +log20101 log2 4.0 -> 2.0 +log20102 log2 8.0 -> 3.0 +log20103 log2 16.0 -> 4.0 +log20104 log2 32.0 -> 5.0 +log20105 log2 64.0 -> 6.0 +log20106 log2 128.0 -> 7.0 +log20107 log2 256.0 -> 8.0 +log20108 log2 512.0 -> 9.0 +log20109 log2 1024.0 -> 10.0 +log20110 log2 2048.0 -> 11.0 + +log20200 log2 0.5 -> -1.0 +log20201 log2 0.25 -> -2.0 +log20202 log2 0.125 -> -3.0 +log20203 log2 0.0625 -> -4.0 + +-- values close to 1.0 +log20300 log2 1.0000000000000002 -> 3.2034265038149171e-16 +log20301 log2 1.0000000001 -> 1.4426951601859516e-10 +log20302 log2 1.00001 -> 1.4426878274712997e-5 + +log20310 log2 0.9999999999999999 -> -1.6017132519074588e-16 +log20311 log2 0.9999999999 -> -1.4426951603302210e-10 +log20312 log2 0.99999 -> -1.4427022544056922e-5 + +-- tiny values +log20400 log2 5e-324 -> -1074.0 +log20401 log2 1e-323 -> -1073.0 +log20402 log2 1.5e-323 -> -1072.4150374992789 +log20403 log2 2e-323 -> -1072.0 + +log20410 log2 1e-308 -> -1023.1538532253076 +log20411 log2 2.2250738585072014e-308 -> -1022.0 +log20412 log2 4.4501477170144028e-308 -> -1021.0 +log20413 log2 1e-307 -> -1019.8319251304202 + +-- huge values +log20500 log2 1.7976931348623157e+308 -> 1024.0 +log20501 log2 1.7e+308 -> 1023.9193879716706 +log20502 log2 8.9884656743115795e+307 -> 1023.0 + +-- selection of random values +log20600 log2 -7.2174324841039838e+289 -> nan invalid +log20601 log2 -2.861319734089617e+265 -> nan invalid +log20602 log2 -4.3507646894008962e+257 -> nan invalid +log20603 log2 -6.6717265307520224e+234 -> nan invalid +log20604 log2 -3.9118023786619294e+229 -> nan invalid +log20605 log2 -1.5478221302505161e+206 -> nan invalid +log20606 log2 -1.4380485131364602e+200 -> nan invalid +log20607 log2 -3.7235198730382645e+185 -> nan invalid +log20608 log2 -1.0472242235095724e+184 -> nan invalid +log20609 log2 -5.0141781956163884e+160 -> nan invalid +log20610 log2 -2.1157958031160324e+124 -> nan invalid +log20611 log2 -7.9677558612567718e+90 -> nan invalid +log20612 log2 -5.5553906194063732e+45 -> nan invalid +log20613 log2 -16573900952607.953 -> nan invalid +log20614 log2 -37198371019.888618 -> nan invalid +log20615 log2 -6.0727115121422674e-32 -> nan invalid +log20616 log2 -2.5406841656526057e-38 -> nan invalid +log20617 log2 -4.9056766703267657e-43 -> nan invalid +log20618 log2 -2.1646786075228305e-71 -> nan invalid +log20619 log2 -2.470826790488573e-78 -> nan invalid +log20620 log2 -3.8661709303489064e-165 -> nan invalid +log20621 log2 -1.0516496976649986e-182 -> nan invalid +log20622 log2 -1.5935458614317996e-255 -> nan invalid +log20623 log2 -2.8750977267336654e-293 -> nan invalid +log20624 log2 -7.6079466794732585e-296 -> nan invalid +log20625 log2 3.2073253539988545e-307 -> -1018.1505544209213 +log20626 log2 1.674937885472249e-244 -> -809.80634755783126 +log20627 log2 1.0911259044931283e-214 -> -710.76679472274213 +log20628 log2 2.0275372624809709e-154 -> -510.55719818383272 +log20629 log2 7.3926087369631841e-115 -> -379.13564735312292 +log20630 log2 1.3480198206342423e-86 -> -285.25497445094436 +log20631 log2 8.9927384655719947e-83 -> -272.55127136401637 +log20632 log2 3.1452398713597487e-60 -> -197.66251564496875 +log20633 log2 7.0706573215457351e-55 -> -179.88420087782217 +log20634 log2 3.1258285390731669e-49 -> -161.13023800505653 +log20635 log2 8.2253046627829942e-41 -> -133.15898277355879 +log20636 log2 7.8691367397519897e+49 -> 165.75068202732419 +log20637 log2 2.9920561983925013e+64 -> 214.18453534573757 +log20638 log2 4.7827254553946841e+77 -> 258.04629628445673 +log20639 log2 3.1903566496481868e+105 -> 350.47616767491166 +log20640 log2 5.6195082449502419e+113 -> 377.86831861008250 +log20641 log2 9.9625658250651047e+125 -> 418.55752921228753 +log20642 log2 2.7358945220961532e+145 -> 483.13158636923413 +log20643 log2 2.785842387926931e+174 -> 579.49360214860280 +log20644 log2 2.4169172507252751e+193 -> 642.40529039289652 +log20645 log2 3.1689091206395632e+205 -> 682.65924573798395 +log20646 log2 2.535995592365391e+208 -> 692.30359597460460 +log20647 log2 6.2011236566089916e+233 -> 776.64177576730913 +log20648 log2 2.1843274820677632e+253 -> 841.57499717289647 +log20649 log2 8.7493931063474791e+297 -> 989.74182713073981 diff --git a/Lib/test/test_float.py b/Lib/test/test_float.py index 84270ce..b6daae7 100644 --- a/Lib/test/test_float.py +++ b/Lib/test/test_float.py @@ -25,7 +25,7 @@ NAN = float("nan") #locate file with float format test values test_dir = os.path.dirname(__file__) or os.curdir -format_testfile = os.path.join(test_dir, 'formatfloat_testcases.txt') +format_testfile = os.path.join(test_dir, 'mathdata', 'formatfloat_testcases.txt') class FloatSubclass(float): pass @@ -768,6 +768,7 @@ class FormatTestCase(unittest.TestCase): class ReprTestCase(unittest.TestCase): def test_repr(self): with open(os.path.join(os.path.split(__file__)[0], + 'mathdata', 'floating_points.txt'), encoding="utf-8") as floats_file: for line in floats_file: line = line.strip() diff --git a/Lib/test/test_math.py b/Lib/test/test_math.py index b71d08b..d5d2197 100644 --- a/Lib/test/test_math.py +++ b/Lib/test/test_math.py @@ -33,8 +33,8 @@ if __name__ == '__main__': else: file = __file__ test_dir = os.path.dirname(file) or os.curdir -math_testcases = os.path.join(test_dir, 'math_testcases.txt') -test_file = os.path.join(test_dir, 'cmath_testcases.txt') +math_testcases = os.path.join(test_dir, 'mathdata', 'math_testcases.txt') +test_file = os.path.join(test_dir, 'mathdata', 'cmath_testcases.txt') def to_ulps(x): @@ -2559,7 +2559,7 @@ class IsCloseTests(unittest.TestCase): def load_tests(loader, tests, pattern): from doctest import DocFileSuite - tests.addTest(DocFileSuite("ieee754.txt")) + tests.addTest(DocFileSuite(os.path.join("mathdata", "ieee754.txt"))) return tests if __name__ == '__main__': diff --git a/Makefile.pre.in b/Makefile.pre.in index 363be68..b6d00d5 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -2157,6 +2157,7 @@ TESTSUBDIRS= idlelib/idle_test \ test/encoded_modules \ test/leakers \ test/libregrtest \ + test/mathdata \ test/subprocessdata \ test/support \ test/support/_hypothesis_stubs \ -- cgit v0.12