-- Testcases for functions in cmath. -- -- Each line takes the form: -- -- <testid> <function> <input_value> -> <output_value> <flags> -- -- where: -- -- <testid> is a short name identifying the test, -- -- <function> is the function to be tested (exp, cos, asinh, ...), -- -- <input_value> is a pair of floats separated by whitespace -- representing real and imaginary parts of a complex number, and -- -- <output_value> is the expected (ideal) output value, again -- represented as a pair of floats. -- -- <flags> 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. -------------------------- -- 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.3518763314...
emilia1983-24