diff options
author | Waldemar Brodkorb <wbx@uclibc-ng.org> | 2016-11-03 13:03:55 +0100 |
---|---|---|
committer | Waldemar Brodkorb <wbx@uclibc-ng.org> | 2016-11-03 13:03:55 +0100 |
commit | 3384c45e66ddf18f235654b67ae34ac7dcb07534 (patch) | |
tree | edbd0f03b72acb5961f7919e13da34a34a84fc23 | |
parent | 29d1023614fcfef8520edec8b64e9f8953d9a121 (diff) |
math: sync with GNU libc
The format of the ULPS files have changed, non-glibc architecture
files needs to be updated later.
Add all math tests from latest GNU libc and allow to compile
and run them on uClibc-ng and GNU libc systems.
82 files changed, 351222 insertions, 21557 deletions
diff --git a/test/math/Makefile.in b/test/math/Makefile.in index 3e60445..0b26805 100644 --- a/test/math/Makefile.in +++ b/test/math/Makefile.in @@ -5,21 +5,35 @@ TESTS_DISABLED := libm-test # gamma (removed from TESTS, need to add "small errors are ok" machinery there) -TESTS_DISABLED += gamma -ifeq ($(UCLIBC_HAS_LONG_DOUBLE_MATH),) -TESTS_DISABLED += test-ldouble test-ildoubl compile_test c99_test -CFLAGS_basic-test := -DNO_LONG_DOUBLE -endif - -DODIFF_rint := 1 -DODIFF_signgam := 1 +TESTS_DISABLED += gamma +TESTS_DISABLED += test-misc test-signgam-main +# disable long double tests, only for some architectures available +TESTS_DISABLED += test-ldouble test-ldouble-finite test-ildoubl compile_test c99_test +# disable tgmath tests, not implemented +TESTS_DISABLED += test-tgmath test-tgmath2 test-tgmath-int test-tgmath-ret + +CFLAGS_test-signgam-finite = -ffinite-math-only +CFLAGS_test-signgam-finite-c99 = -ffinite-math-only -std=c99 +CFLAGS_test-signgam-finite-c11 = -ffinite-math-only -std=c11 +CFLAGS_test-signgam-uchar = -std=c99 +CFLAGS_test-signgam-uchar-init = -std=c99 +CFLAGS_test-signgam-uchar-static = -std=c99 +CFLAGS_test-signgam-uchar-init-static = -std=c99 +CFLAGS_test-signgam-uint = -std=c99 +CFLAGS_test-signgam-uint-init = -std=c99 +CFLAGS_test-signgam-uint-static = -std=c99 +CFLAGS_test-signgam-uint-init-static = -std=c99 +CFLAGS_test-signgam-ullong = -std=c99 +CFLAGS_test-signgam-ullong-init = -std=c99 +CFLAGS_test-signgam-ullong-static = -std=c99 +CFLAGS_test-signgam-ullong-init-static = -std=c99 # NOTE: For basic-test we must disable the floating point optimization. # Only for sh architecture because in the other architecture are disabled. ifeq ($(TARGET_ARCH),sh) CFLAGS_basic-test += -mieee endif -EXTRA_CFLAGS := -fno-builtin +EXTRA_CFLAGS := -fno-builtin -DNO_LONG_DOUBLE EXTRA_LDFLAGS := -lm PERL := perl @@ -28,13 +42,10 @@ MDEPS := $(wildcard test-*.c) $(MDEPS): libm-test.c ULP_SUFFIX := -ifeq ($(TARGET_ARCH),mips) -ULP_SUFFIX:=$(if $(CONFIG_MIPS_N64_ABI),64,32) -endif - TARGET_ULP := $(if $(wildcard libm-test-ulps-$(TARGET_ARCH)$(ULP_SUFFIX)),$(TARGET_ARCH)$(ULP_SUFFIX),generic) libm-test.c: libm-test-ulps-$(TARGET_ULP) libm-test.inc gen-libm-test.pl $(Q)$(PERL) ./gen-libm-test.pl -u libm-test-ulps-$(TARGET_ULP) ./libm-test.inc -o "." 2>&1 > /dev/null + $(Q)$(SHELL) ./gen-libm-have-vector-test.sh > libm-have-vector-test.h -EXTRA_CLEAN := libm-test.c libm-test-ulps.h +EXTRA_CLEAN := libm-test.c libm-test-ulps.h libm-have-vector-test.h diff --git a/test/math/auto-libm-test-in b/test/math/auto-libm-test-in new file mode 100644 index 0000000..ffcc40a --- /dev/null +++ b/test/math/auto-libm-test-in @@ -0,0 +1,4796 @@ +# libm test inputs for gen-auto-libm-tests.c. +# Copyright (C) 1997-2016 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.fffffffffffff8p0 +acos -0x0.fffffffffffff8p0 +acos 0x0.ffffffffffffffffp0 +acos -0x0.ffffffffffffffffp0 +acos 0x0.ffffffffffffffffffffffffffcp0 +acos -0x0.ffffffffffffffffffffffffffcp0 +acos 0x0.ffffffffffffffffffffffffffff8p0 +acos -0x0.ffffffffffffffffffffffffffff8p0 +acos 0x1p-5 +acos 0x1p-10 +acos 0x1p-15 +acos 0x1p-20 +acos 0x1p-25 +acos 0x1p-30 +acos 0x1p-35 +acos 0x1p-40 +acos 0x1p-45 +acos 0x1p-50 +acos 0x1p-55 +acos 0x1p-60 +acos 0x1p-65 +acos 0x1p-70 +acos 0x1p-75 +acos 0x1p-80 +acos 0x1p-85 +acos 0x1p-90 +acos 0x1p-95 +acos 0x1p-100 +acos 0x1p-105 +acos 0x1p-110 +acos 0x1p-115 +acos 0x1p-120 +acos -0x1p-5 +acos -0x1p-25 +acos -0x1p-45 +acos -0x1p-65 +acos -0x1p-85 +acos -0x1p-105 +acos -0x1p-125 +acos -0x2.0089a4p-4 +acos 0xf.04aeep-4 +acos 0x5.dd258006121b8p-4 +acos -0x2.35f051e70dbc4p-4 +acos 0xe.9a5c0d7fabb9aa1p-4 +acos 0xe.17513589de79b75p-4 +acos 0x3.e57821d368ebap-4 +acos 0x2.0bee8p-4 +acos -0x1.da00d8p-4 +acos min +acos -min +acos min_subnorm +acos -min_subnorm + +acosh 1 +acosh 0x1.000002p0 +acosh 0x1.0000000000001p0 no-test-inline +acosh 0x1.0000000000000002p0 no-test-inline +acosh 0x1.000000000000000000000000008p0 no-test-inline +acosh 0x1.0000000000000000000000000001p0 no-test-inline +acosh 1.625 +acosh 7 +acosh 100 +acosh 1e5 +acosh 0x1p8 +acosh 0x1p9 +acosh 0x1p10 +acosh 0x1p11 +acosh 0x1p12 +acosh 0x1p13 +acosh 0x1p24 +acosh 0x1p25 +acosh 0x1p26 +acosh 0x1p27 +acosh 0x1p28 +acosh 0x1p29 +acosh 0x1p30 +acosh 0x1p31 +acosh 0x1p32 +acosh 0x1p33 +acosh 0x1p48 +acosh 0x1p49 +acosh 0x1p50 +acosh 0x1p51 +acosh 0x1p52 +acosh 0x1p53 +acosh 0x1p54 +acosh 0x1p55 +acosh 0x1p56 +acosh 0x1p57 +acosh 0x1p58 +acosh 0x1p59 +acosh 0x1p100 +acosh 0x1p500 +acosh 0x1p5000 +acosh 0x1.80a368p+0 +acosh 0x1.0b9d3e9fc19fbp+0 +acosh 0x1.11eab6p+0 +acosh 0x1.0fffaap+0 +acosh 0x1.068e0eca105a6p+0 +acosh 0x2.8d4288p+0 +acosh 0x1.5d71a6p+36 +acosh 0x1.476a3c43d7edep+288 +acosh 0xc.84cb1dbbd1b1p+0 +acosh 0x1.0722362c26ba5p+0 +acosh 0x1.73515p+0 +acosh 0x1.1b836p+0 +acosh 0x1.07c956p+0 +acosh 0x1.1808eep+0 +acosh 0x1.1052c4p+0 +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.fffffffffffff8p0 +asin -0x0.fffffffffffff8p0 +asin 0x0.ffffffffffffffffp0 +asin -0x0.ffffffffffffffffp0 +asin 0x0.ffffffffffffffffffffffffffcp0 +asin -0x0.ffffffffffffffffffffffffffcp0 +asin 0x0.ffffffffffffffffffffffffffff8p0 +asin -0x0.ffffffffffffffffffffffffffff8p0 +asin 0x1p-5 +asin 0x1p-10 +asin 0x1p-15 +asin 0x1p-20 +asin 0x1p-25 +asin 0x1p-30 +asin 0x1p-35 +asin 0x1p-40 +asin 0x1p-45 +asin 0x1p-50 +asin 0x1p-55 +asin 0x1p-60 +asin 0x1p-100 +asin 0x1p-600 +asin 0x1p-10000 +asin -0x2.18915cp-4 +asin -0x3.746774p-4 +asin -0x3.1c54d10e5c844p-4 +asin 0xf.c9675fa6fe69f12p-4 +asin -0xa.fc5afp-4 +asin 0xd.805e5p-4 +asin -0x2.1a02dcp-4 +asin -0x8.1c120ac3e495p-4 +asin -0xb.36dacp-4 +asin min +asin -min +asin min_subnorm +asin -min_subnorm + +asinh 0 +asinh -0 +asinh 0.75 +asinh 1 +asinh 10 +asinh 100 +asinh 1e6 +asinh 0x1p8 +asinh 0x1p9 +asinh 0x1p10 +asinh 0x1p11 +asinh 0x1p12 +asinh 0x1p13 +asinh 0x1p24 +asinh 0x1p25 +asinh 0x1p26 +asinh 0x1p27 +asinh 0x1p28 +asinh 0x1p29 +asinh 0x1p30 +asinh 0x1p31 +asinh 0x1p32 +asinh 0x1p33 +asinh 0x1p48 +asinh 0x1p49 +asinh 0x1p50 +asinh 0x1p51 +asinh 0x1p52 +asinh 0x1p53 +asinh 0x1p54 +asinh 0x1p55 +asinh 0x1p56 +asinh 0x1p57 +asinh 0x1p58 +asinh 0x1p59 +asinh 0x1p100 +asinh 0x1p500 +asinh 0x1p5000 +asinh 0x1p-8 +asinh 0x1p-9 +asinh 0x1p-10 +asinh 0x1p-11 +asinh 0x1p-12 +asinh 0x1p-13 +asinh 0x1p-24 +asinh 0x1p-25 +asinh 0x1p-26 +asinh 0x1p-27 +asinh 0x1p-28 +asinh 0x1p-29 +asinh 0x1p-30 +asinh 0x1p-31 +asinh 0x1p-32 +asinh 0x1p-33 +asinh 0x1p-48 +asinh 0x1p-49 +asinh 0x1p-50 +asinh 0x1p-51 +asinh 0x1p-52 +asinh 0x1p-53 +asinh 0x1p-54 +asinh 0x1p-55 +asinh 0x1p-56 +asinh 0x1p-57 +asinh 0x1p-58 +asinh 0x1p-59 +asinh 0x1p-100 +asinh -0x3.d26bb4p-4 +asinh -0x3.bdeef4p-4 +asinh -0x7.fc7fc8p-8 +asinh -0x3.b94a52e6913c2p-4 +asinh 0x7.d8e5a8p-4 +asinh -0x7.63a06320c42e4p-4 +asinh 0x6.f4a93p-4 +asinh -0x7.88bcc8p-4 +asinh -0x3.11c35p-4 +asinh -0x4.39534p-4 +asinh -0xd.d62e8p+92 +asinh -0x4.cfb9805a53a2065p-4 +asinh -0x5.cabae7a011e33d9p-4 +asinh -0x6.e26358p-4 +asinh 0x6.c92c08p-4 +asinh 0x1p-500 +asinh 0x1p-5000 +asinh min +asinh -min +asinh min_subnorm +asinh -min_subnorm +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 0x1p-10 +atan 0x1p-15 +atan 0x1p-20 +atan 0x1p-25 +atan 0x1p-30 +atan 0x1p-35 +atan 0x1p-40 +atan 0x1p-45 +atan 0x1p-50 +atan 0x1p-55 +atan 0x1p-60 +atan 2.5 +atan 10 +atan 1e6 +atan 0x1p31 +atan 0x1p-100 +atan 0x1p-600 +atan 0x1p-10000 +atan -0x3.b02d84p-4 +atan -0x3.3fb708p-4 +atan -0x2.3249ap+0 +atan -0x1.363f46p+0 +atan -0x1.ad4c0ap+0 +atan -0x3.eb8e18p+0 +atan 0x3.53c188p+0 +atan -0x1.58c83p+0 +atan min +atan -min +atan min_subnorm +atan -min_subnorm + +# 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 0x4.c3841p-4 0x2.f2f308p+0 +atan2 -0xe.cf143p-40 0xd.3de7ap-36 +atan2 0x5.576cf8p-4 0x2.21e65p+0 +atan2 -0x4.29411p-4 0x1.f4755cp+0 +atan2 -0xa.b4101p+20 -0xf.9c4c8p-4 +atan2 0x4.251bb8p-4 0x7.40ac68p+0 +atan2 0x1.47239ep+68 0xa.3ac3cp+68 +atan2 -0x6.b0794p-4 0x3.8ff10cp+0 +atan2 -0x7.15e7af0a1780cp-724 0xf.fffffp+124 +atan2 0x3.f16f1p+0 -0x1.546056p+0 +atan2 -0x1.9e657cp-24 0x7.40bb4p-52 +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 min min_subnorm +atan2 min -min_subnorm +atan2 -min min_subnorm +atan2 -min -min_subnorm +atan2 min_subnorm min +atan2 min_subnorm -min +atan2 -min_subnorm min +atan2 -min_subnorm -min +atan2 1 -max +atan2 -1 -max +atan2 min -max +atan2 -min -max +atan2 min_subnorm -max +atan2 -min_subnorm -max +atan2 1 max +atan2 -1 max +atan2 min max +atan2 -min max +atan2 min_subnorm max +atan2 -min_subnorm max +atan2 min 1 +atan2 -min 1 +atan2 min_subnorm 1 +atan2 -min_subnorm 1 +atan2 min -1 +atan2 -min -1 +atan2 min_subnorm -1 +atan2 -min_subnorm -1 + +atanh 0 +atanh -0 +atanh 0.75 +atanh -0.75 +atanh 0.25 +atanh 0x1p-5 +atanh 0x1p-10 +atanh 0x1.2345p-20 +atanh 0x1p-8 +atanh 0x1p-9 +atanh 0x1p-10 +atanh 0x1p-11 +atanh 0x1p-12 +atanh 0x1p-13 +atanh 0x1p-24 +atanh 0x1p-25 +atanh 0x1p-26 +atanh 0x1p-27 +atanh 0x1p-28 +atanh 0x1p-29 +atanh 0x1p-30 +atanh 0x1p-31 +atanh 0x1p-32 +atanh 0x1p-33 +atanh 0x1p-48 +atanh 0x1p-49 +atanh 0x1p-50 +atanh 0x1p-51 +atanh 0x1p-52 +atanh 0x1p-53 +atanh 0x1p-54 +atanh 0x1p-55 +atanh 0x1p-56 +atanh 0x1p-57 +atanh 0x1p-58 +atanh 0x1p-59 +atanh 0x1p-100 +atanh -0x1p-100 +atanh 0x1p-600 +atanh -0x1p-600 +atanh 0x1p-10000 +atanh -0x1p-10000 +atanh 0x0.ffffffp0 no-test-inline +atanh -0x0.ffffffp0 no-test-inline +atanh 0x0.ffffffff8p0 no-test-inline +atanh -0x0.ffffffff8p0 no-test-inline +atanh 0x0.ffffffffffffp0 no-test-inline +atanh -0x0.ffffffffffffp0 no-test-inline +atanh 0x0.fffffffffffff8p0 no-test-inline +atanh -0x0.fffffffffffff8p0 no-test-inline +atanh 0x0.ffffffffffffffffp0 no-test-inline +atanh -0x0.ffffffffffffffffp0 n |