glibc/math/auto-libm-test-in

2052 lines
44 KiB
Plaintext
Raw Normal View History

# libm test inputs for gen-auto-libm-tests.c.
# Copyright (C) 1997-2013 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# The GNU C Library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
# <http://www.gnu.org/licenses/>. */
acos 0
acos -0
acos 1
acos -1
acos 0.5
acos -0.5
acos 0.75
acos 2e-17
acos 0.0625
acos 0x0.ffffffp0
acos -0x0.ffffffp0
acos 0x0.ffffffff8p0
acos -0x0.ffffffff8p0
acos 0x0.ffffffffffffp0
acos -0x0.ffffffffffffp0
acos 0x0.ffffffffffffffffp0
acos -0x0.ffffffffffffffffp0
acos min
acos -min
acos min_subnorm
acos -min_subnorm
acosh 1
acosh 1.625
acosh 7
acosh 100
acosh 1e5
acosh max no-test-inline
asin 0
asin -0
asin 0.5
asin -0.5
asin 1.0
asin -1.0
asin 0.75
asin 0x0.ffffffp0
asin -0x0.ffffffp0
asin 0x0.ffffffff8p0
asin -0x0.ffffffff8p0
asin 0x0.ffffffffffffp0
asin -0x0.ffffffffffffp0
asin 0x0.ffffffffffffffffp0
asin -0x0.ffffffffffffffffp0
# Bug 16351: underflow exception may be missing.
asin min missing-underflow
asin -min missing-underflow
asin min_subnorm missing-underflow
asin -min_subnorm missing-underflow
asinh 0
asinh -0
asinh 0.75
asinh 1
asinh 10
asinh 100
asinh 1e6
asinh 0x1p100
# Bug 16350: underflow exception may be missing.
asinh min missing-underflow
asinh -min missing-underflow
asinh min_subnorm missing-underflow
asinh -min_subnorm missing-underflow
asinh max no-test-inline
asinh -max no-test-inline
atan 0
atan -0
atan max
atan -max
atan 1
atan -1
atan 0.75
atan 0x1p-5
atan 2.5
atan 10
atan 1e6
# Bug 15319: underflow exception may be missing.
atan 0x1p-100 missing-underflow
atan 0x1p-600 missing-underflow
atan 0x1p-10000 missing-underflow
atan min missing-underflow
atan -min missing-underflow
atan min_subnorm missing-underflow
atan -min_subnorm missing-underflow
# atan2 (0,x) == 0 for x > 0.
atan2 0 1
# atan2 (-0,x) == -0 for x > 0.
atan2 -0 1
atan2 0 0
atan2 -0 0
# atan2 (+0,x) == +pi for x < 0.
atan2 0 -1
# atan2 (-0,x) == -pi for x < 0.
atan2 -0 -1
atan2 0 -0
atan2 -0 -0
# atan2 (y,+0) == pi/2 for y > 0.
atan2 1 0
# atan2 (y,-0) == pi/2 for y > 0.
atan2 1 -0
# atan2 (y,+0) == -pi/2 for y < 0.
atan2 -1 0
# atan2 (y,-0) == -pi/2 for y < 0.
atan2 -1 -0
atan2 max max
atan2 max -max
atan2 -max max
atan2 -max -max
atan2 max min
atan2 -max -min
atan2 -max min
atan2 max -min
atan2 max min_subnorm
atan2 -max -min_subnorm
atan2 -max min_subnorm
atan2 max -min_subnorm
atan2 0.75 1
atan2 -0.75 1.0
atan2 0.75 -1.0
atan2 -0.75 -1.0
atan2 0.390625 .00029
atan2 1.390625 0.9296875
atan2 -0.00756827042671106339 -.001792735857538728036
atan2 0x1.00000000000001p0 0x1.00000000000001p0
atan2 min min
atan2 min -min
atan2 -min min
atan2 -min -min
atan2 min_subnorm min_subnorm
atan2 min_subnorm -min_subnorm
atan2 -min_subnorm min_subnorm
atan2 -min_subnorm -min_subnorm
atan2 1 -max
atan2 -1 -max
atan2 min -max
atan2 -min -max
atan2 min_subnorm -max
atan2 -min_subnorm -max
# Bug 15319: underflow exception may be missing.
# Bug 16349: errno setting may be missing.
atan2 1 max missing-underflow
atan2 -1 max missing-underflow
atan2 min max missing-underflow missing-errno
atan2 -min max missing-underflow missing-errno
atan2 min_subnorm max missing-underflow missing-errno
atan2 -min_subnorm max missing-underflow missing-errno
atanh 0
atanh -0
atanh 0.75
atanh -0.75
atanh 0.25
atanh 0x1p-5
atanh 0x1p-10
atanh 0x1.2345p-20
# Bug 16352: underflow exception may be missing.
# Bug 16357: spurious underflow may occur.
atanh min missing-underflow spurious-underflow:ldbl-96-intel:x86
atanh -min missing-underflow spurious-underflow:ldbl-96-intel:x86
atanh min_subnorm missing-underflow
atanh -min_subnorm missing-underflow
# cabs (x,y) == cabs (y,x).
cabs 0.75 12.390625
# cabs (x,y) == cabs (-x,y).
cabs -12.390625 0.75
# cabs (x,y) == cabs (-y,x).
cabs -0.75 12.390625
# cabs (x,y) == cabs (-x,-y).
cabs -12.390625 -0.75
# cabs (x,y) == cabs (-y,-x).
cabs -0.75 -12.390625
# cabs (x,0) == fabs (x).
cabs -0.75 0
cabs 0.75 0
cabs -1.0 0
cabs 1.0 0
cabs -5.7e7 0
cabs 5.7e7 0
cabs 0.75 1.25
# carg (x + i 0) == 0 for x > 0.
carg 2.0 0
# carg (x - i 0) == -0 for x > 0.
carg 2.0 -0
carg 0 0
carg 0 -0
# carg (x + i 0) == +pi for x < 0.
carg -2.0 0
# carg (x - i 0) == -pi for x < 0.
carg -2.0 -0
carg -0 0
carg -0 -0
# carg (+0 + i y) == pi/2 for y > 0.
carg 0 2.0
# carg (-0 + i y) == pi/2 for y > 0.
carg -0 2.0
# carg (+0 + i y) == -pi/2 for y < 0.
carg 0 -2.0
# carg (-0 + i y) == -pi/2 for y < 0.
carg -0 -2.0
cbrt 0.0
cbrt -0
cbrt -0.001
cbrt 8
cbrt -27.0
cbrt 0.9921875
cbrt 0.75
cbrt 0x1p16383
cbrt 0x1p-16383
cbrt 1e5
cbrt max
cbrt -max
cbrt min
cbrt -min
cbrt min_subnorm
cbrt -min_subnorm
Move various TEST_c_c tests from libm-test.inc to auto-libm-test-inc. This patch moves tests of ccos, ccosh, cexp, clog, csqrt, ctan and ctanh to auto-libm-test-in, adding the required support to gen-auto-libm-tests. Other TEST_c_c functions aren't moved for now (although the relevant table entries are put in gen-auto-libm-tests for it to know how to handle them): clog10 because of a known MPC bug causing it to hang for at least some pure imaginary inputs (fixed in SVN, but I'd rather not rely on unreleased versions of MPFR or MPC even if relying on very recent releases); the inverse trig and hyperbolic functions because of known slowness in special cases; and csin / csinh because of observed slowness that I need to investigate and report to the MPC maintainers. Slowness can be bypassed by moving to incremental generation (only for new / changed tests) rather than regenerating the whole of auto-libm-test-out every time, but that needs implementing. (This patch takes the time for running gen-auto-libm-tests from about one second to seven, on my system, which I think is reasonable. The slow functions would make it take several minutes at least, which seems unreasonable.) Tested x86_64 and x86 and ulps updated accordingly. * math/auto-libm-test-in: Add tests of ccos, ccosh, cexp, clog, csqrt, ctan and ctanh. * math/auto-libm-test-out: Regenerated. * math/libm-test.inc (TEST_COND_x86_64): New macro. (TEST_COND_x86): Likewise. (ccos_test_data): Use AUTO_TESTS_c_c. (ccosh_test_data): Likewise. (cexp_test_data): Likewise. (clog_test_data): Likewise. (csqrt_test_data): Likewise. (ctan_test_data): Likewise. (ctan_tonearest_test_data): Likewise. (ctan_towardzero_test_data): Likewise. (ctan_downward_test_data): Likewise. (ctan_upward_test_data): Likewise. (ctanh_test_data): Likewise. (ctanh_tonearest_test_data): Likewise. (ctanh_towardzero_test_data): Likewise. (ctanh_downward_test_data): Likewise. (ctanh_upward_test_data): Likewise. * math/gen-auto-libm-tests.c (func_calc_method): Add value mpc_c_c. (func_calc_desc): Add mpc_c_c union field. (FUNC_mpc_c_c): New macro. (test_functions): Add cacos, cacosh, casin, casinh, catan, catanh, ccos, ccosh, cexp, clog, clog10, csin, csinh, csqrt, ctan and ctanh. (special_fill_min_subnorm_p120): New function. (special_real_inputs): Add min_subnorm_p120. (calc_generic_results): Handle mpc_c_c. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-12-20 12:32:44 +00:00
ccos 0.0 0.0
ccos -0 0.0
ccos 0.0 -0
ccos -0 -0
ccos 0.75 1.25
ccos -2 -3
ccos 0.75 89.5
ccos 0.75 -89.5
ccos -0.75 89.5
ccos -0.75 -89.5
ccos 0.75 710.5
ccos 0.75 -710.5
ccos -0.75 710.5
ccos -0.75 -710.5
ccos 0.75 11357.25
ccos 0.75 -11357.25
ccos -0.75 11357.25
ccos -0.75 -11357.25
ccos 0x1p-149 180
ccos 0x1p-1074 1440
ccos 0x1p-16434 22730
ccos min_subnorm_p120 0x1p-120
ccos 0x1p-120 min_subnorm_p120
ccosh 0.0 0.0
ccosh -0 0.0
ccosh 0.0 -0
ccosh -0 -0
ccosh 0.75 1.25
ccosh -2 -3
ccosh 89.5 0.75
ccosh -89.5 0.75
ccosh 89.5 -0.75
ccosh -89.5 -0.75
ccosh 710.5 0.75
ccosh -710.5 0.75
ccosh 710.5 -0.75
ccosh -710.5 -0.75
ccosh 11357.25 0.75
ccosh -11357.25 0.75
ccosh 11357.25 -0.75
ccosh -11357.25 -0.75
ccosh 180 0x1p-149
ccosh 1440 0x1p-1074
ccosh 22730 0x1p-16434
ccosh min_subnorm_p120 0x1p-120
ccosh 0x1p-120 min_subnorm_p120
cexp 0 0
cexp -0 0
cexp 0 -0
cexp -0 -0
cexp 0.75 1.25
cexp -2.0 -3.0
cexp 0 0x1p65
cexp 0 -0x1p65
cexp 50 0x1p127
cexp 0 1e22
cexp 0 0x1p1023
cexp 500 0x1p1023
cexp 0 0x1p16383
cexp -10000 0x1p16383
cexp 88.75 0.75
cexp -95 0.75
cexp 709.8125 0.75
cexp -720 0.75
cexp 11356.5625 0.75
cexp -11370 0.75
cexp 180 0x1p-149
cexp 1440 0x1p-1074
cexp 22730 0x1p-16434
cexp 1e6 0
cexp 1e6 min
cexp 1e6 -min
# Bug 16348: spurious underflow may occur.
cexp min min_subnorm spurious-underflow:ldbl-96-intel:x86 spurious-underflow:ldbl-96-intel:x86_64
cexp min -min_subnorm spurious-underflow:ldbl-96-intel:x86 spurious-underflow:ldbl-96-intel:x86_64
clog 0.75 1.25
clog -2 -3
clog 0x1.fffffep+127 0x1.fffffep+127
clog 0x1.fffffep+127 1.0
clog 0x1p-149 0x1p-149
clog 0x1p-147 0x1p-147
clog 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023
clog 0x1.fffffffffffffp+1023 0x1p+1023
clog 0x1p-1074 0x1p-1074
clog 0x1p-1073 0x1p-1073
clog 0x1.fp+16383 0x1.fp+16383
clog 0x1.fp+16383 0x1p+16383
clog 0x1p-16440 0x1p-16441
clog 0x1p-149 0x1.fp+127
clog -0x1p-149 0x1.fp+127
clog 0x1p-149 -0x1.fp+127
clog -0x1p-149 -0x1.fp+127
clog -0x1.fp+127 0x1p-149
clog -0x1.fp+127 -0x1p-149
clog 0x1.fp+127 0x1p-149
clog 0x1.fp+127 -0x1p-149
clog 0x1p-1074 0x1.fp+1023
clog -0x1p-1074 0x1.fp+1023
clog 0x1p-1074 -0x1.fp+1023
clog -0x1p-1074 -0x1.fp+1023
clog -0x1.fp+1023 0x1p-1074
clog -0x1.fp+1023 -0x1p-1074
clog 0x1.fp+1023 0x1p-1074
clog 0x1.fp+1023 -0x1p-1074
clog 0x1p-16445 0x1.fp+16383
clog -0x1p-16445 0x1.fp+16383
clog 0x1p-16445 -0x1.fp+16383
clog -0x1p-16445 -0x1.fp+16383
clog -0x1.fp+16383 0x1p-16445
clog -0x1.fp+16383 -0x1p-16445
clog 0x1.fp+16383 0x1p-16445
clog 0x1.fp+16383 -0x1p-16445
clog 0x1p-16494 0x1.fp+16383
clog -0x1p-16494 0x1.fp+16383
clog 0x1p-16494 -0x1.fp+16383
clog -0x1p-16494 -0x1.fp+16383
clog -0x1.fp+16383 0x1p-16494
clog -0x1.fp+16383 -0x1p-16494
clog 0x1.fp+16383 0x1p-16494
clog 0x1.fp+16383 -0x1p-16494
clog 1.0 0x1.234566p-10
clog -1.0 0x1.234566p-20
clog 0x1.234566p-30 1.0
clog -0x1.234566p-40 -1.0
clog 0x1.234566p-50 1.0
clog 0x1.234566p-60 1.0
clog 0x1p-62 1.0
clog 0x1p-63 1.0
clog 0x1p-64 1.0
clog 0x1p-510 1.0
clog 0x1p-511 1.0
clog 0x1p-512 1.0
clog 0x1p-8190 1.0
clog 0x1p-8191 1.0
clog 0x1p-8192 1.0
clog 0x1.000566p0 0x1.234p-10
clog 0x1.000566p0 0x1.234p-100
clog -0x1.0000000123456p0 0x1.2345678p-30
clog -0x1.0000000123456p0 0x1.2345678p-1000
clog 0x1.00000000000000123456789abcp0 0x1.23456789p-60
clog 0x1.00000000000000123456789abcp0 0x1.23456789p-1000
clog 0x0.ffffffp0 0x0.ffffffp-100
clog 0x0.fffffffffffff8p0 0x0.fffffffffffff8p-1000
clog 0x0.ffffffffffffffffp0 0x0.ffffffffffffffffp-15000
clog 0x1a6p-10 0x3a5p-10
clog 0xf2p-10 0x3e3p-10
clog 0x4d4ep-15 0x6605p-15
clog 0x2818p-15 0x798fp-15
clog 0x9b57bp-20 0xcb7b4p-20
clog 0x2731p-20 0xfffd0p-20
clog 0x2ede88p-23 0x771c3fp-23
clog 0x11682p-23 0x7ffed1p-23
clog 0xa1f2c1p-24 0xc643aep-24
clog 0x659feap-24 0xeaf6f9p-24
clog 0x4447d7175p-35 0x6c445e00ap-35
clog 0x2dd46725bp-35 0x7783a1284p-35
clog 0x164c74eea876p-45 0x16f393482f77p-45
clog 0xfe961079616p-45 0x1bc37e09e6d1p-45
clog 0xa4722f19346cp-51 0x7f9631c5e7f07p-51
clog 0x10673dd0f2481p-51 0x7ef1d17cefbd2p-51
clog 0x8ecbf810c4ae6p-52 0xd479468b09a37p-52
clog 0x5b06b680ea2ccp-52 0xef452b965da9fp-52
clog 0x659b70ab7971bp-53 0x1f5d111e08abecp-53
clog 0x15cfbd1990d1ffp-53 0x176a3973e09a9ap-53
clog 0x1367a310575591p-54 0x3cfcc0a0541f60p-54
clog 0x55cb6d0c83af5p-55 0x7fe33c0c7c4e90p-55
clog 0x298c62cb546588a7p-63 0x7911b1dfcc4ecdaep-63
clog 0x4d9c37e2b5cb4533p-63 0x65c98be2385a042ep-63
clog 0x602fd5037c4792efp-64 0xed3e2086dcca80b8p-64
clog 0x6b10b4f3520217b6p-64 0xe8893cbb449253a1p-64
clog 0x81b7efa81fc35ad1p-65 0x1ef4b835f1c79d812p-65
clog 0x3f96469050f650869c2p-75 0x6f16b2c9c8b05988335p-75
clog 0x3157fc1d73233e580c8p-75 0x761b52ccd435d7c7f5fp-75
clog 0x155f8afc4c48685bf63610p-85 0x17d0cf2652cdbeb1294e19p-85
clog 0x13836d58a13448d750b4b9p-85 0x195ca7bc3ab4f9161edbe6p-85
clog 0x1df515eb171a808b9e400266p-95 0x7c71eb0cd4688dfe98581c77p-95
clog 0xe33f66c9542ca25cc43c867p-95 0x7f35a68ebd3704a43c465864p-95
clog 0x6771f22c64ed551b857c128b4cp-105 0x1f570e7a13cc3cf2f44fd793ea1p-105
clog 0x15d8ab6ed05ca514086ac3a1e84p-105 0x1761e480aa094c0b10b34b09ce9p-105
clog 0x187190c1a334497bdbde5a95f48p-106 0x3b25f08062d0a095c4cfbbc338dp-106
clog 0x6241ef0da53f539f02fad67dabp-106 0x3fb46641182f7efd9caa769dac0p-106
clog 0x3e1d0a105ac4ebeacd9c6952d34cp-112 0xf859b3d1b06d005dcbb5516d5479p-112
clog 0x47017a2e36807acb1e5214b209dep-112 0xf5f4a550c9d75e3bb1839d865f0dp-112
clog 0x148f818cb7a9258fca942ade2a0cap-113 0x18854a34780b8333ec53310ad7001p-113
clog 0xfd95243681c055c2632286921092p-113 0x1bccabcd29ca2152860ec29e34ef7p-113
clog 0xdb85c467ee2aadd5f425fe0f4b8dp-114 0x3e83162a0f95f1dcbf97dddf410eap-114
clog 0x1415bcaf2105940d49a636e98ae59p-115 0x7e6a150adfcd1b0921d44b31f40f4p-115
cos 0
cos -0
cos pi/3
cos 2pi/3
cos pi/2
cos 0.75
cos 0x1p65
cos -0x1p65
cos 0.80190127184058835
cos 0x1.442f74p+15
cos 1e22
cos 0x1p1023
cos 0x1p16383
cos 0x1p+120
cos 0x1p+127
cos 0x1.fffff8p+127
cos 0x1.fffffep+127
cos 0x1p+50
cos 0x1p+28
cos 0x1.000000cf4a2a2p0
cos 0x1.0000010b239a9p0
cos 0x1.00000162a932bp0
cos 0x1.000002d452a10p0
cos 0x1.000005bc7d86dp0
cos 1
cos 2
cos 3
cos 4
cos 5
cos 6
cos 7
cos 8
cos 9
cos 10
cos max
cos -max
cos min
cos -min
cos min_subnorm
cos -min_subnorm
cosh 0
cosh -0
cosh 0.75
cosh 709.8893558127259666434838436543941497802734375
cosh -709.8893558127259666434838436543941497802734375
cosh 22
cosh 23
cosh 24
cosh 0x1p-5
cosh 0x1p-20
cosh -1
cosh 50
cosh max no-test-inline
cosh -max no-test-inline
# Bug 16354: spurious underflow may occur.
cosh min spurious-underflow
cosh -min spurious-underflow
cosh min_subnorm spurious-underflow
cosh -min_subnorm spurious-underflow
# Test values either side of overflow for each floating-point format.
cosh 0x5.96a7ep+4
cosh 0x5.96a7e8p+4
cosh -0x5.96a7ep+4
cosh -0x5.96a7e8p+4
cosh 0x2.c679d1f73f0fap+8
cosh 0x2.c679d1f73f0fcp+8
cosh -0x2.c679d1f73f0fap+8
cosh -0x2.c679d1f73f0fcp+8
Fix x86 / x86_64 expl / expl10l wild results in directed rounding modes (bug 16356). This patch fixes bug 16356, bad results from x86 / x86_64 expl / exp10l in directed rounding modes, the most serious of the bugs shown up by my patch expanding libm test coverage. When I fixed bug 16293, I thought it was only necessary to set round-to-nearest when using frndint in expm1 functions, because in other cases the cancellation error from having the resulting fractional part close to 1 or -1 would not be significant. However, in expl and exp10l, the way the final fractional part gets computed (something more complicated than a simple subtraction, because more precision is needed than you'd get that way) can result in a value outside the range [-1, 1] when the argument to frndint was very close to an integer and was rounded the "wrong" way because of the rounding mode - and the f2xm1 instruction has undefined results if its argument is outside [-1, 1], so resulting in the large errors seen. So this patch removes the USE_AS_EXPM1L conditionals on the round-to-nearest settings, so all of expl, expm1l and exp10l now get round-to-nearest used for frndint (meaning the final fractional part can at most be slightly above 0.5 in magnitude). Associated tests of exp and exp10 are added and testing of exp10 in directed rounding modes enabled. Tested x86_64 and x86 and ulps updated accordingly. * sysdeps/i386/fpu/e_expl.S (IEEE754_EXPL): Also set round-to-nearest for [!USE_AS_EXPM1L]. * sysdeps/x86_64/fpu/e_expl.S (IEEE754_EXPL): Likewise. * math/auto-libm-test-in: Do not expect cosh tests to fail. Add more tests of exp and exp10. Expect some exp10 tests to miss exceptions or fail in directed rounding modes. * math/auto-libm-test-out: Regenerated. * math/libm-test.inc (exp10_tonearest_test_data): New array. (exp10_test_tonearest): New function. (exp10_towardzero_test_data): New array. (exp10_test_towardzero): New function. (exp10_downward_test_data): New array. (exp10_test_downward): New function. (exp10_upward_test_data): New array. (exp10_test_upward): New function. (main): Call the new functions. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-12-21 13:07:16 +00:00
cosh 0x2.c679d1f73f0fb624d358b213a7p+8
cosh 0x2.c679d1f73f0fb624d358b213a8p+8
cosh -0x2.c679d1f73f0fb624d358b213a7p+8
cosh -0x2.c679d1f73f0fb624d358b213a8p+8
cosh 0x2.c5d37700c6bb03a4p+12 no-test-inline
cosh 0x2.c5d37700c6bb03a8p+12 no-test-inline
cosh -0x2.c5d37700c6bb03a4p+12 no-test-inline
cosh -0x2.c5d37700c6bb03a8p+12 no-test-inline
cosh 0x2.c5d37700c6bb03a6c24b6c9b494cp+12 no-test-inline
cosh 0x2.c5d37700c6bb03a6c24b6c9b494ep+12 no-test-inline
cosh -0x2.c5d37700c6bb03a6c24b6c9b494cp+12 no-test-inline
cosh -0x2.c5d37700c6bb03a6c24b6c9b494ep+12 no-test-inline
cpow 1 0 0 0
cpow 2 0 10 0
# Bug 14473: cpow results inaccurate.
cpow e 0 0 2pi xfail
cpow 2 3 4 0
cpow 0.75 1.25 0.75 1.25
cpow 0.75 1.25 1.0 1.0
cpow 0.75 1.25 1.0 0.0
cpow 0.75 1.25 0.0 1.0
Move various TEST_c_c tests from libm-test.inc to auto-libm-test-inc. This patch moves tests of ccos, ccosh, cexp, clog, csqrt, ctan and ctanh to auto-libm-test-in, adding the required support to gen-auto-libm-tests. Other TEST_c_c functions aren't moved for now (although the relevant table entries are put in gen-auto-libm-tests for it to know how to handle them): clog10 because of a known MPC bug causing it to hang for at least some pure imaginary inputs (fixed in SVN, but I'd rather not rely on unreleased versions of MPFR or MPC even if relying on very recent releases); the inverse trig and hyperbolic functions because of known slowness in special cases; and csin / csinh because of observed slowness that I need to investigate and report to the MPC maintainers. Slowness can be bypassed by moving to incremental generation (only for new / changed tests) rather than regenerating the whole of auto-libm-test-out every time, but that needs implementing. (This patch takes the time for running gen-auto-libm-tests from about one second to seven, on my system, which I think is reasonable. The slow functions would make it take several minutes at least, which seems unreasonable.) Tested x86_64 and x86 and ulps updated accordingly. * math/auto-libm-test-in: Add tests of ccos, ccosh, cexp, clog, csqrt, ctan and ctanh. * math/auto-libm-test-out: Regenerated. * math/libm-test.inc (TEST_COND_x86_64): New macro. (TEST_COND_x86): Likewise. (ccos_test_data): Use AUTO_TESTS_c_c. (ccosh_test_data): Likewise. (cexp_test_data): Likewise. (clog_test_data): Likewise. (csqrt_test_data): Likewise. (ctan_test_data): Likewise. (ctan_tonearest_test_data): Likewise. (ctan_towardzero_test_data): Likewise. (ctan_downward_test_data): Likewise. (ctan_upward_test_data): Likewise. (ctanh_test_data): Likewise. (ctanh_tonearest_test_data): Likewise. (ctanh_towardzero_test_data): Likewise. (ctanh_downward_test_data): Likewise. (ctanh_upward_test_data): Likewise. * math/gen-auto-libm-tests.c (func_calc_method): Add value mpc_c_c. (func_calc_desc): Add mpc_c_c union field. (FUNC_mpc_c_c): New macro. (test_functions): Add cacos, cacosh, casin, casinh, catan, catanh, ccos, ccosh, cexp, clog, clog10, csin, csinh, csqrt, ctan and ctanh. (special_fill_min_subnorm_p120): New function. (special_real_inputs): Add min_subnorm_p120. (calc_generic_results): Handle mpc_c_c. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-12-20 12:32:44 +00:00
csqrt 0 0
csqrt 0 -0
csqrt -0 0
csqrt -0 -0
csqrt 16.0 -30.0
csqrt -1 0
csqrt 0 2
csqrt 119 120
csqrt 0.75 1.25
csqrt -2 -3
csqrt -2 3
# Principal square root should be returned (i.e., non-negative real part).
csqrt 0 -1
csqrt 0x1.fffffep+127 0x1.fffffep+127
csqrt 0x1.fffffep+127 1.0
csqrt 0x1p-149 0x1p-149
csqrt 0x1p-147 0x1p-147
csqrt 0 0x1p-149
csqrt 0x1p-50 0x1p-149
csqrt 0x1p+127 0x1p-149
csqrt 0x1p-149 0x1p+127
csqrt 0x1.000002p-126 0x1.000002p-126
csqrt -0x1.000002p-126 -0x1.000002p-126
csqrt 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023
csqrt 0x1.fffffffffffffp+1023 0x1p+1023
csqrt 0x1p-1074 0x1p-1074
csqrt 0x1p-1073 0x1p-1073
csqrt 0 0x1p-1074
csqrt 0x1p-500 0x1p-1074
csqrt 0x1p+1023 0x1p-1074
csqrt 0x1p-1074 0x1p+1023
csqrt 0x1.0000000000001p-1022 0x1.0000000000001p-1022
csqrt -0x1.0000000000001p-1022 -0x1.0000000000001p-1022
csqrt 0x1.fp+16383 0x1.fp+16383
csqrt 0x1.fp+16383 0x1p+16383
csqrt 0x1p-16440 0x1p-16441
csqrt 0 0x1p-16445
csqrt 0x1p-5000 0x1p-16445
csqrt 0x1p+16383 0x1p-16445
csqrt 0x1p-16445 0x1p+16383
csqrt 0x1.0000000000000002p-16382 0x1.0000000000000002p-16382
csqrt -0x1.0000000000000002p-16382 -0x1.0000000000000002p-16382
csqrt 0 0x1p-16494
csqrt 0x1p-5000 0x1p-16494
csqrt 0x1p+16383 0x1p-16494
csqrt 0x1p-16494 0x1p+16383
csqrt 0x1.0000000000000000000000000001p-16382 0x1.0000000000000000000000000001p-16382
csqrt -0x1.0000000000000000000000000001p-16382 -0x1.0000000000000000000000000001p-16382
ctan 0 0
ctan 0 -0
ctan -0 0
ctan -0 -0
ctan 0.75 1.25
ctan -2 -3
ctan 1 45
ctan 1 47
ctan 1 355
ctan 1 365
ctan 1 5680
ctan 1 5690
ctan 0x3.243f6cp-1 0
ctan 0x1p127 1
ctan 0x1p1023 1
ctan 0x1p16383 1
ctan 50000 50000
ctan 50000 -50000
ctan -50000 50000
ctan -50000 -50000
ctan 0x1.921fb6p+0 0x1p-149
ctan 0x1.921fb54442d18p+0 0x1p-1074
ctan 0x1.921fb54442d1846ap+0 0x1p-16445
ctanh 0 0
ctanh 0 -0
ctanh -0 0
ctanh -0 -0
ctanh 0 pi/4
ctanh 0.75 1.25
ctanh -2 -3
ctanh 45 1
ctanh 47 1
ctanh 355 1
ctanh 365 1
ctanh 5680 1
ctanh 5690 1
ctanh 0 0x3.243f6cp-1
ctanh 1 0x1p127
ctanh 1 0x1p1023
ctanh 1 0x1p16383
ctanh 50000 50000
ctanh 50000 -50000
ctanh -50000 50000
ctanh -50000 -50000
ctanh 0x1p-149 0x1.921fb6p+0
ctanh 0x1p-1074 0x1.921fb54442d18p+0
ctanh 0x1p-16445 0x1.921fb54442d1846ap+0
erf 0
erf -0
erf 0.125
erf 0.75
erf 1.25
erf 2.0
erf 4.125
erf 27.0
erf -27.0
erf -0x1.fffffffffffff8p-2
erfc 0.0
erfc -0
erfc 0.125
erfc 0.75
erfc 1.25
erfc 2.0
erfc 0x1.f7303cp+1
erfc 4.125
erfc 0x1.ffa002p+2
erfc 0x1.ffffc8p+2
erfc -0x1.fffffffffffff8p-2
erfc 26.0
erfc 27.0
erfc 28.0
erfc 0x1.ffff56789abcdef0123456789a8p+2
erfc 100
erfc 106
erfc 106.5
erfc 106.625
erfc 107
erfc 108
erfc 1000
erfc max
exp 0
exp -0
exp 1
exp 2
exp 3
exp 0.75
exp 50.0
exp 88.72269439697265625
exp 709.75
# Bug 16284: results on directed rounding may be incorrect.
exp 1000.0 xfail-rounding:dbl-64
exp 710 xfail-rounding:dbl-64
exp -1234
# Bug 16284: results on directed rounding may be incorrect.
Fix x86 / x86_64 expl / expl10l wild results in directed rounding modes (bug 16356). This patch fixes bug 16356, bad results from x86 / x86_64 expl / exp10l in directed rounding modes, the most serious of the bugs shown up by my patch expanding libm test coverage. When I fixed bug 16293, I thought it was only necessary to set round-to-nearest when using frndint in expm1 functions, because in other cases the cancellation error from having the resulting fractional part close to 1 or -1 would not be significant. However, in expl and exp10l, the way the final fractional part gets computed (something more complicated than a simple subtraction, because more precision is needed than you'd get that way) can result in a value outside the range [-1, 1] when the argument to frndint was very close to an integer and was rounded the "wrong" way because of the rounding mode - and the f2xm1 instruction has undefined results if its argument is outside [-1, 1], so resulting in the large errors seen. So this patch removes the USE_AS_EXPM1L conditionals on the round-to-nearest settings, so all of expl, expm1l and exp10l now get round-to-nearest used for frndint (meaning the final fractional part can at most be slightly above 0.5 in magnitude). Associated tests of exp and exp10 are added and testing of exp10 in directed rounding modes enabled. Tested x86_64 and x86 and ulps updated accordingly. * sysdeps/i386/fpu/e_expl.S (IEEE754_EXPL): Also set round-to-nearest for [!USE_AS_EXPM1L]. * sysdeps/x86_64/fpu/e_expl.S (IEEE754_EXPL): Likewise. * math/auto-libm-test-in: Do not expect cosh tests to fail. Add more tests of exp and exp10. Expect some exp10 tests to miss exceptions or fail in directed rounding modes. * math/auto-libm-test-out: Regenerated. * math/libm-test.inc (exp10_tonearest_test_data): New array. (exp10_test_tonearest): New function. (exp10_towardzero_test_data): New array. (exp10_test_towardzero): New function. (exp10_downward_test_data): New array. (exp10_test_downward): New function. (exp10_upward_test_data): New array. (exp10_test_upward): New function. (main): Call the new functions. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-12-21 13:07:16 +00:00
exp 0x2.c679d1f73f0fb628p+8 xfail-rounding:dbl-64
exp 1e5 xfail-rounding:dbl-64
exp max xfail-rounding:dbl-64
exp -7.4444006192138124e+02
exp -0x1.75f113c30b1c8p+9
exp -max
exp10 0
exp10 -0
exp10 3
exp10 -1
exp10 36
exp10 -36
exp10 305
exp10 -305
Fix x86 / x86_64 expl / expl10l wild results in directed rounding modes (bug 16356). This patch fixes bug 16356, bad results from x86 / x86_64 expl / exp10l in directed rounding modes, the most serious of the bugs shown up by my patch expanding libm test coverage. When I fixed bug 16293, I thought it was only necessary to set round-to-nearest when using frndint in expm1 functions, because in other cases the cancellation error from having the resulting fractional part close to 1 or -1 would not be significant. However, in expl and exp10l, the way the final fractional part gets computed (something more complicated than a simple subtraction, because more precision is needed than you'd get that way) can result in a value outside the range [-1, 1] when the argument to frndint was very close to an integer and was rounded the "wrong" way because of the rounding mode - and the f2xm1 instruction has undefined results if its argument is outside [-1, 1], so resulting in the large errors seen. So this patch removes the USE_AS_EXPM1L conditionals on the round-to-nearest settings, so all of expl, expm1l and exp10l now get round-to-nearest used for frndint (meaning the final fractional part can at most be slightly above 0.5 in magnitude). Associated tests of exp and exp10 are added and testing of exp10 in directed rounding modes enabled. Tested x86_64 and x86 and ulps updated accordingly. * sysdeps/i386/fpu/e_expl.S (IEEE754_EXPL): Also set round-to-nearest for [!USE_AS_EXPM1L]. * sysdeps/x86_64/fpu/e_expl.S (IEEE754_EXPL): Likewise. * math/auto-libm-test-in: Do not expect cosh tests to fail. Add more tests of exp and exp10. Expect some exp10 tests to miss exceptions or fail in directed rounding modes. * math/auto-libm-test-out: Regenerated. * math/libm-test.inc (exp10_tonearest_test_data): New array. (exp10_test_tonearest): New function. (exp10_towardzero_test_data): New array. (exp10_test_towardzero): New function. (exp10_downward_test_data): New array. (exp10_test_downward): New function. (exp10_upward_test_data): New array. (exp10_test_upward): New function. (main): Call the new functions. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-12-21 13:07:16 +00:00
# Bug 16284: results on directed rounding may be incorrect.
exp10 4932 xfail-rounding:flt-32
# Bug 16361: underflow exception may be misssing
exp10 -4932 missing-underflow:ldbl-96-intel:x86 missing-underflow:ldbl-96-intel:x86_64
# Bug 16284: results on directed rounding may be incorrect.
exp10 1e5 xfail-rounding:flt-32
exp10 -1e5
Fix x86 / x86_64 expl / expl10l wild results in directed rounding modes (bug 16356). This patch fixes bug 16356, bad results from x86 / x86_64 expl / exp10l in directed rounding modes, the most serious of the bugs shown up by my patch expanding libm test coverage. When I fixed bug 16293, I thought it was only necessary to set round-to-nearest when using frndint in expm1 functions, because in other cases the cancellation error from having the resulting fractional part close to 1 or -1 would not be significant. However, in expl and exp10l, the way the final fractional part gets computed (something more complicated than a simple subtraction, because more precision is needed than you'd get that way) can result in a value outside the range [-1, 1] when the argument to frndint was very close to an integer and was rounded the "wrong" way because of the rounding mode - and the f2xm1 instruction has undefined results if its argument is outside [-1, 1], so resulting in the large errors seen. So this patch removes the USE_AS_EXPM1L conditionals on the round-to-nearest settings, so all of expl, expm1l and exp10l now get round-to-nearest used for frndint (meaning the final fractional part can at most be slightly above 0.5 in magnitude). Associated tests of exp and exp10 are added and testing of exp10 in directed rounding modes enabled. Tested x86_64 and x86 and ulps updated accordingly. * sysdeps/i386/fpu/e_expl.S (IEEE754_EXPL): Also set round-to-nearest for [!USE_AS_EXPM1L]. * sysdeps/x86_64/fpu/e_expl.S (IEEE754_EXPL): Likewise. * math/auto-libm-test-in: Do not expect cosh tests to fail. Add more tests of exp and exp10. Expect some exp10 tests to miss exceptions or fail in directed rounding modes. * math/auto-libm-test-out: Regenerated. * math/libm-test.inc (exp10_tonearest_test_data): New array. (exp10_test_tonearest): New function. (exp10_towardzero_test_data): New array. (exp10_test_towardzero): New function. (exp10_downward_test_data): New array. (exp10_test_downward): New function. (exp10_upward_test_data): New array. (exp10_test_upward): New function. (main): Call the new functions. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-12-21 13:07:16 +00:00
# Bug 16284: results on directed rounding may be incorrect.
exp10 1e6 xfail-rounding:flt-32
exp10 -1e6
Fix x86 / x86_64 expl / expl10l wild results in directed rounding modes (bug 16356). This patch fixes bug 16356, bad results from x86 / x86_64 expl / exp10l in directed rounding modes, the most serious of the bugs shown up by my patch expanding libm test coverage. When I fixed bug 16293, I thought it was only necessary to set round-to-nearest when using frndint in expm1 functions, because in other cases the cancellation error from having the resulting fractional part close to 1 or -1 would not be significant. However, in expl and exp10l, the way the final fractional part gets computed (something more complicated than a simple subtraction, because more precision is needed than you'd get that way) can result in a value outside the range [-1, 1] when the argument to frndint was very close to an integer and was rounded the "wrong" way because of the rounding mode - and the f2xm1 instruction has undefined results if its argument is outside [-1, 1], so resulting in the large errors seen. So this patch removes the USE_AS_EXPM1L conditionals on the round-to-nearest settings, so all of expl, expm1l and exp10l now get round-to-nearest used for frndint (meaning the final fractional part can at most be slightly above 0.5 in magnitude). Associated tests of exp and exp10 are added and testing of exp10 in directed rounding modes enabled. Tested x86_64 and x86 and ulps updated accordingly. * sysdeps/i386/fpu/e_expl.S (IEEE754_EXPL): Also set round-to-nearest for [!USE_AS_EXPM1L]. * sysdeps/x86_64/fpu/e_expl.S (IEEE754_EXPL): Likewise. * math/auto-libm-test-in: Do not expect cosh tests to fail. Add more tests of exp and exp10. Expect some exp10 tests to miss exceptions or fail in directed rounding modes. * math/auto-libm-test-out: Regenerated. * math/libm-test.inc (exp10_tonearest_test_data): New array. (exp10_test_tonearest): New function. (exp10_towardzero_test_data): New array. (exp10_test_towardzero): New function. (exp10_downward_test_data): New array. (exp10_test_downward): New function. (exp10_upward_test_data): New array. (exp10_test_upward): New function. (main): Call the new functions. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-12-21 13:07:16 +00:00
# Bug 16284: results on directed rounding may be incorrect.
exp10 max xfail-rounding:flt-32
exp10 -max
exp10 0.75
Fix x86 / x86_64 expl / expl10l wild results in directed rounding modes (bug 16356). This patch fixes bug 16356, bad results from x86 / x86_64 expl / exp10l in directed rounding modes, the most serious of the bugs shown up by my patch expanding libm test coverage. When I fixed bug 16293, I thought it was only necessary to set round-to-nearest when using frndint in expm1 functions, because in other cases the cancellation error from having the resulting fractional part close to 1 or -1 would not be significant. However, in expl and exp10l, the way the final fractional part gets computed (something more complicated than a simple subtraction, because more precision is needed than you'd get that way) can result in a value outside the range [-1, 1] when the argument to frndint was very close to an integer and was rounded the "wrong" way because of the rounding mode - and the f2xm1 instruction has undefined results if its argument is outside [-1, 1], so resulting in the large errors seen. So this patch removes the USE_AS_EXPM1L conditionals on the round-to-nearest settings, so all of expl, expm1l and exp10l now get round-to-nearest used for frndint (meaning the final fractional part can at most be slightly above 0.5 in magnitude). Associated tests of exp and exp10 are added and testing of exp10 in directed rounding modes enabled. Tested x86_64 and x86 and ulps updated accordingly. * sysdeps/i386/fpu/e_expl.S (IEEE754_EXPL): Also set round-to-nearest for [!USE_AS_EXPM1L]. * sysdeps/x86_64/fpu/e_expl.S (IEEE754_EXPL): Likewise. * math/auto-libm-test-in: Do not expect cosh tests to fail. Add more tests of exp and exp10. Expect some exp10 tests to miss exceptions or fail in directed rounding modes. * math/auto-libm-test-out: Regenerated. * math/libm-test.inc (exp10_tonearest_test_data): New array. (exp10_test_tonearest): New function. (exp10_towardzero_test_data): New array. (exp10_test_towardzero): New function. (exp10_downward_test_data): New array. (exp10_test_downward): New function. (exp10_upward_test_data): New array. (exp10_test_upward): New function. (main): Call the new functions. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-12-21 13:07:16 +00:00
# Bug 16284: results on directed rounding may be incorrect.
exp10 0x1.348e45573a1dd72cp+8 xfail-rounding:flt-32 xfail-rounding:dbl-64
exp2 0
exp2 -0
exp2 10
exp2 -1
exp2 1e6
exp2 -1e6
exp2 max
exp2 -max
exp2 0.75
exp2 100.5
exp2 127
exp2 -149
exp2 1000.25
exp2 1023
exp2 -1074
exp2 16383
exp2 -16400
expm1 0
expm1 -0
expm1 1
expm1 0.75
expm1 50.0
expm1 127.0
expm1 500.0
expm1 11356.25
expm1 -10.0
expm1 -16.0
expm1 -17.0
expm1 -18.0
expm1 -36.0
expm1 -37.0
expm1 -38.0
expm1 -44.0
expm1 -45.0
expm1 -46.0
expm1 -73.0
expm1 -74.0
expm1 -75.0
expm1 -78.0
expm1 -79.0
expm1 -80.0
expm1 -100.0
expm1 -1000.0
expm1 -10000.0
expm1 -100000.0
expm1 100000.0
expm1 max
expm1 -max
Fix x86/x86_64 expm1 inaccuracy near 0 in directed rounding modes (bug 16293). Bug 16293 is inaccuracy of x86/x86_64 versions of expm1, near 0 in directed rounding modes, that arises from frndint rounding the exponent to 1 or -1 instead of 0, resulting in large cancellation error. This inaccuracy in turn affects other functions such as sinh that use expm1. This patch fixes the problem by setting round-to-nearest mode temporarily around the affected calls to frndint. I don't think this is needed for other uses of frndint, such as in exp itself, as only for expm1 is the cancellation error significant. Tested x86_64 and x86 and ulps updated accordingly. * sysdeps/i386/fpu/e_expl.S (IEEE754_EXPL) [USE_AS_EXPM1L]: Set round-to-nearest mode when using frndint. * sysdeps/i386/fpu/s_expm1.S (__expm1): Likewise. * sysdeps/i386/fpu/s_expm1f.S (__expm1f): Likewise. * sysdeps/x86_64/fpu/e_expl.S (IEEE754_EXPL) [USE_AS_EXPM1L]: Likewise. * math/auto-libm-test-in: Add more tests of expm1. Do not expect sinh test to fail. * math/auto-libm-test-out: Regenerated. * math/libm-test.inc (TEST_COND_x86_64): Remove macro. (TEST_COND_x86): Likewise. (expm1_tonearest_test_data): New array. (expm1_test_tonearest): New function. (expm1_towardzero_test_data): New array. (expm1_test_towardzero): New function. (expm1_downward_test_data): New array. (expm1_test_downward): New function. (expm1_upward_test_data): New array. (expm1_test_upward): New function. (main): Run the new test functions. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-12-19 13:36:10 +00:00
expm1 0x1p-2
expm1 -0x1p-2
expm1 0x1p-10
expm1 -0x1p-10
expm1 0x1p-20
expm1 -0x1p-20
expm1 0x1p-29
expm1 -0x1p-29
expm1 0x1p-32
expm1 -0x1p-32
expm1 0x1p-50
expm1 -0x1p-50
expm1 0x1p-64
expm1 -0x1p-64
expm1 0x1p-100
expm1 -0x1p-100
hypot 0 0
hypot 0 -0
hypot -0 0
hypot -0 -0
# hypot (x,y) == hypot (+-x, +-y).
hypot 0.7 12.4
hypot -0.7 12.4
hypot 0.7 -12.4
hypot -0.7 -12.4
hypot 12.4 0.7
hypot -12.4 0.7
hypot 12.4 -0.7
hypot -12.4 -0.7
# hypot (x,0) == fabs (x).
hypot 0.75 0
hypot -0.75 0
hypot -5.7e7 0
hypot 0.75 1.25
hypot 1.0 0x1p-61
hypot 0x1p+0 0x1.fp-129
hypot 0x1.23456789abcdef0123456789ab8p-500 0x1.23456789abcdef0123456789ab8p-500
hypot 0x3p125 0x4p125 no-test-inline:flt-32
hypot 0x1.234566p-126 0x1.234566p-126 no-test-inline:flt-32
hypot 0x3p1021 0x4p1021 no-test-inline:dbl-64
hypot 0x1p+0 0x0.3ep-1022 no-test-inline:dbl-64
hypot 0x3p16381 0x4p16381 no-test-inline
hypot 0x1p-149 0x1p-149
hypot 0x1p-1074 0x1p-1074
hypot 0x1p-16445 0x1p-16445 no-test-inline
hypot 0x1p-16494 0x1p-16494 no-test-inline
hypot 0x0.fffffep-126 0x0.fp-127
hypot 0x0.fffffep-126 0x0.fp-130
hypot 0x0.fffffffffffffp-1022 0x0.fp-1023
hypot 0x0.fffffffffffffp-1022 0x0.fp-1026
hypot 0x0.ffffffp-16382 0x0.fp-16383 no-test-inline
hypot 0x0.ffffffp-16382 0x0.fp-16386 no-test-inline
hypot 0 min_subnorm no-test-inline
j0 -1.0
j0 0.0
j0 0.125
j0 0.75
j0 1.0
j0 1.5
j0 2.0
j0 8.0
j0 10.0
j0 4.0
j0 -4.0
j0 0x1.d7ce3ap+107
j0 -0x1.001000001p+593
j0 0x1p1023
j0 0x1p16382
j0 0x1p16383
j1 -1.0
j1 0.0
j1 0.125
j1 0.75
j1 1.0
j1 1.5
j1 2.0
j1 8.0
j1 10.0
j1 0x1.3ffp+74
j1 0x1.ff00000000002p+840
j1 0x1p1023
j1 0x1p16382
j1 0x1p16383
# jn (0, x) == j0 (x).
jn 0 -1.0
jn 0 0.0
jn 0 0.125
jn 0 0.75
jn 0 1.0
jn 0 1.5
jn 0 2.0
jn 0 8.0
jn 0 10.0
jn 0 4.0
jn 0 -4.0
# jn (1, x) == j1 (x).
jn 1 -1.0
jn 1 0.0
jn 1 0.125
jn 1 0.75
jn 1 1.0
jn 1 1.5
jn 1 2.0
jn 1 8.0
jn 1 10.0
jn 3 -1.0
jn 3 0.0
jn 3 0.125
jn 3 0.75
jn 3 1.0
jn 3 2.0
jn 3 10.0
jn 10 -1.0
jn 10 0.0
jn 10 0.125
jn 10 0.75
jn 10 1.0
jn 10 2.0
jn 10 10.0
jn 2 2.4048255576957729
jn 3 2.4048255576957729
jn 4 2.4048255576957729
jn 5 2.4048255576957729
jn 6 2.4048255576957729
jn 7 2.4048255576957729
jn 8 2.4048255576957729
jn 9 2.4048255576957729
jn 2 0x1.ffff62p+99
jn 2 0x1p127
jn 2 0x1p1023
jn 2 0x1p16383
lgamma max
lgamma 1
lgamma 3
lgamma 0.5
lgamma -0.5
lgamma 0.7
lgamma 1.2
lgamma 0x1p-5
lgamma -0x1p-5
lgamma 0x1p-10
lgamma -0x1p-10
lgamma 0x1p-15
lgamma -0x1p-15
lgamma 0x1p-20
lgamma -0x1p-20
lgamma 0x1p-25
lgamma -0x1p-25
lgamma 0x1p-30
lgamma -0x1p-30
lgamma 0x1p-40
lgamma -0x1p-40
lgamma 0x1p-50
lgamma -0x1p-50
lgamma 0x1p-60
lgamma -0x1p-60
lgamma 0x1p-64
lgamma -0x1p-64
lgamma 0x1p-70
lgamma -0x1p-70
lgamma 0x1p-100
lgamma -0x1p-100
lgamma 0x1p-126
lgamma -0x1p-126
lgamma 0x1p-149
lgamma -0x1p-149
lgamma 0x1p-200
lgamma -0x1p-200
lgamma 0x1p-500
lgamma -0x1p-500
lgamma 0x1p-1000
lgamma -0x1p-1000
lgamma 0x1p-1022
lgamma -0x1p-1022
lgamma 0x1p-1074
lgamma -0x1p-1074
lgamma 0x1p-5000
lgamma -0x1p-5000
lgamma 0x1p-10000
lgamma -0x1p-10000
lgamma 0x1p-16382
lgamma -0x1p-16382
lgamma 0x1p-16445
lgamma -0x1p-16445
lgamma 0x1p-16494
lgamma -0x1p-16494
log 1
log e
log 1/e
log 2
log 10
log 0.75
log min
log min_subnorm
log10 1
log10 0.1
log10 10.0
log10 100.0
log10 10000.0
log10 e
log10 0.75
log10 min
log10 min_subnorm
log1p 0
log1p -0
log1p e-1
log1p -0.25
log1p -0.875
# Bug 16339: underflow exception may be missing.
log1p min missing-underflow
log1p min_subnorm missing-underflow
log1p -min missing-underflow
log1p -min_subnorm missing-underflow
log2 1
log2 e
log2 2.0
log2 16.0
log2 256.0
log2 0.75
log2 min
log2 min_subnorm
pow 0 0
pow 0 -0
pow -0 0
pow -0 -0
pow 10 0
pow 10 -0
pow -10 0
pow -10 -0
pow 1 1
pow 1 -1
pow 1 1.25
pow 1 -1.25
pow 1 0x1p62
pow 1 0x1p63
pow 1 0x1p64
pow 1 0x1p72
pow 1 min_subnorm
pow 1 -min_subnorm
# pow (x, +-0) == 1.
pow 32.75 0
pow 32.75 -0
pow -32.75 0
pow -32.75 -0
pow 0x1p72 0
pow 0x1p72 -0
pow 0x1p-72 0
pow 0x1p-72 -0
pow 0x1p72 0x1p72
pow 10 -0x1p72
pow max max
pow 10 -max
pow 0 1
pow 0 11
pow -0 1
pow -0 11
pow 0 2
pow 0 11.1
pow -0 2
pow -0 11.1
# pow (+0, y) == +0 for y an odd integer > 0.
pow 0.0 27
pow 0.0 0xffffff
pow 0.0 0x1.fffffffffffffp+52
pow 0.0 0x1.fffffffffffffffep+63
pow 0.0 0x1.ffffffffffffffffffffffffff8p+105
pow 0.0 0x1.ffffffffffffffffffffffffffffp+112
# pow (-0, y) == -0 for y an odd integer > 0.
pow -0 27
pow -0 0xffffff
pow -0 0x1fffffe
pow -0 0x1.fffffffffffffp+52
pow -0 0x1.fffffffffffffp+53
pow -0 0x1.fffffffffffffffep+63
pow -0 0x1.fffffffffffffffep+64
pow -0 0x1.ffffffffffffffffffffffffff8p+105
pow -0 0x1.ffffffffffffffffffffffffff8p+106
pow -0 0x1.ffffffffffffffffffffffffffffp+112
pow -0 0x1.ffffffffffffffffffffffffffffp+113
# pow (+0, y) == +0 for y > 0 and not an odd integer.
pow 0.0 4
pow 0.0 0x1p24
pow 0.0 0x1p127
pow 0.0 max
pow 0.0 min_subnorm
# pow (-0, y) == +0 for y > 0 and not an odd integer.
pow -0 4
pow -0 0x1p24
pow -0 0x1p127
pow -0 max
pow -0 min_subnorm
pow 16 0.25
pow 0x1p64 0.125
pow 2 4
pow 256 8
pow 0.75 1.25
pow -7.49321e+133 -9.80818e+16
pow -1.0 -0xffffff
pow -1.0 -0x1fffffe
pow -1.0 -0x1.fffffffffffffp+52
pow -1.0 -0x1.fffffffffffffp+53
pow -1.0 -0x1.fffffffffffffffep+63
pow -1.0 -0x1.fffffffffffffffep+64
pow -1.0 -0x1.ffffffffffffffffffffffffff8p+105
pow -1.0 -0x1.ffffffffffffffffffffffffff8p+106
pow -1.0 -0x1.ffffffffffffffffffffffffffffp+112
pow -1.0 -0x1.ffffffffffffffffffffffffffffp+113
pow -1.0 -max
pow -1.0 0xffffff
pow -1.0 0x1fffffe
pow -1.0 0x1.fffffffffffffp+52
pow -1.0 0x1.fffffffffffffp+53
pow -1.0 0x1.fffffffffffffffep+63
pow -1.0 0x1.fffffffffffffffep+64
pow -1.0 0x1.ffffffffffffffffffffffffff8p+105
pow -1.0 0x1.ffffffffffffffffffffffffff8p+106
pow -1.0 0x1.ffffffffffffffffffffffffffffp+112
pow -1.0 0x1.ffffffffffffffffffffffffffffp+113
pow -1.0 max
pow -2.0 126
pow -2.0 127
pow -2.0 -126
pow -2.0 -127
pow -2.0 -0xffffff
pow -2.0 -0x1fffffe
pow -2.0 -0x1.fffffffffffffp+52
pow -2.0 -0x1.fffffffffffffp+53
pow -2.0 -0x1.fffffffffffffffep+63
pow -2.0 -0x1.fffffffffffffffep+64
pow -2.0 -0x1.ffffffffffffffffffffffffff8p+105
pow -2.0 -0x1.ffffffffffffffffffffffffff8p+106
pow -2.0 -0x1.ffffffffffffffffffffffffffffp+112
pow -2.0 -0x1.ffffffffffffffffffffffffffffp+113
pow -2.0 -max
pow -2.0 0xffffff
pow -2.0 0x1fffffe
pow -2.0 0x1.fffffffffffffp+52
pow -2.0 0x1.fffffffffffffp+53
pow -2.0 0x1.fffffffffffffffep+63
pow -2.0 0x1.fffffffffffffffep+64
pow -2.0 0x1.ffffffffffffffffffffffffff8p+105
pow -2.0 0x1.ffffffffffffffffffffffffff8p+106
pow -2.0 0x1.ffffffffffffffffffffffffffffp+112
pow -2.0 0x1.ffffffffffffffffffffffffffffp+113
pow -2.0 max
pow -max -2
pow -max -3
pow -max 2
pow -max 3
pow -max -0xffffff
pow -max -0x1fffffe
pow -max -0x1.fffffffffffffp+52
pow -max -0x1.fffffffffffffp+53
pow -max -0x1.fffffffffffffffep+63
pow -max -0x1.fffffffffffffffep+64
pow -max -0x1.ffffffffffffffffffffffffff8p+105
pow -max -0x1.ffffffffffffffffffffffffff8p+106
pow -max -0x1.ffffffffffffffffffffffffffffp+112
pow -max -0x1.ffffffffffffffffffffffffffffp+113
pow -max -max
pow -max 0xffffff
pow -max 0x1fffffe
pow -max 0x1.fffffffffffffp+52
pow -max 0x1.fffffffffffffp+53
pow -max 0x1.fffffffffffffffep+63
pow -max 0x1.fffffffffffffffep+64
pow -max 0x1.ffffffffffffffffffffffffff8p+105
pow -max 0x1.ffffffffffffffffffffffffff8p+106
pow -max 0x1.ffffffffffffffffffffffffffffp+112
pow -max 0x1.ffffffffffffffffffffffffffffp+113
pow -max max
pow -0.5 126
pow -0.5 127
pow -0.5 -126
pow -0.5 -127
pow -0.5 -0xffffff
pow -0.5 -0x1fffffe
pow -0.5 -0x1.fffffffffffffp+52
pow -0.5 -0x1.fffffffffffffp+53
pow -0.5 -0x1.fffffffffffffffep+63
pow -0.5 -0x1.fffffffffffffffep+64
pow -0.5 -0x1.ffffffffffffffffffffffffff8p+105
pow -0.5 -0x1.ffffffffffffffffffffffffff8p+106
pow -0.5 -0x1.ffffffffffffffffffffffffffffp+112
pow -0.5 -0x1.ffffffffffffffffffffffffffffp+113
pow -0.5 -max
pow -0.5 0xffffff
pow -0.5 0x1fffffe
pow -0.5 0x1.fffffffffffffp+52
pow -0.5 0x1.fffffffffffffp+53
pow -0.5 0x1.fffffffffffffffep+63
pow -0.5 0x1.fffffffffffffffep+64
pow -0.5 0x1.ffffffffffffffffffffffffff8p+105
pow -0.5 0x1.ffffffffffffffffffffffffff8p+106
pow -0.5 0x1.ffffffffffffffffffffffffffffp+112
pow -0.5 0x1.ffffffffffffffffffffffffffffp+113
pow -0.5 max
pow -min -2
pow -min -3
pow -min 1
pow -min 2
pow -min 3
pow -min -0xffffff
pow -min -0x1fffffe
pow -min -0x1.fffffffffffffp+52
pow -min -0x1.fffffffffffffp+53
pow -min -0x1.fffffffffffffffep+63
pow -min -0x1.fffffffffffffffep+64
pow -min -0x1.ffffffffffffffffffffffffff8p+105
pow -min -0x1.ffffffffffffffffffffffffff8p+106
pow -min -0x1.ffffffffffffffffffffffffffffp+112
pow -min -0x1.ffffffffffffffffffffffffffffp+113
pow -min -max
pow -min 0xffffff
pow -min 0x1fffffe
pow -min 0x1.fffffffffffffp+52
pow -min 0x1.fffffffffffffp+53
pow -min 0x1.fffffffffffffffep+63
pow -min 0x1.fffffffffffffffep+64
pow -min 0x1.ffffffffffffffffffffffffff8p+105
pow -min 0x1.ffffffffffffffffffffffffff8p+106
pow -min 0x1.ffffffffffffffffffffffffffffp+112
pow -min 0x1.ffffffffffffffffffffffffffffp+113
pow -min max
pow 0x0.ffffffp0 10
pow 0x0.ffffffp0 100
pow 0x0.ffffffp0 1000
pow 0x0.ffffffp0 0x1p24
pow 0x0.ffffffp0 0x1p30
pow 0x0.ffffffp0 0x1.234566p30
pow 0x0.ffffffp0 -10
pow 0x0.ffffffp0 -100
pow 0x0.ffffffp0 -1000
pow 0x0.ffffffp0 -0x1p24
pow 0x0.ffffffp0 -0x1p30
pow 0x0.ffffffp0 -0x1.234566p30
pow 0x1.000002p0 0x1p24
pow 0x1.000002p0 0x1.234566p29
pow 0x1.000002p0 -0x1.234566p29
pow 0x0.fffffffffffff8p0 0x1.23456789abcdfp62
pow 0x0.fffffffffffff8p0 -0x1.23456789abcdfp62
pow 0x1.0000000000001p0 0x1.23456789abcdfp61
pow 0x1.0000000000001p0 -0x1.23456789abcdfp61
pow 0x0.ffffffffffffffffp0 0x1.23456789abcdef0ep77
pow 0x0.ffffffffffffffffp0 -0x1.23456789abcdef0ep77
pow 0x1.0000000000000002p0 0x1.23456789abcdef0ep76
pow 0x1.0000000000000002p0 -0x1.23456789abcdef0ep76
pow 0x0.ffffffffffffffffffffffffffff8p0 0x1.23456789abcdef0123456789abcdp126
pow 0x0.ffffffffffffffffffffffffffff8p0 -0x1.23456789abcdef0123456789abcdp126
pow 0x1.0000000000000000000000000001p0 0x1.23456789abcdef0123456789abcdp125
pow 0x1.0000000000000000000000000001p0 -0x1.23456789abcdef0123456789abcdp125
pow 1e4932 0.75
pow 1e4928 0.75
pow 1e4924 0.75
pow 1e4920 0.75
pow 10.0 4932.0
pow 10.0 4931.0
pow 10.0 4930.0
pow 10.0 4929.0
pow 10.0 -4931.0
pow 10.0 -4930.0
pow 10.0 -4929.0
pow 1e27 182.0
pow 1e27 -182.0
pow min_subnorm min_subnorm
pow min_subnorm -min_subnorm
pow max min_subnorm
pow max -min_subnorm
pow 0.99 min_subnorm
pow 0.99 -min_subnorm
pow 1.01 min_subnorm
pow 1.01 -min_subnorm
pow 2.0 -100000.0
pow 1.0625 1.125
pow 1.5 1.03125
sin 0
sin -0
sin pi/6
sin -pi/6
sin pi/2
sin -pi/2
sin 0.75
sin 0x1p65
sin -0x1p65
sin 0x1.7f4134p+103
sin 0.80190127184058835
sin 2.522464e-1
sin 1e22
sin 0x1p1023
sin 0x1p16383
sin 0x1p+120
sin 0x1p+127
sin 0x1.fffff8p+127
sin 0x1.fffffep+127
sin 0x1p+50
sin 0x1p+28
sin 0.93340582292648832662962377071381
sin 2.3328432680770916363144351635128
sin 3.7439477503636453548097051680088
sin 3.9225160069792437411706487182528
sin 4.0711651639931289992091478779912
sin 4.7858438478542097982426639646292
sin 5.9840767662578002727968851104379
sin 1
sin 2
sin 3
sin 4
sin 5
sin 6
sin 7
sin 8
sin 9
sin 10
sincos 0
sincos -0
sincos pi/2
sincos pi/6
sincos pi/3
sincos 0.75
sincos 0x1p65
sincos -0x1p65
sincos 0.80190127184058835
sincos 1e22
sincos 0x1p1023
sincos 0x1p16383
sincos 0x1p+120
sincos 0x1p+127
sincos 0x1.fffff8p+127
sincos 0x1.fffffep+127
sincos 0x1p+50
sincos 0x1p+28
sinh 0
sinh -0
sinh 0.75
Fix x86/x86_64 expm1 inaccuracy near 0 in directed rounding modes (bug 16293). Bug 16293 is inaccuracy of x86/x86_64 versions of expm1, near 0 in directed rounding modes, that arises from frndint rounding the exponent to 1 or -1 instead of 0, resulting in large cancellation error. This inaccuracy in turn affects other functions such as sinh that use expm1. This patch fixes the problem by setting round-to-nearest mode temporarily around the affected calls to frndint. I don't think this is needed for other uses of frndint, such as in exp itself, as only for expm1 is the cancellation error significant. Tested x86_64 and x86 and ulps updated accordingly. * sysdeps/i386/fpu/e_expl.S (IEEE754_EXPL) [USE_AS_EXPM1L]: Set round-to-nearest mode when using frndint. * sysdeps/i386/fpu/s_expm1.S (__expm1): Likewise. * sysdeps/i386/fpu/s_expm1f.S (__expm1f): Likewise. * sysdeps/x86_64/fpu/e_expl.S (IEEE754_EXPL) [USE_AS_EXPM1L]: Likewise. * math/auto-libm-test-in: Add more tests of expm1. Do not expect sinh test to fail. * math/auto-libm-test-out: Regenerated. * math/libm-test.inc (TEST_COND_x86_64): Remove macro. (TEST_COND_x86): Likewise. (expm1_tonearest_test_data): New array. (expm1_test_tonearest): New function. (expm1_towardzero_test_data): New array. (expm1_test_towardzero): New function. (expm1_downward_test_data): New array. (expm1_test_downward): New function. (expm1_upward_test_data): New array. (expm1_test_upward): New function. (main): Run the new test functions. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-12-19 13:36:10 +00:00
sinh 0x8p-32
sinh 22
sinh 23
sinh 24
sqrt 0
sqrt -0
sqrt 2209
sqrt 4
sqrt 2
sqrt 0.25
sqrt 6642.25
sqrt 15190.5625
sqrt 0.75
2013-11-29 16:31:16 +00:00
sqrt 0x1.fffffffffffffp+1023
sqrt 0x1.ffffffffffffbp+1023
sqrt 0x1.ffffffffffff7p+1023
sqrt 0x1.ffffffffffff3p+1023
sqrt 0x1.fffffffffffefp+1023
sqrt 0x1.fffffffffffebp+1023
sqrt 0x1.fffffffffffe7p+1023
sqrt 0x1.fffffffffffe3p+1023
sqrt 0x1.fffffffffffdfp+1023
sqrt 0x1.fffffffffffdbp+1023
sqrt 0x1.fffffffffffd7p+1023
sqrt 0x1.0000000000003p-1022
sqrt 0x1.0000000000007p-1022
sqrt 0x1.000000000000bp-1022
sqrt 0x1.000000000000fp-1022
sqrt 0x1.0000000000013p-1022
sqrt 0x1.0000000000017p-1022
sqrt 0x1.000000000001bp-1022
sqrt 0x1.000000000001fp-1022
sqrt 0x1.0000000000023p-1022
sqrt 0x1.0000000000027p-1022
sqrt 0x1.000000000002bp-1022
sqrt 0x1.000000000002fp-1022
sqrt 0x1.0000000000033p-1022
sqrt 0x1.0000000000037p-1022
sqrt 0x1.7167bc36eaa3bp+6
sqrt 0x1.7570994273ad7p+6
sqrt 0x1.7dae969442fe6p+6
sqrt 0x1.7f8444fcf67e5p+6
sqrt 0x1.8364650e63a54p+6
sqrt 0x1.85bedd274edd8p+6
sqrt 0x1.8609cf496ab77p+6
sqrt 0x1.873849c70a375p+6
sqrt 0x1.8919c962cbaaep+6
sqrt 0x1.8de4493e22dc6p+6
sqrt 0x1.924829a17a288p+6
sqrt 0x1.92702cd992f12p+6
sqrt 0x1.92b763a8311fdp+6
sqrt 0x1.947da013c7293p+6
sqrt 0x1.9536091c494d2p+6
sqrt 0x1.61b04c6p-1019
sqrt 0x1.93789f1p-1018
sqrt 0x1.a1989b4p-1018
sqrt 0x1.f93bc9p-1018
sqrt 0x1.2f675e3p-1017
sqrt 0x1.a158508p-1017
sqrt 0x1.cd31f078p-1017
sqrt 0x1.33b43b08p-1016
sqrt 0x1.6e66a858p-1016
sqrt 0x1.8661cbf8p-1016
sqrt 0x1.bbb221b4p-1016
sqrt 0x1.c4942f3cp-1016
sqrt 0x1.dbb258c8p-1016
sqrt 0x1.57103ea4p-1015
sqrt 0x1.9b294f88p-1015
sqrt 0x1.0000000000001p+0
sqrt 0x1.fffffffffffffp-1
tan 0
tan -0
tan pi/4
tan 0.75
tan 0x1p65
tan -0x1p65
tan 0xc.9p-4
tan 0xc.908p-4
tan 0xc.90cp-4
tan 0xc.90ep-4
tan 0xc.90fp-4
tan 0xc.90f8p-4
tan 0xc.90fcp-4
tan 0xc.90fdp-4
tan 0xc.90fd8p-4
tan 0xc.90fdap-4
tan 0xc.ap-4
tan 0xc.98p-4
tan 0xc.94p-4
tan 0xc.92p-4
tan 0xc.91p-4
tan 0xc.90fep-4
tan 0xc.90fdcp-4
tan 0xc.90fdbp-4
tan -0xc.9p-4
tan -0xc.908p-4
tan -0xc.90cp-4
tan -0xc.90ep-4
tan -0xc.90fp-4
tan -0xc.90f8p-4
tan -0xc.90fcp-4
tan -0xc.90fdp-4
tan -0xc.90fd8p-4
tan -0xc.90fdap-4
tan -0xc.ap-4
tan -0xc.98p-4
tan -0xc.94p-4
tan -0xc.92p-4
tan -0xc.91p-4
tan -0xc.90fep-4
tan -0xc.90fdcp-4
tan -0xc.90fdbp-4
tan 1e22
tan 0x1p1023
tan 0x1p16383
tan 1
tan 2
tan 3
tan 4
tan 5
tan 6
tan 7
tan 8
tan 9
tan 10
tanh 0
tanh -0
tanh 0.75
tanh -0.75
tanh 1.0
tanh -1.0
tanh 0x1p-57
tgamma 0.5
tgamma -0.5
tgamma 1
tgamma 2
tgamma 3
tgamma 4
tgamma 5
tgamma 6
tgamma 7
tgamma 8
tgamma 9
tgamma 10
tgamma 0.7
tgamma 1.2
tgamma 1.5
tgamma 2.5
tgamma 3.5
tgamma 4.5
tgamma 5.5
tgamma 6.5
tgamma 7.5
tgamma 8.5
tgamma 9.5
tgamma -1.5
tgamma -2.5
tgamma -3.5
tgamma -4.5
tgamma -5.5
tgamma -6.5
tgamma -7.5
tgamma -8.5
tgamma -9.5
tgamma 0x1p-24
tgamma -0x1p-24
tgamma 0x1p-53
tgamma -0x1p-53
tgamma 0x1p-64
tgamma -0x1p-64
tgamma 0x1p-106
tgamma -0x1p-106
tgamma 0x1p-113
tgamma -0x1p-113
tgamma 0x1p-127
tgamma -0x1p-127
tgamma 0x1p-128
tgamma -0x1p-128
tgamma 0x1p-149
tgamma -0x1p-149
tgamma 0x1p-1023
tgamma -0x1p-1023
tgamma 0x1p-1024
tgamma -0x1p-1024
tgamma 0x1p-1074
tgamma -0x1p-1074
tgamma 0x1p-16383
tgamma -0x1p-16383
tgamma 0x1p-16384
tgamma -0x1p-16384
tgamma 0x1p-16445
tgamma -0x1p-16445
tgamma 0x1p-16494
tgamma -0x1p-16494
tgamma 0x8.00001p0
tgamma 0x7.fffff8p0
tgamma 0x7.000008p0
tgamma 0x6.fffff8p0
tgamma 0x6.000008p0
tgamma 0x5.fffff8p0
tgamma 0x5.000008p0
tgamma 0x4.fffff8p0
tgamma 0x4.000008p0
tgamma 0x3.fffffcp0
tgamma 0x3.000004p0
tgamma 0x2.fffffcp0
tgamma 0x2.000004p0
tgamma 0x1.fffffep0
tgamma 0x1.000002p0
tgamma 0x0.ffffffp0
tgamma -0x0.ffffffp0
tgamma -0x1.000002p0
tgamma -0x1.fffffep0
tgamma -0x2.000004p0
tgamma -0x2.fffffcp0
tgamma -0x3.000004p0
tgamma -0x3.fffffcp0
tgamma -0x4.000008p0
tgamma -0x4.fffff8p0
tgamma -0x5.000008p0
tgamma -0x5.fffff8p0
tgamma -0x6.000008p0
tgamma -0x6.fffff8p0
tgamma -0x7.000008p0
tgamma -0x7.fffff8p0
tgamma -0x8.00001p0
tgamma -0x9.fffffp0
tgamma -0xa.00001p0
tgamma -0x13.ffffep0
tgamma -0x14.00002p0
tgamma -0x1d.ffffep0
tgamma -0x1e.00002p0
tgamma -0x27.ffffcp0
tgamma -0x28.00004p0
tgamma -0x28.ffffcp0
tgamma -0x29.00004p0
tgamma -0x29.ffffcp0
tgamma -0x2a.00004p0
tgamma 0x8.0000000000008p0
tgamma 0x7.ffffffffffffcp0
tgamma 0x7.0000000000004p0
tgamma 0x6.ffffffffffffcp0
tgamma 0x6.0000000000004p0
tgamma 0x5.ffffffffffffcp0
tgamma 0x5.0000000000004p0
tgamma 0x4.ffffffffffffcp0
tgamma 0x4.0000000000004p0
tgamma 0x3.ffffffffffffep0
tgamma 0x3.0000000000002p0
tgamma 0x2.ffffffffffffep0
tgamma 0x2.0000000000002p0
tgamma 0x1.fffffffffffffp0
tgamma 0x1.0000000000001p0
tgamma 0x0.fffffffffffff8p0
tgamma -0x0.fffffffffffff8p0
tgamma -0x1.0000000000001p0
tgamma -0x1.fffffffffffffp0
tgamma -0x2.0000000000002p0
tgamma -0x2.ffffffffffffep0
tgamma -0x3.0000000000002p0
tgamma -0x3.ffffffffffffep0
tgamma -0x4.0000000000004p0
tgamma -0x4.ffffffffffffcp0
tgamma -0x5.0000000000004p0
tgamma -0x5.ffffffffffffcp0
tgamma -0x6.0000000000004p0
tgamma -0x6.ffffffffffffcp0
tgamma -0x7.0000000000004p0
tgamma -0x7.ffffffffffffcp0
tgamma -0x8.0000000000008p0
tgamma -0x9.ffffffffffff8p0
tgamma -0xa.0000000000008p0
tgamma -0x13.ffffffffffffp0
tgamma -0x14.000000000001p0
tgamma -0x1d.ffffffffffffp0
tgamma -0x1e.000000000001p0
tgamma -0x27.fffffffffffep0
tgamma -0x28.000000000002p0
tgamma -0x28.fffffffffffep0
tgamma -0x29.000000000002p0
tgamma -0x29.fffffffffffep0
tgamma -0x2a.000000000002p0
tgamma -0x31.fffffffffffep0
tgamma -0x32.000000000002p0
tgamma -0x63.fffffffffffcp0
tgamma -0x64.000000000004p0
tgamma -0x95.fffffffffff8p0
tgamma -0x96.000000000008p0
tgamma -0xb4.fffffffffff8p0
tgamma -0xb5.000000000008p0
tgamma -0xb5.fffffffffff8p0
tgamma -0xb6.000000000008p0
tgamma -0xb6.fffffffffff8p0
tgamma -0xb7.000000000008p0
tgamma -0xb7.fffffffffff8p0
tgamma -0xb8.000000000008p0
tgamma 0x8.00000000000000000000000004p0
tgamma 0x7.fffffffffffffffffffffffffep0
tgamma 0x7.00000000000000000000000002p0
tgamma 0x6.fffffffffffffffffffffffffep0
tgamma 0x6.00000000000000000000000002p0
tgamma 0x5.fffffffffffffffffffffffffep0
tgamma 0x5.00000000000000000000000002p0
tgamma 0x4.fffffffffffffffffffffffffep0
tgamma 0x4.00000000000000000000000002p0
tgamma 0x3.ffffffffffffffffffffffffffp0
tgamma 0x3.00000000000000000000000001p0
tgamma 0x2.ffffffffffffffffffffffffffp0
tgamma 0x2.00000000000000000000000001p0
tgamma 0x1.ffffffffffffffffffffffffff8p0
tgamma 0x1.000000000000000000000000008p0
tgamma 0x0.ffffffffffffffffffffffffffcp0
tgamma -0x0.ffffffffffffffffffffffffffcp0
tgamma -0x1.000000000000000000000000008p0
tgamma -0x1.ffffffffffffffffffffffffff8p0
tgamma -0x2.00000000000000000000000001p0
tgamma -0x2.ffffffffffffffffffffffffffp0
tgamma -0x3.00000000000000000000000001p0
tgamma -0x3.ffffffffffffffffffffffffffp0
tgamma -0x4.00000000000000000000000002p0
tgamma -0x4.fffffffffffffffffffffffffep0
tgamma -0x5.00000000000000000000000002p0
tgamma -0x5.fffffffffffffffffffffffffep0
tgamma -0x6.00000000000000000000000002p0
tgamma -0x6.fffffffffffffffffffffffffep0
tgamma -0x7.00000000000000000000000002p0
tgamma -0x7.fffffffffffffffffffffffffep0
tgamma -0x8.00000000000000000000000004p0
tgamma -0x9.fffffffffffffffffffffffffcp0
tgamma -0xa.00000000000000000000000004p0
tgamma -0x13.fffffffffffffffffffffffff8p0
tgamma -0x14.00000000000000000000000008p0
tgamma -0x1d.fffffffffffffffffffffffff8p0
tgamma -0x1e.00000000000000000000000008p0
tgamma -0x27.fffffffffffffffffffffffffp0
tgamma -0x28.0000000000000000000000001p0
tgamma -0x28.fffffffffffffffffffffffffp0
tgamma -0x29.0000000000000000000000001p0
tgamma -0x29.fffffffffffffffffffffffffp0
tgamma -0x2a.0000000000000000000000001p0
tgamma -0x31.fffffffffffffffffffffffffp0
tgamma -0x32.0000000000000000000000001p0
tgamma -0x63.ffffffffffffffffffffffffep0
tgamma -0x64.0000000000000000000000002p0
tgamma -0x95.ffffffffffffffffffffffffcp0
tgamma -0x96.0000000000000000000000004p0
tgamma -0xb4.ffffffffffffffffffffffffcp0
tgamma -0xb5.0000000000000000000000004p0
tgamma -0xb5.ffffffffffffffffffffffffcp0
tgamma -0xb6.0000000000000000000000004p0
tgamma -0xb6.ffffffffffffffffffffffffcp0
tgamma -0xb7.0000000000000000000000004p0
tgamma -0xb7.ffffffffffffffffffffffffcp0
tgamma -0xb8.0000000000000000000000004p0
tgamma -0xbb.ffffffffffffffffffffffffcp0
tgamma -0xbc.0000000000000000000000004p0
tgamma -0xbc.ffffffffffffffffffffffffcp0
tgamma -0xbd.0000000000000000000000004p0
tgamma -0xbd.ffffffffffffffffffffffffcp0
tgamma -0xbe.0000000000000000000000004p0
tgamma -0xbe.ffffffffffffffffffffffffcp0
tgamma -0xbf.0000000000000000000000004p0
tgamma 0x8.000000000000001p0
tgamma 0x7.fffffffffffffff8p0
tgamma 0x7.0000000000000008p0
tgamma 0x6.fffffffffffffff8p0
tgamma 0x6.0000000000000008p0
tgamma 0x5.fffffffffffffff8p0
tgamma 0x5.0000000000000008p0
tgamma 0x4.fffffffffffffff8p0
tgamma 0x4.0000000000000008p0
tgamma 0x3.fffffffffffffffcp0
tgamma 0x3.0000000000000004p0
tgamma 0x2.fffffffffffffffcp0
tgamma 0x2.0000000000000004p0
tgamma 0x1.fffffffffffffffep0
tgamma 0x1.0000000000000002p0
tgamma 0x0.ffffffffffffffffp0
tgamma -0x0.ffffffffffffffffp0
tgamma -0x1.0000000000000002p0
tgamma -0x1.fffffffffffffffep0
tgamma -0x2.0000000000000004p0
tgamma -0x2.fffffffffffffffcp0
tgamma -0x3.0000000000000004p0
tgamma -0x3.fffffffffffffffcp0
tgamma -0x4.0000000000000008p0
tgamma -0x4.fffffffffffffff8p0
tgamma -0x5.0000000000000008p0
tgamma -0x5.fffffffffffffff8p0
tgamma -0x6.0000000000000008p0
tgamma -0x6.fffffffffffffff8p0
tgamma -0x7.0000000000000008p0
tgamma -0x7.fffffffffffffff8p0
tgamma -0x8.000000000000001p0
tgamma -0x9.fffffffffffffffp0
tgamma -0xa.000000000000001p0
tgamma -0x13.ffffffffffffffep0
tgamma -0x14.000000000000002p0
tgamma -0x1d.ffffffffffffffep0
tgamma -0x1e.000000000000002p0
tgamma -0x27.ffffffffffffffcp0
tgamma -0x28.000000000000004p0
tgamma -0x28.ffffffffffffffcp0
tgamma -0x29.000000000000004p0
tgamma -0x29.ffffffffffffffcp0
tgamma -0x2a.000000000000004p0
tgamma -0x31.ffffffffffffffcp0
tgamma -0x32.000000000000004p0
tgamma -0x63.ffffffffffffff8p0
tgamma -0x64.000000000000008p0
tgamma -0x95.ffffffffffffffp0
tgamma -0x96.00000000000001p0
tgamma -0xb4.ffffffffffffffp0
tgamma -0xb5.00000000000001p0
tgamma -0xb5.ffffffffffffffp0
tgamma -0xb6.00000000000001p0
tgamma -0xb6.ffffffffffffffp0
tgamma -0xb7.00000000000001p0
tgamma -0xb7.ffffffffffffffp0
tgamma -0xb8.00000000000001p0
tgamma -0xbb.ffffffffffffffp0
tgamma -0xbc.00000000000001p0
tgamma -0xbc.ffffffffffffffp0
tgamma -0xbd.00000000000001p0
tgamma -0xbd.ffffffffffffffp0
tgamma -0xbe.00000000000001p0
tgamma -0xbe.ffffffffffffffp0
tgamma -0xbf.00000000000001p0
tgamma -0xf9.ffffffffffffffp0
tgamma -0xfa.00000000000001p0
tgamma -0x1f3.fffffffffffffep0
tgamma -0x1f4.00000000000002p0
tgamma -0x2ed.fffffffffffffcp0
tgamma -0x2ee.00000000000004p0
tgamma -0x3e7.fffffffffffffcp0
tgamma -0x3e8.00000000000004p0
tgamma -0x4e1.fffffffffffff8p0
tgamma -0x4e2.00000000000008p0
tgamma -0x5db.fffffffffffff8p0
tgamma -0x5dc.00000000000008p0
tgamma -0x6d5.fffffffffffff8p0
tgamma -0x6d6.00000000000008p0
tgamma -0x6e2.fffffffffffff8p0
tgamma -0x6e3.00000000000008p0
tgamma -0x6e3.fffffffffffff8p0
tgamma -0x6e4.00000000000008p0
tgamma -0x6e4.fffffffffffff8p0
tgamma -0x6e5.00000000000008p0
tgamma -0x6e5.fffffffffffff8p0
tgamma -0x6e6.00000000000008p0
tgamma 0x8.0000000000000000000000000008p0
tgamma 0x7.fffffffffffffffffffffffffffcp0
tgamma 0x7.0000000000000000000000000004p0
tgamma 0x6.fffffffffffffffffffffffffffcp0
tgamma 0x6.0000000000000000000000000004p0
tgamma 0x5.fffffffffffffffffffffffffffcp0
tgamma 0x5.0000000000000000000000000004p0
tgamma 0x4.fffffffffffffffffffffffffffcp0
tgamma 0x4.0000000000000000000000000004p0
tgamma 0x3.fffffffffffffffffffffffffffep0
tgamma 0x3.0000000000000000000000000002p0
tgamma 0x2.fffffffffffffffffffffffffffep0
tgamma 0x2.0000000000000000000000000002p0
tgamma 0x1.ffffffffffffffffffffffffffffp0
tgamma 0x1.0000000000000000000000000001p0
tgamma 0x0.ffffffffffffffffffffffffffff8p0
tgamma -0x0.ffffffffffffffffffffffffffff8p0
tgamma -0x1.0000000000000000000000000001p0
tgamma -0x1.ffffffffffffffffffffffffffffp0
tgamma -0x2.0000000000000000000000000002p0
tgamma -0x2.fffffffffffffffffffffffffffep0
tgamma -0x3.0000000000000000000000000002p0
tgamma -0x3.fffffffffffffffffffffffffffep0
tgamma -0x4.0000000000000000000000000004p0
tgamma -0x4.fffffffffffffffffffffffffffcp0
tgamma -0x5.0000000000000000000000000004p0
tgamma -0x5.fffffffffffffffffffffffffffcp0
tgamma -0x6.0000000000000000000000000004p0
tgamma -0x6.fffffffffffffffffffffffffffcp0
tgamma -0x7.0000000000000000000000000004p0
tgamma -0x7.fffffffffffffffffffffffffffcp0
tgamma -0x8.0000000000000000000000000008p0
tgamma -0x9.fffffffffffffffffffffffffff8p0
tgamma -0xa.0000000000000000000000000008p0
tgamma -0x13.fffffffffffffffffffffffffffp0
tgamma -0x14.000000000000000000000000001p0
tgamma -0x1d.fffffffffffffffffffffffffffp0
tgamma -0x1e.000000000000000000000000001p0
tgamma -0x27.ffffffffffffffffffffffffffep0
tgamma -0x28.000000000000000000000000002p0
tgamma -0x28.ffffffffffffffffffffffffffep0
tgamma -0x29.000000000000000000000000002p0
tgamma -0x29.ffffffffffffffffffffffffffep0
tgamma -0x2a.000000000000000000000000002p0
tgamma -0x31.ffffffffffffffffffffffffffep0
tgamma -0x32.000000000000000000000000002p0
tgamma -0x63.ffffffffffffffffffffffffffcp0
tgamma -0x64.000000000000000000000000004p0
tgamma -0x95.ffffffffffffffffffffffffff8p0
tgamma -0x96.000000000000000000000000008p0
tgamma -0xb4.ffffffffffffffffffffffffff8p0
tgamma -0xb5.000000000000000000000000008p0
tgamma -0xb5.ffffffffffffffffffffffffff8p0
tgamma -0xb6.000000000000000000000000008p0
tgamma -0xb6.ffffffffffffffffffffffffff8p0
tgamma -0xb7.000000000000000000000000008p0
tgamma -0xb7.ffffffffffffffffffffffffff8p0
tgamma -0xb8.000000000000000000000000008p0
tgamma -0xbb.ffffffffffffffffffffffffff8p0
tgamma -0xbc.000000000000000000000000008p0
tgamma -0xbc.ffffffffffffffffffffffffff8p0
tgamma -0xbd.000000000000000000000000008p0
tgamma -0xbd.ffffffffffffffffffffffffff8p0
tgamma -0xbe.000000000000000000000000008p0
tgamma -0xbe.ffffffffffffffffffffffffff8p0
tgamma -0xbf.000000000000000000000000008p0
tgamma -0xf9.ffffffffffffffffffffffffff8p0
tgamma -0xfa.000000000000000000000000008p0
tgamma -0x1f3.ffffffffffffffffffffffffffp0
tgamma -0x1f4.00000000000000000000000001p0
tgamma -0x2ed.fffffffffffffffffffffffffep0
tgamma -0x2ee.00000000000000000000000002p0
tgamma -0x3e7.fffffffffffffffffffffffffep0
tgamma -0x3e8.00000000000000000000000002p0
tgamma -0x4e1.fffffffffffffffffffffffffcp0
tgamma -0x4e2.00000000000000000000000004p0
tgamma -0x5db.fffffffffffffffffffffffffcp0
tgamma -0x5dc.00000000000000000000000004p0
tgamma -0x6d5.fffffffffffffffffffffffffcp0
tgamma -0x6d6.00000000000000000000000004p0
tgamma -0x6e2.fffffffffffffffffffffffffcp0
tgamma -0x6e3.00000000000000000000000004p0
tgamma -0x6e3.fffffffffffffffffffffffffcp0
tgamma -0x6e4.00000000000000000000000004p0
tgamma -0x6e4.fffffffffffffffffffffffffcp0
tgamma -0x6e5.00000000000000000000000004p0
tgamma -0x6e5.fffffffffffffffffffffffffcp0
tgamma -0x6e6.00000000000000000000000004p0
tgamma -0x6eb.fffffffffffffffffffffffffcp0
tgamma -0x6ec.00000000000000000000000004p0
tgamma -0x6ec.fffffffffffffffffffffffffcp0
tgamma -0x6ed.00000000000000000000000004p0
tgamma -0x6ed.fffffffffffffffffffffffffcp0
tgamma -0x6ee.00000000000000000000000004p0
tgamma -0x6ee.fffffffffffffffffffffffffcp0
tgamma -0x6ef.00000000000000000000000004p0
tgamma -0x1.0a32a2p+5
tgamma -0x1.5800000080001p+7
tgamma 18.5
tgamma 19.5
tgamma 23.5
tgamma 29.5
tgamma 30.5
tgamma 31.5
tgamma 32.5
tgamma 33.5
tgamma 34.5
tgamma 0x2.30a43cp+4
tgamma 0x2.30a44p+4
tgamma 0xa.b9fd72b0fb238p+4
tgamma 0xa.b9fd72b0fb24p+4
tgamma 0xa.b9fd72b0fb23a9ddbf0d3804f4p+4
tgamma 0xa.b9fd72b0fb23a9ddbf0d3804f8p+4
tgamma 0x6.db8c603359a97108p+8
tgamma 0x6.db8c603359a9711p+8
tgamma 0x6.db8c603359a971081bc4a2e9dfdp+8
tgamma 0x6.db8c603359a971081bc4a2e9dfd4p+8
tgamma 1e3
tgamma -100000.5
y0 0.125
y0 0.75
y0 1.0
y0 1.5
y0 2.0
y0 8.0
y0 10.0
y0 0x1.3ffp+74
y0 0x1.ff00000000002p+840
y0 0x1p1023
y0 0x1p16382
y0 0x1p16383
y0 0x1p-10
y0 0x1p-20
y0 0x1p-30
y0 0x1p-40
y0 0x1p-50
y0 0x1p-60
y0 0x1p-70
y0 0x1p-80
y0 0x1p-90
y0 0x1p-100
y0 0x1p-110
y1 0.125
y1 0.75
y1 1.0
y1 1.5
y1 2.0
y1 8.0
y1 10.0
y1 0x1.27e204p+99
y1 0x1.001000001p+593
y1 0x1p1023
y1 0x1p16382
y1 0x1p16383
y1 0x1p-10
y1 0x1p-20
y1 0x1p-30
y1 0x1p-40
y1 0x1p-50
y1 0x1p-60
y1 0x1p-70
y1 0x1p-80
y1 0x1p-90
y1 0x1p-100
y1 0x1p-110
# yn (0, x) == y0 (x).
yn 0 0.125
yn 0 0.75
yn 0 1.0
yn 0 1.5
yn 0 2.0
yn 0 8.0
yn 0 10.0
# yn (1, x) == y1 (x).
yn 1 0.125
yn 1 0.75
yn 1 1.0
yn 1 1.5
yn 1 2.0
yn 1 8.0
yn 1 10.0
# yn (-1, x) == -y1 (x).
yn -1 1.0
# yn (3, x).
yn 3 0.125
yn 3 0.75
yn 3 1.0
yn 3 2.0
yn 3 10.0
# yn (10, x).
yn 10 0.125
yn 10 0.75
yn 10 1.0
yn 10 2.0
yn 10 10.0
yn -10 1.0
yn 10 min
yn 2 0x1.ffff62p+99
yn 2 0x1p127
yn 2 0x1p1023
yn 2 0x1p16383