diff options
author | Ulrich Drepper <drepper@redhat.com> | 2004-12-22 20:10:10 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2004-12-22 20:10:10 +0000 |
commit | a334319f6530564d22e775935d9c91663623a1b4 (patch) | |
tree | b5877475619e4c938e98757d518bb1e9cbead751 /math | |
parent | 0ecb606cb6cf65de1d9fc8a919bceb4be476c602 (diff) | |
download | glibc-a334319f6530564d22e775935d9c91663623a1b4.tar.gz |
(CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.
Diffstat (limited to 'math')
232 files changed, 45 insertions, 13351 deletions
diff --git a/math/Makefile b/math/Makefile index 1ab1b13b07..c4501b87f4 100644 --- a/math/Makefile +++ b/math/Makefile @@ -1,5 +1,4 @@ -# Copyright (C) 1996-2001,2002,2003,2004,2005,2006 -# Free Software Foundation, Inc. +# Copyright (C) 1996-2001, 2002, 2003, 2004 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 @@ -90,7 +89,7 @@ distribute += $(filter-out $(generated),$(long-m-yes:=.c) $(long-c-yes:=.c)) # Rules for the test suite. tests = test-matherr test-fenv atest-exp atest-sincos atest-exp2 basic-test \ test-misc test-fpucw tst-definitions test-tgmath test-tgmath-ret \ - bug-nextafter bug-nexttoward bug-tgmath1 test-tgmath-int + bug-nextafter bug-nexttoward bug-tgmath1 # We do the `long double' tests only if this data type is available and # distinct from `double'. test-longdouble-yes = test-ldouble test-ildoubl @@ -108,7 +107,7 @@ generated += $(libm-tests-generated) libm-test.stmp # This is needed for dependencies before-compile += $(objpfx)libm-test.c -ulps-file = $(firstword $(wildcard $(sysdirs:%=%/libm-test-ulps))) +ulps-file = $(firstword $(wildcard $(config-sysdirs:%=$(..)%/libm-test-ulps))) $(addprefix $(objpfx), $(libm-tests-generated)): $(objpfx)libm-test.stmp @@ -150,15 +149,6 @@ distribute += ieee-math.c include ../Rules -# The generated sysd-rules file defines rules like this for sources -# coming from sysdeps/ directories. These rules find the generic sources. -define o-iterator-doit -$(objpfx)m_%$o: s_%.c $(before-compile); $$(compile-command.c) -endef -object-suffixes-left := $(all-object-suffixes) -include $(o-iterator) - - # This file defines the default _LIB_VERSION variable that controls # the error return conventions for the math functions. CPPFLAGS-s_lib_version.c := -D_POSIX_MODE diff --git a/math/Versions b/math/Versions index 39c47626f6..bd24fc6698 100644 --- a/math/Versions +++ b/math/Versions @@ -94,7 +94,7 @@ libm { } GLIBC_2.1 { # mathematical functions - exp2; exp2f; # exp2l; -- bug omitted this until GLIBC_2.4 (below) + exp2; exp2f; exp2l; exp10; exp10f; exp10l; fdim; fdimf; fdiml; fma; fmaf; fmal; @@ -161,11 +161,4 @@ libm { # fp environment function feenableexcept; fedisableexcept; fegetexcept; } - GLIBC_2.4 { - # A bug in sysdeps/generic/w_exp2.c kept this from appearing - # in GLIBC_2.1 as it should have on platforms using that - # implementation file. On others, sysdeps/CPU/Versions now - # puts exp2l in GLIBC_2.1, which will override this entry. - exp2l; - } } diff --git a/math/basic-test.c b/math/basic-test.c index e48a3ae4e0..e42c014572 100644 --- a/math/basic-test.c +++ b/math/basic-test.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2007 Free Software Foundation, Inc. +/* Copyright (C) 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Andreas Jaeger <aj@suse.de>, 1999. @@ -44,7 +44,7 @@ NAME (void) \ \ zero_var = 0.0; \ one_var = 1.0; \ - NaN_var = zero_var / zero_var; \ + NaN_var = zero_var/zero_var; \ Inf_var = one_var / zero_var; \ \ (void) &zero_var; \ @@ -103,51 +103,21 @@ NAME (void) \ check (#FLOAT " isinf (-HUGE_VALx) == -1", isinf (x1) == -1); \ } -#define TEST_TRUNC(NAME, FLOAT, DOUBLE) \ -void \ -NAME (void) \ -{ \ - volatile DOUBLE Inf_var, NaN_var, zero_var, one_var; \ - FLOAT x1, x2; \ - \ - zero_var = 0.0; \ - one_var = 1.0; \ - NaN_var = zero_var / zero_var; \ - Inf_var = one_var / zero_var; \ - \ - (void) &NaN_var; \ - (void) &Inf_var; \ - \ - x1 = (FLOAT) NaN_var; \ - check (" "#FLOAT" x = ("#FLOAT") ("#DOUBLE") NaN", isnan (x1) != 0); \ - x2 = (FLOAT) Inf_var; \ - check (" "#FLOAT" x = ("#FLOAT") ("#DOUBLE") Inf", isinf (x2) != 0); \ -} - TEST_FUNC (float_test, float, nanf, FLT_EPSILON, HUGE_VALF) TEST_FUNC (double_test, double, nan, DBL_EPSILON, HUGE_VAL) -TEST_TRUNC (truncdfsf_test, float, double) #ifndef NO_LONG_DOUBLE TEST_FUNC (ldouble_test, long double, nanl, LDBL_EPSILON, HUGE_VALL) -TEST_TRUNC (trunctfsf_test, float, long double) -TEST_TRUNC (trunctfdf_test, double, long double) #endif int -do_test (void) +main (void) { float_test (); double_test (); - truncdfsf_test(); #ifndef NO_LONG_DOUBLE ldouble_test (); - trunctfsf_test(); - trunctfdf_test(); #endif return errors != 0; } - -#define TEST_FUNCTION do_test () -#include "../test-skeleton.c" diff --git a/math/bits/mathcalls.h b/math/bits/mathcalls.h index 64da6276f6..75b2f74556 100644 --- a/math/bits/mathcalls.h +++ b/math/bits/mathcalls.h @@ -1,5 +1,5 @@ /* Prototype declarations for math functions; helper file for <math.h>. - Copyright (C) 1996-2002, 2003, 2006 Free Software Foundation, Inc. + Copyright (C) 1996-2002, 2003 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 @@ -281,7 +281,7 @@ __MATHCALL (rint,, (_Mdouble_ __x)); /* Return X + epsilon if X < Y, X - epsilon if X > Y. */ __MATHCALLX (nextafter,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); -# if defined __USE_ISOC99 && !defined __LDBL_COMPAT +# ifdef __USE_ISOC99 __MATHCALLX (nexttoward,, (_Mdouble_ __x, long double __y), (__const__)); # endif @@ -353,13 +353,10 @@ __MATHDECL_1 (int, __signbit,, (_Mdouble_ __value)) /* Multiply-add function computed as a ternary operation. */ __MATHCALL (fma,, (_Mdouble_ __x, _Mdouble_ __y, _Mdouble_ __z)); -#endif /* Use ISO C99. */ - -#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 __END_NAMESPACE_C99 -#endif -#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED +# if defined __USE_MISC || defined __USE_XOPEN_EXTENDED /* Return X times (2 to the Nth power). */ __MATHCALL (scalb,, (_Mdouble_ __x, _Mdouble_ __n)); -#endif +# endif +#endif /* Use ISO C99. */ diff --git a/math/bug-nextafter.c b/math/bug-nextafter.c index 1d21841ea6..2a967c75bf 100644 --- a/math/bug-nextafter.c +++ b/math/bug-nextafter.c @@ -4,9 +4,6 @@ #include <stdlib.h> #include <stdio.h> -float zero = 0.0; -float inf = INFINITY; - int main (void) { @@ -37,81 +34,6 @@ main (void) ++result; } - i = 0; - m = FLT_MIN; - feclearexcept (FE_ALL_EXCEPT); - i = nextafterf (m, i); - if (i < 0 || i >= FLT_MIN) - { - puts ("nextafterf+ failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nextafterf+ did not underflow"); - ++result; - } - i = 0; - feclearexcept (FE_ALL_EXCEPT); - i = nextafterf (-m, -i); - if (i > 0 || i <= -FLT_MIN) - { - puts ("nextafterf- failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nextafterf- did not underflow"); - ++result; - } - i = -INFINITY; - feclearexcept (FE_ALL_EXCEPT); - m = nextafterf (zero, inf); - if (m < 0.0 || m >= FLT_MIN) - { - puts ("nextafterf+ failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nextafterf+ did not underflow"); - ++result; - } - feclearexcept (FE_ALL_EXCEPT); - if (nextafterf (m, i) != 0.0) - { - puts ("nextafterf+ failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nextafterf+ did not underflow"); - ++result; - } - feclearexcept (FE_ALL_EXCEPT); - m = nextafterf (copysignf (zero, -1.0), -inf); - if (m > 0.0 || m <= -FLT_MIN) - { - puts ("nextafterf- failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nextafterf- did not underflow"); - ++result; - } - feclearexcept (FE_ALL_EXCEPT); - if (nextafterf (m, -i) != 0.0) - { - puts ("nextafterf- failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nextafterf- did not underflow"); - ++result; - } - double di = INFINITY; double dm = DBL_MAX; feclearexcept (FE_ALL_EXCEPT); @@ -137,182 +59,5 @@ main (void) ++result; } - di = 0; - dm = DBL_MIN; - feclearexcept (FE_ALL_EXCEPT); - di = nextafter (dm, di); - if (di < 0 || di >= DBL_MIN) - { - puts ("nextafter+ failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nextafter+ did not underflow"); - ++result; - } - di = 0; - feclearexcept (FE_ALL_EXCEPT); - di = nextafter (-dm, -di); - if (di > 0 || di <= -DBL_MIN) - { - puts ("nextafter- failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nextafter- did not underflow"); - ++result; - } - di = -INFINITY; - feclearexcept (FE_ALL_EXCEPT); - dm = nextafter (zero, inf); - if (dm < 0.0 || dm >= DBL_MIN) - { - puts ("nextafter+ failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nextafter+ did not underflow"); - ++result; - } - feclearexcept (FE_ALL_EXCEPT); - if (nextafter (dm, di) != 0.0) - { - puts ("nextafter+ failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nextafter+ did not underflow"); - ++result; - } - feclearexcept (FE_ALL_EXCEPT); - dm = nextafter (copysign (zero, -1.0), -inf); - if (dm > 0.0 || dm <= -DBL_MIN) - { - puts ("nextafter- failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nextafter- did not underflow"); - ++result; - } - feclearexcept (FE_ALL_EXCEPT); - if (nextafter (dm, -di) != 0.0) - { - puts ("nextafter- failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nextafter- did not underflow"); - ++result; - } - -#ifndef NO_LONG_DOUBLE - long double li = INFINITY; - long double lm = LDBL_MAX; - feclearexcept (FE_ALL_EXCEPT); - if (nextafterl (lm, li) != li) - { - puts ("nextafterl+ failed"); - ++result; - } - if (fetestexcept (FE_OVERFLOW) == 0) - { - puts ("nextafterl+ did not overflow"); - ++result; - } - feclearexcept (FE_ALL_EXCEPT); - if (nextafterl (-lm, -li) != -li) - { - puts ("nextafterl failed"); - ++result; - } - if (fetestexcept (FE_OVERFLOW) == 0) - { - puts ("nextafterl- did not overflow"); - ++result; - } - - li = 0; - lm = LDBL_MIN; - feclearexcept (FE_ALL_EXCEPT); - li = nextafterl (lm, li); - if (li < 0 || li >= LDBL_MIN) - { - puts ("nextafterl+ failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nextafterl+ did not underflow"); - ++result; - } - li = 0; - feclearexcept (FE_ALL_EXCEPT); - li = nextafterl (-lm, -li); - if (li > 0 || li <= -LDBL_MIN) - { - puts ("nextafterl- failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nextafterl- did not underflow"); - ++result; - } - li = -INFINITY; - feclearexcept (FE_ALL_EXCEPT); - lm = nextafterl (zero, inf); - if (lm < 0.0 || lm >= LDBL_MIN) - { - puts ("nextafterl+ failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nextafterl+ did not underflow"); - ++result; - } - feclearexcept (FE_ALL_EXCEPT); - if (nextafterl (lm, li) != 0.0) - { - puts ("nextafterl+ failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nextafterl+ did not underflow"); - ++result; - } - feclearexcept (FE_ALL_EXCEPT); - lm = nextafterl (copysign (zero, -1.0), -inf); - if (lm > 0.0 || lm <= -LDBL_MIN) - { - puts ("nextafterl- failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nextafterl- did not underflow"); - ++result; - } - feclearexcept (FE_ALL_EXCEPT); - if (nextafterl (lm, -li) != 0.0) - { - puts ("nextafterl- failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nextafterl- did not underflow"); - ++result; - } -#endif - return result; } diff --git a/math/bug-nexttoward.c b/math/bug-nexttoward.c index ff57e5e3f5..e306a129c2 100644 --- a/math/bug-nexttoward.c +++ b/math/bug-nexttoward.c @@ -4,9 +4,6 @@ #include <stdlib.h> #include <stdio.h> -float zero = 0.0; -float inf = INFINITY; - int main (void) { @@ -38,81 +35,6 @@ main (void) ++result; } - fi = 0; - m = FLT_MIN; - feclearexcept (FE_ALL_EXCEPT); - fi = nexttowardf (m, fi); - if (fi < 0 || fi >= FLT_MIN) - { - puts ("nexttowardf+ failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nexttowardf+ did not underflow"); - ++result; - } - fi = 0; - feclearexcept (FE_ALL_EXCEPT); - fi = nexttowardf (-m, -fi); - if (fi > 0 || fi <= -FLT_MIN) - { - puts ("nexttowardf- failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nexttowardf- did not underflow"); - ++result; - } - fi = -INFINITY; - feclearexcept (FE_ALL_EXCEPT); - m = nexttowardf (zero, inf); - if (m < 0.0 || m >= FLT_MIN) - { - puts ("nexttowardf+ failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nexttowardf+ did not underflow"); - ++result; - } - feclearexcept (FE_ALL_EXCEPT); - if (nexttowardf (m, fi) != 0.0) - { - puts ("nexttowardf+ failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nexttowardf+ did not underflow"); - ++result; - } - feclearexcept (FE_ALL_EXCEPT); - m = nexttowardf (copysignf (zero, -1.0), -inf); - if (m > 0.0 || m <= -FLT_MIN) - { - puts ("nexttowardf- failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nexttowardf- did not underflow"); - ++result; - } - feclearexcept (FE_ALL_EXCEPT); - if (nexttowardf (m, -fi) != 0.0) - { - puts ("nexttowardf- failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nexttowardf- did not underflow"); - ++result; - } - tl = (long double) DBL_MAX + 1.0e305L; double di = INFINITY; double dm = DBL_MAX; @@ -139,182 +61,5 @@ main (void) ++result; } - di = 0; - dm = DBL_MIN; - feclearexcept (FE_ALL_EXCEPT); - di = nexttoward (dm, di); - if (di < 0 || di >= DBL_MIN) - { - puts ("nexttoward+ failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nexttoward+ did not underflow"); - ++result; - } - di = 0; - feclearexcept (FE_ALL_EXCEPT); - di = nexttoward (-dm, -di); - if (di > 0 || di <= -DBL_MIN) - { - puts ("nexttoward- failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nexttoward- did not underflow"); - ++result; - } - di = -INFINITY; - feclearexcept (FE_ALL_EXCEPT); - dm = nexttoward (zero, inf); - if (dm < 0.0 || dm >= DBL_MIN) - { - puts ("nexttoward+ failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nexttoward+ did not underflow"); - ++result; - } - feclearexcept (FE_ALL_EXCEPT); - if (nexttoward (dm, di) != 0.0) - { - puts ("nexttoward+ failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nexttoward+ did not underflow"); - ++result; - } - feclearexcept (FE_ALL_EXCEPT); - dm = nexttoward (copysign (zero, -1.0), -inf); - if (dm > 0.0 || dm <= -DBL_MIN) - { - puts ("nexttoward- failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nexttoward- did not underflow"); - ++result; - } - feclearexcept (FE_ALL_EXCEPT); - if (nexttoward (dm, -di) != 0.0) - { - puts ("nexttoward- failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nexttoward- did not underflow"); - ++result; - } - -#ifndef NO_LONG_DOUBLE - long double li = INFINITY; - long double lm = LDBL_MAX; - feclearexcept (FE_ALL_EXCEPT); - if (nexttowardl (lm, li) != li) - { - puts ("nexttowardl+ failed"); - ++result; - } - if (fetestexcept (FE_OVERFLOW) == 0) - { - puts ("nexttowardl+ did not overflow"); - ++result; - } - feclearexcept (FE_ALL_EXCEPT); - if (nexttowardl (-lm, -li) != -li) - { - puts ("nexttowardl failed"); - ++result; - } - if (fetestexcept (FE_OVERFLOW) == 0) - { - puts ("nexttowardl- did not overflow"); - ++result; - } - - li = 0; - lm = LDBL_MIN; - feclearexcept (FE_ALL_EXCEPT); - li = nexttowardl (lm, li); - if (li < 0 || li >= LDBL_MIN) - { - puts ("nexttowardl+ failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nexttowardl+ did not underflow"); - ++result; - } - li = 0; - feclearexcept (FE_ALL_EXCEPT); - li = nexttowardl (-lm, -li); - if (li > 0 || li <= -LDBL_MIN) - { - puts ("nexttowardl- failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nexttowardl- did not underflow"); - ++result; - } - li = -INFINITY; - feclearexcept (FE_ALL_EXCEPT); - lm = nexttowardl (zero, inf); - if (lm < 0.0 || lm >= LDBL_MIN) - { - puts ("nexttowardl+ failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nexttowardl+ did not underflow"); - ++result; - } - feclearexcept (FE_ALL_EXCEPT); - if (nexttowardl (lm, li) != 0.0) - { - puts ("nexttowardl+ failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nexttowardl+ did not underflow"); - ++result; - } - feclearexcept (FE_ALL_EXCEPT); - lm = nexttowardl (copysign (zero, -1.0), -inf); - if (lm > 0.0 || lm <= -LDBL_MIN) - { - puts ("nexttowardl- failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nexttowardl- did not underflow"); - ++result; - } - feclearexcept (FE_ALL_EXCEPT); - if (nexttowardl (lm, -li) != 0.0) - { - puts ("nexttowardl- failed"); - ++result; - } - if (fetestexcept (FE_UNDERFLOW) == 0) - { - puts ("nexttowardl- did not underflow"); - ++result; - } -#endif - return result; } diff --git a/math/cabsf.c b/math/cabsf.c deleted file mode 100644 index 956db76ba1..0000000000 --- a/math/cabsf.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Return the complex absolute value of float complex value. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - -float -__cabsf (float _Complex z) -{ - return __hypotf (__real__ z, __imag__ z); -} -weak_alias (__cabsf, cabsf) diff --git a/math/cargf.c b/math/cargf.c deleted file mode 100644 index df1f20bc48..0000000000 --- a/math/cargf.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Compute argument of complex float value. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - -float -__cargf (__complex__ float x) -{ - return __atan2f (__imag__ x, __real__ x); -} -weak_alias (__cargf, cargf) diff --git a/math/cimagf.c b/math/cimagf.c deleted file mode 100644 index d4e441e69f..0000000000 --- a/math/cimagf.c +++ /dev/null @@ -1,28 +0,0 @@ -/* Return imaginary part of complex float value. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> - -float -__cimagf (float _Complex z) -{ - return __imag__ z; -} -weak_alias (__cimagf, cimagf) diff --git a/math/complex.h b/math/complex.h index 751aaf763f..f005a93912 100644 --- a/math/complex.h +++ b/math/complex.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1997, 1998, 1999, 2000, 2006 Free Software Foundation, Inc. +/* Copyright (C) 1997, 1998, 1999, 2000 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 @@ -84,14 +84,7 @@ __BEGIN_DECLS /* And the long double versions. It is non-critical to define them here unconditionally since `long double' is required in ISO C99. */ -#if (__STDC__ - 0 || __GNUC__ - 0) \ - && (!defined __NO_LONG_DOUBLE_MATH || defined __LDBL_COMPAT) -# ifdef __LDBL_COMPAT -# undef __MATHDECL_1 -# define __MATHDECL_1(type, function, args) \ - extern type __REDIRECT_NTH(__MATH_PRECNAME(function), args, function) -# endif - +#if __STDC__ - 0 || __GNUC__ - 0 && !defined __NO_LONG_DOUBLE_MATH # ifndef _Mlong_double_ # define _Mlong_double_ long double # endif diff --git a/math/conjf.c b/math/conjf.c deleted file mode 100644 index 7893891933..0000000000 --- a/math/conjf.c +++ /dev/null @@ -1,28 +0,0 @@ -/* Return complex conjugate of complex float value. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> - -float _Complex -__conjf (float _Complex z) -{ - return ~z; -} -weak_alias (__conjf, conjf) diff --git a/math/crealf.c b/math/crealf.c deleted file mode 100644 index e3235a874f..0000000000 --- a/math/crealf.c +++ /dev/null @@ -1,28 +0,0 @@ -/* Return real part of complex float value. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> - -float -__crealf (float _Complex z) -{ - return __real__ z; -} -weak_alias (__crealf, crealf) diff --git a/math/divtc3.c b/math/divtc3.c deleted file mode 100644 index d974ae6454..0000000000 --- a/math/divtc3.c +++ /dev/null @@ -1,75 +0,0 @@ -/* Copyright (C) 2005, 2006 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Richard Henderson <rth@redhat.com>, 2005. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <stdbool.h> -#include <math.h> -#include <complex.h> - -attribute_hidden -long double _Complex -__divtc3 (long double a, long double b, long double c, long double d) -{ - long double denom, ratio, x, y; - - /* ??? We can get better behavior from logarithmic scaling instead of - the division. But that would mean starting to link libgcc against - libm. We could implement something akin to ldexp/frexp as gcc builtins - fairly easily... */ - if (fabsl (c) < fabsl (d)) - { - ratio = c / d; - denom = (c * ratio) + d; - x = ((a * ratio) + b) / denom; - y = ((b * ratio) - a) / denom; - } - else - { - ratio = d / c; - denom = (d * ratio) + c; - x = ((b * ratio) + a) / denom; - y = (b - (a * ratio)) / denom; - } - - /* Recover infinities and zeros that computed as NaN+iNaN; the only cases - are nonzero/zero, infinite/finite, and finite/infinite. */ - if (isnan (x) && isnan (y)) - { - if (denom == 0.0 && (!isnan (a) || !isnan (b))) - { - x = __copysignl (INFINITY, c) * a; - y = __copysignl (INFINITY, c) * b; - } - else if ((isinf (a) || isinf (b)) && isfinite (c) && isfinite (d)) - { - a = __copysignl (isinf (a) ? 1 : 0, a); - b = __copysignl (isinf (b) ? 1 : 0, b); - x = INFINITY * (a * c + b * d); - y = INFINITY * (b * c - a * d); - } - else if ((isinf (c) || isinf (d)) && isfinite (a) && isfinite (b)) - { - c = __copysignl (isinf (c) ? 1 : 0, c); - d = __copysignl (isinf (d) ? 1 : 0, d); - x = 0.0 * (a * c + b * d); - y = 0.0 * (b * c - a * d); - } - } - - return x + I * y; -} diff --git a/math/e_acoshl.c b/math/e_acoshl.c deleted file mode 100644 index 2c2fbe8eb4..0000000000 --- a/math/e_acoshl.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> - -long double -__ieee754_acoshl (long double x) -{ - fputs ("__ieee754_acoshl not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -stub_warning (acoshl) -#include <stub-tag.h> diff --git a/math/e_acosl.c b/math/e_acosl.c deleted file mode 100644 index d844d885b8..0000000000 --- a/math/e_acosl.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> - -long double -__ieee754_acosl (long double x) -{ - fputs ("__ieee754_acosl not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -stub_warning (acosl) -#include <stub-tag.h> diff --git a/math/e_asinl.c b/math/e_asinl.c deleted file mode 100644 index 3b26f030ef..0000000000 --- a/math/e_asinl.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> - -long double -__ieee754_asinl (long double x) -{ - fputs ("__ieee754_asinl not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -stub_warning (asinl) -#include <stub-tag.h> diff --git a/math/e_atan2l.c b/math/e_atan2l.c deleted file mode 100644 index 0caed8a32f..0000000000 --- a/math/e_atan2l.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> - -long double -__ieee754_atan2l (long double x, long double y) -{ - fputs ("__ieee754_atan2l not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -stub_warning (atan2l) -#include <stub-tag.h> diff --git a/math/e_atanhl.c b/math/e_atanhl.c deleted file mode 100644 index 625d42db31..0000000000 --- a/math/e_atanhl.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> - -long double -__ieee754_atanhl (long double x) -{ - fputs ("__ieee754_atanhl not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -stub_warning (__ieee754_atanhl) -#include <stub-tag.h> diff --git a/math/e_coshl.c b/math/e_coshl.c deleted file mode 100644 index 0da319b785..0000000000 --- a/math/e_coshl.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> - -long double -__ieee754_coshl (long double x) -{ - fputs ("__ieee754_coshl not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -stub_warning (__ieee754_coshl) -#include <stub-tag.h> diff --git a/math/e_exp10.c b/math/e_exp10.c deleted file mode 100644 index a3eccbb9e6..0000000000 --- a/math/e_exp10.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright (C) 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <math.h> -#include "math_private.h" - - -double -__ieee754_exp10 (double arg) -{ - /* This is a very stupid and inprecise implementation. It'll get - replaced sometime (soon?). */ - return __ieee754_exp (M_LN10 * arg); -} diff --git a/math/e_exp10f.c b/math/e_exp10f.c deleted file mode 100644 index 7d06d074b8..0000000000 --- a/math/e_exp10f.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright (C) 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <math.h> -#include "math_private.h" - - -float -__ieee754_exp10f (float arg) -{ - /* This is a very stupid and inprecise implementation. It'll get - replaced sometime (soon?). */ - return __ieee754_expf (M_LN10 * arg); -} diff --git a/math/e_exp10l.c b/math/e_exp10l.c deleted file mode 100644 index 56f0cfec2f..0000000000 --- a/math/e_exp10l.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright (C) 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <math.h> -#include "math_private.h" - - -long double -__ieee754_exp10l (long double arg) -{ - /* This is a very stupid and inprecise implementation. It'll get - replaced sometime (soon?). */ - return __ieee754_expl (M_LN10l * arg); -} diff --git a/math/e_exp2l.c b/math/e_exp2l.c deleted file mode 100644 index 7e598d8d2d..0000000000 --- a/math/e_exp2l.c +++ /dev/null @@ -1,10 +0,0 @@ -#include <math.h> -#include "math_private.h" - -long double -__ieee754_exp2l (long double x) -{ - /* This is a very stupid and inprecise implementation. It'll get - replaced sometime (soon?). */ - return __ieee754_expl (M_LN2l * x); -} diff --git a/math/e_expl.c b/math/e_expl.c deleted file mode 100644 index f9467c38ab..0000000000 --- a/math/e_expl.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> - -long double -__ieee754_expl (long double x) -{ - fputs ("__ieee754_expl not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -stub_warning (expl) -#include <stub-tag.h> diff --git a/math/e_fmodl.c b/math/e_fmodl.c deleted file mode 100644 index 380da24e41..0000000000 --- a/math/e_fmodl.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> - -long double -__ieee754_fmodl (long double x, long double y) -{ - fputs ("__ieee754_fmodl not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -stub_warning (fmodl) -#include <stub-tag.h> diff --git a/math/e_gammal_r.c b/math/e_gammal_r.c deleted file mode 100644 index 1c45c8421b..0000000000 --- a/math/e_gammal_r.c +++ /dev/null @@ -1,15 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> - -long double -__ieee754_gammal_r (long double x, int *signgamp) -{ - *signgamp = 0; - fputs ("__ieee754_gammal_r not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -stub_warning (__ieee754_gammal_r) -#include <stub-tag.h> diff --git a/math/e_hypotl.c b/math/e_hypotl.c deleted file mode 100644 index 07df22eb36..0000000000 --- a/math/e_hypotl.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> - -long double -__ieee754_hypotl (long double x, long double y) -{ - fputs ("__ieee754_hypotl not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -stub_warning (__ieee754_hypotl) -#include <stub-tag.h> diff --git a/math/e_j0l.c b/math/e_j0l.c deleted file mode 100644 index 1bf0a1de73..0000000000 --- a/math/e_j0l.c +++ /dev/null @@ -1,25 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> -#include "math_private.h" - -long double -__ieee754_j0l (long double x) -{ - fputs ("__ieee754_j0l not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -stub_warning (j0l) - -long double -__ieee754_y0l (long double x) -{ - fputs ("__ieee754_y0l not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -stub_warning (y0l) -#include <stub-tag.h> diff --git a/math/e_j1l.c b/math/e_j1l.c deleted file mode 100644 index 656abeba57..0000000000 --- a/math/e_j1l.c +++ /dev/null @@ -1,25 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> -#include "math_private.h" - -long double -__ieee754_j1l (long double x) -{ - fputs ("__ieee754_j1l not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -stub_warning (j1l) - -long double -__ieee754_y1l (long double x) -{ - fputs ("__ieee754_y1l not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -stub_warning (y1l) -#include <stub-tag.h> diff --git a/math/e_jnl.c b/math/e_jnl.c deleted file mode 100644 index 1bfc0695a5..0000000000 --- a/math/e_jnl.c +++ /dev/null @@ -1,25 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> -#include "math_private.h" - -long double -__ieee754_jnl (int n, long double x) -{ - fputs ("__ieee754_jnl not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -stub_warning (jnl) - -long double -__ieee754_ynl (int n, long double x) -{ - fputs ("__ieee754_ynl not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -stub_warning (ynl) -#include <stub-tag.h> diff --git a/math/e_lgammal_r.c b/math/e_lgammal_r.c deleted file mode 100644 index 1784b2663f..0000000000 --- a/math/e_lgammal_r.c +++ /dev/null @@ -1,17 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> -#include "math_private.h" - -long double -__ieee754_lgammal_r (long double x, int *signgamp) -{ - *signgamp = 0; - fputs ("__ieee754_lgammal_r not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -stub_warning (lgammal) -stub_warning (lgammal_r) -#include <stub-tag.h> diff --git a/math/e_log10l.c b/math/e_log10l.c deleted file mode 100644 index 5bc264b32c..0000000000 --- a/math/e_log10l.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> - -long double -__ieee754_log10l (long double x) -{ - fputs ("__ieee754_log10l not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -stub_warning (log10l) -#include <stub-tag.h> diff --git a/math/e_log2l.c b/math/e_log2l.c deleted file mode 100644 index 681904bfbb..0000000000 --- a/math/e_log2l.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> - -long double -__ieee754_log2l (long double x) -{ - fputs ("__ieee754_log2l not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -stub_warning (log2l) -#include <stub-tag.h> diff --git a/math/e_logl.c b/math/e_logl.c deleted file mode 100644 index 9ba9cfc799..0000000000 --- a/math/e_logl.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> - -long double -__ieee754_logl (long double x) -{ - fputs ("__ieee754_logl not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -stub_warning (logl) -#include <stub-tag.h> diff --git a/math/e_powl.c b/math/e_powl.c deleted file mode 100644 index afc2248b6b..0000000000 --- a/math/e_powl.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> - -long double -__ieee754_powl (long double x, long double y) -{ - fputs ("__ieee754_powl not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -stub_warning (powl) -#include <stub-tag.h> diff --git a/math/e_rem_pio2l.c b/math/e_rem_pio2l.c deleted file mode 100644 index 617215516b..0000000000 --- a/math/e_rem_pio2l.c +++ /dev/null @@ -1,15 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> -#include "math_private.h" - -int -__ieee754_rem_pio2l (long double x, long double *y) -{ - fputs ("__ieee754_rem_pio2l not implemented\n", stderr); - __set_errno (ENOSYS); - return 0; -} - -stub_warning (__ieee754_rem_pio2l) -#include <stub-tag.h> diff --git a/math/e_scalb.c b/math/e_scalb.c deleted file mode 100644 index 606af53724..0000000000 --- a/math/e_scalb.c +++ /dev/null @@ -1,71 +0,0 @@ -/* @(#)e_scalb.c 5.1 93/09/24 */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: e_scalb.c,v 1.6 1995/05/10 20:46:09 jtc Exp $"; -#endif - -/* - * __ieee754_scalb(x, fn) is provide for - * passing various standard test suite. One - * should use scalbn() instead. - */ - -#include <fenv.h> -#include <math.h> -#include "math_private.h" - -#ifdef _SCALB_INT -#ifdef __STDC__ - double __ieee754_scalb(double x, int fn) -#else - double __ieee754_scalb(x,fn) - double x; int fn; -#endif -#else -#ifdef __STDC__ - double __ieee754_scalb(double x, double fn) -#else - double __ieee754_scalb(x,fn) - double x, fn; -#endif -#endif -{ -#ifdef _SCALB_INT - return __scalbn(x,fn); -#else - if (__isnan(x)||__isnan(fn)) return x*fn; - if (!__finite(fn)) { - if(fn>0.0) return x*fn; - else if (x == 0) - return x; - else if (!__finite (x)) - { -# ifdef FE_INVALID - feraiseexcept (FE_INVALID); -# endif - return __nan (""); - } - else return x/(-fn); - } - if (__rint(fn)!=fn) - { -# ifdef FE_INVALID - feraiseexcept (FE_INVALID); -# endif - return __nan (""); - } - if ( fn > 65000.0) return __scalbn(x, 65000); - if (-fn > 65000.0) return __scalbn(x,-65000); - return __scalbn(x,(int)fn); -#endif -} diff --git a/math/e_scalbf.c b/math/e_scalbf.c deleted file mode 100644 index 95a72eb56d..0000000000 --- a/math/e_scalbf.c +++ /dev/null @@ -1,68 +0,0 @@ -/* e_scalbf.c -- float version of e_scalb.c. - * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: e_scalbf.c,v 1.3 1995/05/10 20:46:12 jtc Exp $"; -#endif - -#include <fenv.h> -#include <math.h> -#include "math_private.h" - -#ifdef _SCALB_INT -#ifdef __STDC__ - float __ieee754_scalbf(float x, int fn) -#else - float __ieee754_scalbf(x,fn) - float x; int fn; -#endif -#else -#ifdef __STDC__ - float __ieee754_scalbf(float x, float fn) -#else - float __ieee754_scalbf(x,fn) - float x, fn; -#endif -#endif -{ -#ifdef _SCALB_INT - return __scalbnf(x,fn); -#else - if (__isnanf(x)||__isnanf(fn)) return x*fn; - if (!__finitef(fn)) { - if(fn>(float)0.0) return x*fn; - else if (x == 0) - return x; - else if (!__finitef (x)) - { -# ifdef FE_INVALID - feraiseexcept (FE_INVALID); -# endif - return __nanf (""); - } - else return x/(-fn); - } - if (__rintf(fn)!=fn) - { -# ifdef FE_INVALID - feraiseexcept (FE_INVALID); -# endif - return __nanf (""); - } - if ( fn > (float)65000.0) return __scalbnf(x, 65000); - if (-fn > (float)65000.0) return __scalbnf(x,-65000); - return __scalbnf(x,(int)fn); -#endif -} diff --git a/math/e_scalbl.c b/math/e_scalbl.c deleted file mode 100644 index 1f5677d9f4..0000000000 --- a/math/e_scalbl.c +++ /dev/null @@ -1,75 +0,0 @@ -/* e_scalbl.c -- long double version of s_scalb.c. - * Conversion to long double by Ulrich Drepper, - * Cygnus Support, drepper@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: $"; -#endif - -/* - * __ieee754_scalbl(x, fn) is provide for - * passing various standard test suite. One - * should use scalbnl() instead. - */ - -#include <fenv.h> -#include <math.h> -#include "math_private.h" - -#ifdef _SCALB_INT -#ifdef __STDC__ - long double __ieee754_scalbl(long double x, int fn) -#else - long double __ieee754_scalbl(x,fn) - long double x; int fn; -#endif -#else -#ifdef __STDC__ - long double __ieee754_scalbl(long double x, long double fn) -#else - long double __ieee754_scalbl(x,fn) - long double x, fn; -#endif -#endif -{ -#ifdef _SCALB_INT - return __scalbnl(x,fn); -#else - if (__isnanl(x)||__isnanl(fn)) return x*fn; - if (!__finitel(fn)) { - if(fn>0.0) return x*fn; - else if (x == 0) - return x; - else if (!__finitel (x)) - { -# ifdef FE_INVALID - feraiseexcept (FE_INVALID); -# endif - return __nanl (""); - } - else return x/(-fn); - } - if (__rintl(fn)!=fn) - { -# ifdef FE_INVALID - feraiseexcept (FE_INVALID); -# endif - return __nanl (""); - } - if ( fn > 65000.0) return __scalbnl(x, 65000); - if (-fn > 65000.0) return __scalbnl(x,-65000); - return __scalbnl(x,(int)fn); -#endif -} diff --git a/math/e_sinhl.c b/math/e_sinhl.c deleted file mode 100644 index 4cec79cb2d..0000000000 --- a/math/e_sinhl.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> - -long double -__ieee754_sinhl (long double x) -{ - fputs ("__ieee754_sinhl not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -stub_warning (__ieee754_sinhl) -#include <stub-tag.h> diff --git a/math/e_sqrtl.c b/math/e_sqrtl.c deleted file mode 100644 index 7680bdb145..0000000000 --- a/math/e_sqrtl.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> - -long double -__ieee754_sqrtl (long double x) -{ - fputs ("__ieee754_sqrtl not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -stub_warning (sqrtl) -#include <stub-tag.h> diff --git a/math/fclrexcpt.c b/math/fclrexcpt.c deleted file mode 100644 index 560e326ee3..0000000000 --- a/math/fclrexcpt.c +++ /dev/null @@ -1,37 +0,0 @@ -/* Clear given exceptions in current floating-point environment. - Copyright (C) 1997, 1999, 2000 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <fenv.h> -#include <shlib-compat.h> - -int -__feclearexcept (int excepts) -{ - /* This always fails. */ - return 1; -} -#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2) -strong_alias (__feclearexcept, __old_feclearexcept) -compat_symbol (libm, __old_feclearexcept, feclearexcept, GLIBC_2_1); -#endif -versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2); - -stub_warning (feclearexcept) -#include <stub-tag.h> diff --git a/math/fedisblxcpt.c b/math/fedisblxcpt.c deleted file mode 100644 index e1e9065aac..0000000000 --- a/math/fedisblxcpt.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Disable floating-point exceptions. - Copyright (C) 1999 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Andreas Jaeger <aj@suse.de>, 1999. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <fenv.h> - -int -fedisableexcept (int excepts) -{ - /* Signal failure. */ - return -1; -} -stub_warning (fedisableexcept) -#include <stub-tag.h> diff --git a/math/feenablxcpt.c b/math/feenablxcpt.c deleted file mode 100644 index 678271f360..0000000000 --- a/math/feenablxcpt.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Enable floating-point exceptions. - Copyright (C) 1999 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Andreas Jaeger <aj@suse.de>, 1999. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <fenv.h> - -int -feenableexcept (int excepts) -{ - /* Signal failure. */ - return -1; -} -stub_warning (feenableexcept) -#include <stub-tag.h> diff --git a/math/fegetenv.c b/math/fegetenv.c deleted file mode 100644 index 4a878cc41b..0000000000 --- a/math/fegetenv.c +++ /dev/null @@ -1,38 +0,0 @@ -/* Store current floating-point environment. - Copyright (C) 1997, 1999, 2000 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <fenv.h> -#include <shlib-compat.h> -#include <bp-sym.h> - -int -__fegetenv (fenv_t *envp) -{ - /* This always fails. */ - return 1; -} -#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2) -strong_alias (__fegetenv, __old_fegetenv) -compat_symbol (libm, BP_SYM (__old_fegetenv), BP_SYM (fegetenv), GLIBC_2_1); -#endif -versioned_symbol (libm, BP_SYM (__fegetenv), BP_SYM (fegetenv), GLIBC_2_2); - -stub_warning (fegetenv) -#include <stub-tag.h> diff --git a/math/fegetexcept.c b/math/fegetexcept.c deleted file mode 100644 index 1870689e8d..0000000000 --- a/math/fegetexcept.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Get floating-point exceptions. - Copyright (C) 1999 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Andreas Jaeger <aj@suse.de>, 1999. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <fenv.h> - -int -fegetexcept (void) -{ - /* Signal failure. */ - return -1; -} -stub_warning (fegetexcept) -#include <stub-tag.h> diff --git a/math/fegetround.c b/math/fegetround.c deleted file mode 100644 index cf7a774929..0000000000 --- a/math/fegetround.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Return current rounding direction. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <fenv.h> - -int -fegetround (void) -{ - return 0; -} -stub_warning (fegetround) -#include <stub-tag.h> diff --git a/math/feholdexcpt.c b/math/feholdexcpt.c deleted file mode 100644 index 8680d1e492..0000000000 --- a/math/feholdexcpt.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Store current floating-point environment and clear exceptions. - Copyright (C) 1997, 2005 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <fenv.h> - -int -feholdexcept (fenv_t *envp) -{ - return 1; /* Signal failure. */ -} -libm_hidden_def (feholdexcept) -stub_warning (feholdexcept) -#include <stub-tag.h> diff --git a/math/fesetenv.c b/math/fesetenv.c deleted file mode 100644 index 936d6c121b..0000000000 --- a/math/fesetenv.c +++ /dev/null @@ -1,38 +0,0 @@ -/* Install given floating-point environment. - Copyright (C) 1997, 1999, 2000, 2002 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <fenv.h> -#include <shlib-compat.h> - -int -__fesetenv (const fenv_t *envp) -{ - /* This always fails. */ - return 1; -} -#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2) -strong_alias (__fesetenv, __old_fesetenv) -compat_symbol (libm, __old_fesetenv, fesetenv, GLIBC_2_1); -#endif -libm_hidden_ver (__fesetenv, fesetenv) -versioned_symbol (libm, __fesetenv, fesetenv, GLIBC_2_2); - -stub_warning (fesetenv) -#include <stub-tag.h> diff --git a/math/fesetround.c b/math/fesetround.c deleted file mode 100644 index 5b14826390..0000000000 --- a/math/fesetround.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Set current rounding direction. - Copyright (C) 1997, 2005 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <fenv.h> - -int -fesetround (int round) -{ - return 1; /* Signal we are unable to set the direction. */ -} -libm_hidden_def (fesetround) -stub_warning (fesetround) -#include <stub-tag.h> diff --git a/math/feupdateenv.c b/math/feupdateenv.c deleted file mode 100644 index 3e6aed4fdf..0000000000 --- a/math/feupdateenv.c +++ /dev/null @@ -1,37 +0,0 @@ -/* Install given floating-point environment and raise exceptions. - Copyright (C) 1997, 1999, 2000 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <fenv.h> -#include <shlib-compat.h> - -int -__feupdateenv (const fenv_t *envp) -{ - /* This always fails. */ - return 1; -} -#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2) -strong_alias (__feupdateenv, __old_feupdateenv) -compat_symbol (libm, __old_feupdateenv, feupdateenv, GLIBC_2_1); -#endif -versioned_symbol (libm, __feupdateenv, feupdateenv, GLIBC_2_2); - -stub_warning (feupdateenv) -#include <stub-tag.h> diff --git a/math/fgetexcptflg.c b/math/fgetexcptflg.c deleted file mode 100644 index aea2e0ffaf..0000000000 --- a/math/fgetexcptflg.c +++ /dev/null @@ -1,37 +0,0 @@ -/* Store current representation for exceptions. - Copyright (C) 1997, 1999, 2000 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <fenv.h> -#include <shlib-compat.h> - -int -__fegetexceptflag (fexcept_t *flagp, int excepts) -{ - /* This always fails. */ - return 1; -} -#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2) -strong_alias (__fegetexceptflag, __old_fegetexceptflag) -compat_symbol (libm, __old_fegetexceptflag, fegetexceptflag, GLIBC_2_1); -#endif -versioned_symbol (libm, __fegetexceptflag, fegetexceptflag, GLIBC_2_2); - -stub_warning (fegetexceptflag) -#include <stub-tag.h> diff --git a/math/fpu_control.c b/math/fpu_control.c deleted file mode 100644 index cd8eeff99d..0000000000 --- a/math/fpu_control.c +++ /dev/null @@ -1,25 +0,0 @@ -/* Default FPU control word initialization. - Copyright (C) 1996, 1997, 1999 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <math.h> -#include <fpu_control.h> - -/* This module defines `__fpu_control' with the default value. */ - -fpu_control_t __fpu_control = _FPU_DEFAULT; diff --git a/math/fraiseexcpt.c b/math/fraiseexcpt.c deleted file mode 100644 index 764634a3b1..0000000000 --- a/math/fraiseexcpt.c +++ /dev/null @@ -1,38 +0,0 @@ -/* Raise given exceptions. - Copyright (C) 1997, 1999, 2000, 2002 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <fenv.h> -#include <shlib-compat.h> - -int -__feraiseexcept (int excepts) -{ - /* This always fails. */ - return 1; -} -#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2) -strong_alias (__feraiseexcept, __old_feraiseexcept) -compat_symbol (libm, __old_feraiseexcept, feraiseexcept, GLIBC_2_1); -#endif -libm_hidden_ver (__feraiseexcept, feraiseexcept) -versioned_symbol (libm, __feraiseexcept, feraiseexcept, GLIBC_2_2); - -stub_warning (feraiseexcept) -#include <stub-tag.h> diff --git a/math/fsetexcptflg.c b/math/fsetexcptflg.c deleted file mode 100644 index 8d0f0ff64b..0000000000 --- a/math/fsetexcptflg.c +++ /dev/null @@ -1,37 +0,0 @@ -/* Set floating-point environment exception handling. - Copyright (C) 1997, 1999, 2000 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <fenv.h> -#include <shlib-compat.h> - -int -__fesetexceptflag (const fexcept_t *flagp, int excepts) -{ - /* This always fails. */ - return 1; -} -#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2) -strong_alias (__fesetexceptflag, __old_fesetexceptflag) -compat_symbol (libm, __old_fesetexceptflag, fesetexceptflag, GLIBC_2_1); -#endif -versioned_symbol (libm, __fesetexceptflag, fesetexceptflag, GLIBC_2_2); - -stub_warning (fesetexceptflag) -#include <stub-tag.h> diff --git a/math/ftestexcept.c b/math/ftestexcept.c deleted file mode 100644 index 4be3fb770f..0000000000 --- a/math/ftestexcept.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Test exception in current environment. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <fenv.h> - -int -fetestexcept (int excepts) -{ - return 0; -} -stub_warning (fetestexcept) -#include <stub-tag.h> diff --git a/math/gen-libm-test.pl b/math/gen-libm-test.pl index 0b0b8ca19f..26f819a884 100755 --- a/math/gen-libm-test.pl +++ b/math/gen-libm-test.pl @@ -1,5 +1,5 @@ #!/usr/bin/perl -w -# Copyright (C) 1999, 2006 Free Software Foundation, Inc. +# Copyright (C) 1999 Free Software Foundation, Inc. # This file is part of the GNU C Library. # Contributed by Andreas Jaeger <aj@suse.de>, 1999. @@ -234,7 +234,7 @@ sub special_functions { # Parse the arguments to TEST_x_y sub parse_args { - my ($file, $descr, $fct, $args) = @_; + my ($file, $descr, $args) = @_; my (@args, $str, $descr_args, $descr_res, @descr); my ($current_arg, $cline, $i); my ($pre, $post, @special); @@ -248,7 +248,7 @@ sub parse_args { @args = split /,\s*/, $args; - $call = "$fct ("; + $call = "$args[0] ("; # Generate first the string that's shown to the user $current_arg = 1; @@ -423,7 +423,7 @@ sub parse_args { sub generate_testfile { my ($input, $output) = @_; my ($lasttext); - my (@args, $i, $str, $thisfct); + my (@args, $i, $str); open INPUT, $input or die ("Can't open $input: $!"); open OUTPUT, ">$output" or die ("Can't open $output: $!"); @@ -436,12 +436,11 @@ sub generate_testfile { my ($descr, $args); chop; ($descr, $args) = ($_ =~ /TEST_(\w+)\s*\((.*)\)/); - &parse_args (\*OUTPUT, $descr, $thisfct, $args); + &parse_args (\*OUTPUT, $descr, $args); next; } # START (function) if (/START/) { - ($thisfct) = ($_ =~ /START\s*\((.*)\)/); print OUTPUT " init_max_error ();\n"; next; } @@ -558,11 +557,9 @@ sub parse_ulps { sub clean_up_number { my ($number) = @_; - # Remove trailing zeros after the decimal point - if ($number =~ /\./) { - $number =~ s/0+$//; - $number =~ s/\.$//; - } + # Remove trailing zeros + $number =~ s/0+$//; + $number =~ s/\.$//; return $number; } diff --git a/math/k_cosl.c b/math/k_cosl.c deleted file mode 100644 index 29b83d6273..0000000000 --- a/math/k_cosl.c +++ /dev/null @@ -1,15 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> -#include "math_private.h" - -long double -__kernel_cosl (long double x, long double y) -{ - fputs ("__kernel_cosl not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -stub_warning (__kernel_cosl) -#include <stub-tag.h> diff --git a/math/k_rem_pio2l.c b/math/k_rem_pio2l.c deleted file mode 100644 index 236eb30dd9..0000000000 --- a/math/k_rem_pio2l.c +++ /dev/null @@ -1,16 +0,0 @@ -#include <math.h> -#include <math_private.h> -#include <stdio.h> -#include <errno.h> - -int -__kernel_rem_pio2l (long double *x, long double *y, int e0, int nx, int prec, - const int *ipio2) -{ - fputs ("__kernel_rem_pio2l not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -stub_warning (__kernel_rem_pio2l) -#include <stub-tag.h> diff --git a/math/k_sincosl.c b/math/k_sincosl.c deleted file mode 100644 index aa038c26c4..0000000000 --- a/math/k_sincosl.c +++ /dev/null @@ -1 +0,0 @@ -/* Empty. Not needed. */ diff --git a/math/k_sinl.c b/math/k_sinl.c deleted file mode 100644 index ea1d71f61b..0000000000 --- a/math/k_sinl.c +++ /dev/null @@ -1,15 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> -#include "math_private.h" - -long double -__kernel_sinl (long double x, long double y, int iy) -{ - fputs ("__kernel_sinl not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -stub_warning (__kernel_sinl) -#include <stub-tag.h> diff --git a/math/k_tanl.c b/math/k_tanl.c deleted file mode 100644 index 9993c6b998..0000000000 --- a/math/k_tanl.c +++ /dev/null @@ -1,15 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> -#include "math_private.h" - -long double -__kernel_tanl (long double x, long double y, int iy) -{ - fputs ("__kernel_tanl not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -stub_warning (__kernel_tanl) -#include <stub-tag.h> diff --git a/math/libm-test.inc b/math/libm-test.inc index 81dd364f77..60711fabdc 100644 --- a/math/libm-test.inc +++ b/math/libm-test.inc @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +/* Copyright (C) 1997-2002, 2003, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Andreas Jaeger <aj@suse.de>, 1997. @@ -22,7 +22,7 @@ This file is processed by a perl script. The resulting file has to be included by a master file that defines: - Macros: + Makros: FUNC(function): converts general function name (like cos) to name with correct suffix (e.g. cosl or cosf) MATHCONST(x): like FUNC but for constants (e.g convert 0.0 to 0.0L) @@ -153,7 +153,6 @@ #define M_PI2_LOG10El M_PI_2l * M_LOG10El #define M_PI4_LOG10El M_PI_4l * M_LOG10El #define M_PI_LOG10El M_PIl * M_LOG10El -#define M_SQRT_2_2 0.70710678118654752440084436210484903L /* sqrt (2) / 2 */ static FILE *ulps_file; /* File to document difference. */ static int output_ulps; /* Should ulps printed? */ @@ -498,7 +497,7 @@ check_float_internal (const char *test_name, FLOAT computed, FLOAT expected, && computed == 0.0 && expected == 0.0 && signbit(computed) != signbit (expected)) ok = 0; - else if (ulp <= 0.5 || (ulp <= max_ulp && !ignore_max_ulp)) + else if (ulp == 0.0 || (ulp <= max_ulp && !ignore_max_ulp)) ok = 1; else { @@ -1116,7 +1115,7 @@ cacosh_test (void) TEST_c_c (cacosh, nan_value, nan_value, nan_value, nan_value); TEST_c_c (cacosh, 0.75L, 1.25L, 1.13239363160530819522266333696834467L, 1.11752014915610270578240049553777969L); - TEST_c_c (cacosh, -2, -3, 1.9833870299165354323470769028940395L, -2.1414491111159960199416055713254211L); + TEST_c_c (cacosh, -2, -3, -1.9833870299165354323470769028940395L, 2.1414491111159960199416055713254211L); END (cacosh, complex); } @@ -1628,82 +1627,8 @@ ceil_test (void) TEST_f_f (ceil, M_PIl, 4.0); TEST_f_f (ceil, -M_PIl, -3.0); - TEST_f_f (ceil, 0.1, 1.0); TEST_f_f (ceil, 0.25, 1.0); - TEST_f_f (ceil, 0.625, 1.0); - TEST_f_f (ceil, -0.1, minus_zero); TEST_f_f (ceil, -0.25, minus_zero); - TEST_f_f (ceil, -0.625, minus_zero); - -#ifdef TEST_LDOUBLE - /* The result can only be represented in long double. */ - TEST_f_f (ceil, 4503599627370495.5L, 4503599627370496.0L); - TEST_f_f (ceil, 4503599627370496.25L, 4503599627370497.0L); - TEST_f_f (ceil, 4503599627370496.5L, 4503599627370497.0L); - TEST_f_f (ceil, 4503599627370496.75L, 4503599627370497.0L); - TEST_f_f (ceil, 4503599627370497.5L, 4503599627370498.0L); - - TEST_f_f (ceil, -4503599627370495.5L, -4503599627370495.0L); - TEST_f_f (ceil, -4503599627370496.25L, -4503599627370496.0L); - TEST_f_f (ceil, -4503599627370496.5L, -4503599627370496.0L); - TEST_f_f (ceil, -4503599627370496.75L, -4503599627370496.0L); - TEST_f_f (ceil, -4503599627370497.5L, -4503599627370497.0L); - -# if LDBL_MANT_DIG > 100 - TEST_f_f (ceil, 4503599627370494.5000000000001L, 4503599627370495.0L); - TEST_f_f (ceil, 4503599627370495.5000000000001L, 4503599627370496.0L); - TEST_f_f (ceil, 4503599627370496.5000000000001L, 4503599627370497.0L); - TEST_f_f (ceil, -4503599627370494.5000000000001L, -4503599627370494.0L); - TEST_f_f (ceil, -4503599627370495.5000000000001L, -4503599627370495.0L); - TEST_f_f (ceil, -4503599627370496.5000000000001L, -4503599627370496.0L); -# endif - - TEST_f_f (ceil, 9007199254740991.5L, 9007199254740992.0L); - TEST_f_f (ceil, 9007199254740992.25L, 9007199254740993.0L); - TEST_f_f (ceil, 9007199254740992.5L, 9007199254740993.0L); - TEST_f_f (ceil, 9007199254740992.75L, 9007199254740993.0L); - TEST_f_f (ceil, 9007199254740993.5L, 9007199254740994.0L); - - TEST_f_f (ceil, -9007199254740991.5L, -9007199254740991.0L); - TEST_f_f (ceil, -9007199254740992.25L, -9007199254740992.0L); - TEST_f_f (ceil, -9007199254740992.5L, -9007199254740992.0L); - TEST_f_f (ceil, -9007199254740992.75L, -9007199254740992.0L); - TEST_f_f (ceil, -9007199254740993.5L, -9007199254740993.0L); - -# if LDBL_MANT_DIG > 100 - TEST_f_f (ceil, 9007199254740991.0000000000001L, 9007199254740992.0L); - TEST_f_f (ceil, 9007199254740992.0000000000001L, 9007199254740993.0L); - TEST_f_f (ceil, 9007199254740993.0000000000001L, 9007199254740994.0L); - TEST_f_f (ceil, 9007199254740991.5000000000001L, 9007199254740992.0L); - TEST_f_f (ceil, 9007199254740992.5000000000001L, 9007199254740993.0L); - TEST_f_f (ceil, 9007199254740993.5000000000001L, 9007199254740994.0L); - - TEST_f_f (ceil, -9007199254740991.0000000000001L, -9007199254740991.0L); - TEST_f_f (ceil, -9007199254740992.0000000000001L, -9007199254740992.0L); - TEST_f_f (ceil, -9007199254740993.0000000000001L, -9007199254740993.0L); - TEST_f_f (ceil, -9007199254740991.5000000000001L, -9007199254740991.0L); - TEST_f_f (ceil, -9007199254740992.5000000000001L, -9007199254740992.0L); - TEST_f_f (ceil, -9007199254740993.5000000000001L, -9007199254740993.0L); -# endif - - TEST_f_f (ceil, 72057594037927935.5L, 72057594037927936.0L); - TEST_f_f (ceil, 72057594037927936.25L, 72057594037927937.0L); - TEST_f_f (ceil, 72057594037927936.5L, 72057594037927937.0L); - TEST_f_f (ceil, 72057594037927936.75L, 72057594037927937.0L); - TEST_f_f (ceil, 72057594037927937.5L, 72057594037927938.0L); - - TEST_f_f (ceil, -72057594037927935.5L, -72057594037927935.0L); - TEST_f_f (ceil, -72057594037927936.25L, -72057594037927936.0L); - TEST_f_f (ceil, -72057594037927936.5L, -72057594037927936.0L); - TEST_f_f (ceil, -72057594037927936.75L, -72057594037927936.0L); - TEST_f_f (ceil, -72057594037927937.5L, -72057594037927937.0L); - - TEST_f_f (ceil, 10141204801825835211973625643007.5L, 10141204801825835211973625643008.0L); - TEST_f_f (ceil, 10141204801825835211973625643008.25L, 10141204801825835211973625643009.0L); - TEST_f_f (ceil, 10141204801825835211973625643008.5L, 10141204801825835211973625643009.0L); - TEST_f_f (ceil, 10141204801825835211973625643008.75L, 10141204801825835211973625643009.0L); - TEST_f_f (ceil, 10141204801825835211973625643009.5L, 10141204801825835211973625643010.0L); -#endif END (ceil); } @@ -2287,9 +2212,6 @@ csqrt_test (void) TEST_c_c (csqrt, 0.75L, 1.25L, 1.05065169626078392338656675760808326L, 0.594868882070379067881984030639932657L); TEST_c_c (csqrt, -2, -3, 0.89597747612983812471573375529004348L, -1.6741492280355400404480393008490519L); TEST_c_c (csqrt, -2, 3, 0.89597747612983812471573375529004348L, 1.6741492280355400404480393008490519L); - /* Principal square root should be returned (i.e., non-negative real - part). */ - TEST_c_c (csqrt, 0, -1, M_SQRT_2_2, -M_SQRT_2_2); END (csqrt, complex); } @@ -2463,9 +2385,7 @@ erfc_test (void) TEST_f_f (erfc, 4.125L, 0.542340079956506600531223408575531062e-8L); #ifdef TEST_LDOUBLE /* The result can only be represented in long double. */ -# if LDBL_MIN_10_EXP < -319 TEST_f_f (erfc, 27.0L, 0.523704892378925568501606768284954709e-318L); -# endif #endif END (erfc); @@ -2657,85 +2577,8 @@ floor_test (void) TEST_f_f (floor, M_PIl, 3.0); TEST_f_f (floor, -M_PIl, -4.0); - TEST_f_f (floor, 0.1, 0.0); TEST_f_f (floor, 0.25, 0.0); - TEST_f_f (floor, 0.625, 0.0); - TEST_f_f (floor, -0.1, -1.0); TEST_f_f (floor, -0.25, -1.0); - TEST_f_f (floor, -0.625, -1.0); - -#ifdef TEST_LDOUBLE - /* The result can only be represented in long double. */ - TEST_f_f (floor, 4503599627370495.5L, 4503599627370495.0L); - TEST_f_f (floor, 4503599627370496.25L, 4503599627370496.0L); - TEST_f_f (floor, 4503599627370496.5L, 4503599627370496.0L); - TEST_f_f (floor, 4503599627370496.75L, 4503599627370496.0L); - TEST_f_f (floor, 4503599627370497.5L, 4503599627370497.0L); -# if LDBL_MANT_DIG > 100 - TEST_f_f (floor, 4503599627370494.5000000000001L, 4503599627370494.0L); - TEST_f_f (floor, 4503599627370495.5000000000001L, 4503599627370495.0L); - TEST_f_f (floor, 4503599627370496.5000000000001L, 4503599627370496.0L); -# endif - - TEST_f_f (floor, -4503599627370495.5L, -4503599627370496.0L); - TEST_f_f (floor, -4503599627370496.25L, -4503599627370497.0L); - TEST_f_f (floor, -4503599627370496.5L, -4503599627370497.0L); - TEST_f_f (floor, -4503599627370496.75L, -4503599627370497.0L); - TEST_f_f (floor, -4503599627370497.5L, -4503599627370498.0L); -# if LDBL_MANT_DIG > 100 - TEST_f_f (floor, -4503599627370494.5000000000001L, -4503599627370495.0L); - TEST_f_f (floor, -4503599627370495.5000000000001L, -4503599627370496.0L); - TEST_f_f (floor, -4503599627370496.5000000000001L, -4503599627370497.0L); -# endif - - TEST_f_f (floor, 9007199254740991.5L, 9007199254740991.0L); - TEST_f_f (floor, 9007199254740992.25L, 9007199254740992.0L); - TEST_f_f (floor, 9007199254740992.5L, 9007199254740992.0L); - TEST_f_f (floor, 9007199254740992.75L, 9007199254740992.0L); - TEST_f_f (floor, 9007199254740993.5L, 9007199254740993.0L); - -# if LDBL_MANT_DIG > 100 - TEST_f_f (floor, 9007199254740991.0000000000001L, 9007199254740991.0L); - TEST_f_f (floor, 9007199254740992.0000000000001L, 9007199254740992.0L); - TEST_f_f (floor, 9007199254740993.0000000000001L, 9007199254740993.0L); - TEST_f_f (floor, 9007199254740991.5000000000001L, 9007199254740991.0L); - TEST_f_f (floor, 9007199254740992.5000000000001L, 9007199254740992.0L); - TEST_f_f (floor, 9007199254740993.5000000000001L, 9007199254740993.0L); -# endif - - TEST_f_f (floor, -9007199254740991.5L, -9007199254740992.0L); - TEST_f_f (floor, -9007199254740992.25L, -9007199254740993.0L); - TEST_f_f (floor, -9007199254740992.5L, -9007199254740993.0L); - TEST_f_f (floor, -9007199254740992.75L, -9007199254740993.0L); - TEST_f_f (floor, -9007199254740993.5L, -9007199254740994.0L); - -# if LDBL_MANT_DIG > 100 - TEST_f_f (floor, -9007199254740991.0000000000001L, -9007199254740992.0L); - TEST_f_f (floor, -9007199254740992.0000000000001L, -9007199254740993.0L); - TEST_f_f (floor, -9007199254740993.0000000000001L, -9007199254740994.0L); - TEST_f_f (floor, -9007199254740991.5000000000001L, -9007199254740992.0L); - TEST_f_f (floor, -9007199254740992.5000000000001L, -9007199254740993.0L); - TEST_f_f (floor, -9007199254740993.5000000000001L, -9007199254740994.0L); -# endif - - TEST_f_f (floor, 72057594037927935.5L, 72057594037927935.0L); - TEST_f_f (floor, 72057594037927936.25L, 72057594037927936.0L); - TEST_f_f (floor, 72057594037927936.5L, 72057594037927936.0L); - TEST_f_f (floor, 72057594037927936.75L, 72057594037927936.0L); - TEST_f_f (floor, 72057594037927937.5L, 72057594037927937.0L); - - TEST_f_f (floor, -72057594037927935.5L, -72057594037927936.0L); - TEST_f_f (floor, -72057594037927936.25L, -72057594037927937.0L); - TEST_f_f (floor, -72057594037927936.5L, -72057594037927937.0L); - TEST_f_f (floor, -72057594037927936.75L, -72057594037927937.0L); - TEST_f_f (floor, -72057594037927937.5L, -72057594037927938.0L); - - TEST_f_f (floor, 10141204801825835211973625643007.5L, 10141204801825835211973625643007.0L); - TEST_f_f (floor, 10141204801825835211973625643008.25L, 10141204801825835211973625643008.0L); - TEST_f_f (floor, 10141204801825835211973625643008.5L, 10141204801825835211973625643008.0L); - TEST_f_f (floor, 10141204801825835211973625643008.75L, 10141204801825835211973625643008.0L); - TEST_f_f (floor, 10141204801825835211973625643009.5L, 10141204801825835211973625643009.0L); -#endif END (floor); } @@ -3273,166 +3116,6 @@ lrint_test (void) static void -lrint_test_tonearest (void) -{ - int save_round_mode; - START (lrint_tonearest); - - save_round_mode = fegetround (); - - if (!fesetround (FE_TONEAREST)) - { - TEST_f_l (lrint, 0.0, 0); - TEST_f_l (lrint, minus_zero, 0); - TEST_f_l (lrint, 0.2L, 0); - TEST_f_l (lrint, -0.2L, 0); - TEST_f_l (lrint, 0.5L, 0); - TEST_f_l (lrint, -0.5L, 0); - TEST_f_l (lrint, 0.8L, 1); - TEST_f_l (lrint, -0.8L, -1); - - TEST_f_l (lrint, 1.4L, 1); - TEST_f_l (lrint, -1.4L, -1); - - TEST_f_l (lrint, 8388600.3L, 8388600); - TEST_f_l (lrint, -8388600.3L, -8388600); - - TEST_f_l (lrint, 1071930.0008, 1071930); -#ifndef TEST_FLOAT - TEST_f_l (lrint, 1073741824.01, 1073741824); -# if LONG_MAX > 281474976710656 - TEST_f_l (lrint, 281474976710656.025, 281474976710656); -# endif -#endif - } - - fesetround (save_round_mode); - - END (lrint_tonearest); -} - - -static void -lrint_test_towardzero (void) -{ - int save_round_mode; - START (lrint_towardzero); - - save_round_mode = fegetround (); - - if (!fesetround (FE_TOWARDZERO)) - { - TEST_f_l (lrint, 0.0, 0); - TEST_f_l (lrint, minus_zero, 0); - TEST_f_l (lrint, 0.2L, 0); - TEST_f_l (lrint, -0.2L, 0); - TEST_f_l (lrint, 0.5L, 0); - TEST_f_l (lrint, -0.5L, 0); - TEST_f_l (lrint, 0.8L, 0); - TEST_f_l (lrint, -0.8L, 0); - - TEST_f_l (lrint, 1.4L, 1); - TEST_f_l (lrint, -1.4L, -1); - - TEST_f_l (lrint, 8388600.3L, 8388600); - TEST_f_l (lrint, -8388600.3L, -8388600); - - TEST_f_l (lrint, 1071930.0008, 1071930); -#ifndef TEST_FLOAT - TEST_f_l (lrint, 1073741824.01, 1073741824); -# if LONG_MAX > 281474976710656 - TEST_f_l (lrint, 281474976710656.025, 281474976710656); -# endif -#endif - } - - fesetround (save_round_mode); - - END (lrint_towardzero); -} - - -static void -lrint_test_downward (void) -{ - int save_round_mode; - START (lrint_downward); - - save_round_mode = fegetround (); - - if (!fesetround (FE_DOWNWARD)) - { - TEST_f_l (lrint, 0.0, 0); - TEST_f_l (lrint, minus_zero, 0); - TEST_f_l (lrint, 0.2L, 0); - TEST_f_l (lrint, -0.2L, -1); - TEST_f_l (lrint, 0.5L, 0); - TEST_f_l (lrint, -0.5L, -1); - TEST_f_l (lrint, 0.8L, 0); - TEST_f_l (lrint, -0.8L, -1); - - TEST_f_l (lrint, 1.4L, 1); - TEST_f_l (lrint, -1.4L, -2); - - TEST_f_l (lrint, 8388600.3L, 8388600); - TEST_f_l (lrint, -8388600.3L, -8388601); - - TEST_f_l (lrint, 1071930.0008, 1071930); -#ifndef TEST_FLOAT - TEST_f_l (lrint, 1073741824.01, 1073741824); -# if LONG_MAX > 281474976710656 - TEST_f_l (lrint, 281474976710656.025, 281474976710656); -# endif -#endif - } - - fesetround (save_round_mode); - - END (lrint_downward); -} - - -static void -lrint_test_upward (void) -{ - int save_round_mode; - START (lrint_upward); - - save_round_mode = fegetround (); - - if (!fesetround (FE_UPWARD)) - { - TEST_f_l (lrint, 0.0, 0); - TEST_f_l (lrint, minus_zero, 0); - TEST_f_l (lrint, 0.2L, 1); - TEST_f_l (lrint, -0.2L, 0); - TEST_f_l (lrint, 0.5L, 1); - TEST_f_l (lrint, -0.5L, 0); - TEST_f_l (lrint, 0.8L, 1); - TEST_f_l (lrint, -0.8L, 0); - - TEST_f_l (lrint, 1.4L, 2); - TEST_f_l (lrint, -1.4L, -1); - - TEST_f_l (lrint, 8388600.3L, 8388601); - TEST_f_l (lrint, -8388600.3L, -8388600); - -#ifndef TEST_FLOAT - TEST_f_l (lrint, 1071930.0008, 1071931); - TEST_f_l (lrint, 1073741824.01, 1073741825); -# if LONG_MAX > 281474976710656 && defined (TEST_LDOUBLE) - TEST_f_l (lrint, 281474976710656.025, 281474976710656); -# endif -#endif - } - - fesetround (save_round_mode); - - END (lrint_upward); -} - - -static void llrint_test (void) { /* XXX this test is incomplete. We need to have a way to specifiy @@ -3477,639 +3160,10 @@ llrint_test (void) TEST_f_L (llrint, 36028797018963968.0, 36028797018963968LL); /* 0x100000000000000 */ TEST_f_L (llrint, 72057594037927936.0, 72057594037927936LL); -#ifdef TEST_LDOUBLE - /* The input can only be represented in long double. */ - TEST_f_L (llrint, 4503599627370495.5L, 4503599627370496LL); - TEST_f_L (llrint, 4503599627370496.25L, 4503599627370496LL); - TEST_f_L (llrint, 4503599627370496.5L, 4503599627370496LL); - TEST_f_L (llrint, 4503599627370496.75L, 4503599627370497LL); - TEST_f_L (llrint, 4503599627370497.5L, 4503599627370498LL); - - TEST_f_L (llrint, -4503599627370495.5L, -4503599627370496LL); - TEST_f_L (llrint, -4503599627370496.25L, -4503599627370496LL); - TEST_f_L (llrint, -4503599627370496.5L, -4503599627370496LL); - TEST_f_L (llrint, -4503599627370496.75L, -4503599627370497LL); - TEST_f_L (llrint, -4503599627370497.5L, -4503599627370498LL); - -# if LDBL_MANT_DIG > 100 - TEST_f_L (llrint, 4503599627370495.4999999999999L, 4503599627370495LL); - TEST_f_L (llrint, 4503599627370496.4999999999999L, 4503599627370496LL); - TEST_f_L (llrint, 4503599627370497.4999999999999L, 4503599627370497LL); - TEST_f_L (llrint, 4503599627370494.5000000000001L, 4503599627370495LL); - TEST_f_L (llrint, 4503599627370495.5000000000001L, 4503599627370496LL); - TEST_f_L (llrint, 4503599627370496.5000000000001L, 4503599627370497LL); - - TEST_f_L (llrint, -4503599627370495.4999999999999L, -4503599627370495LL); - TEST_f_L (llrint, -4503599627370496.4999999999999L, -4503599627370496LL); - TEST_f_L (llrint, -4503599627370497.4999999999999L, -4503599627370497LL); - TEST_f_L (llrint, -4503599627370494.5000000000001L, -4503599627370495LL); - TEST_f_L (llrint, -4503599627370495.5000000000001L, -4503599627370496LL); - TEST_f_L (llrint, -4503599627370496.5000000000001L, -4503599627370497LL); -#endif - - TEST_f_L (llrint, 9007199254740991.5L, 9007199254740992LL); - TEST_f_L (llrint, 9007199254740992.25L, 9007199254740992LL); - TEST_f_L (llrint, 9007199254740992.5L, 9007199254740992LL); - TEST_f_L (llrint, 9007199254740992.75L, 9007199254740993LL); - TEST_f_L (llrint, 9007199254740993.5L, 9007199254740994LL); - - TEST_f_L (llrint, -9007199254740991.5L, -9007199254740992LL); - TEST_f_L (llrint, -9007199254740992.25L, -9007199254740992LL); - TEST_f_L (llrint, -9007199254740992.5L, -9007199254740992LL); - TEST_f_L (llrint, -9007199254740992.75L, -9007199254740993LL); - TEST_f_L (llrint, -9007199254740993.5L, -9007199254740994LL); - -# if LDBL_MANT_DIG > 100 - TEST_f_L (llrint, 9007199254740991.4999999999999L, 9007199254740991LL); - TEST_f_L (llrint, 9007199254740992.4999999999999L, 9007199254740992LL); - TEST_f_L (llrint, 9007199254740993.4999999999999L, 9007199254740993LL); - TEST_f_L (llrint, 9007199254740991.5000000000001L, 9007199254740992LL); - TEST_f_L (llrint, 9007199254740992.5000000000001L, 9007199254740993LL); - TEST_f_L (llrint, 9007199254740993.5000000000001L, 9007199254740994LL); - - TEST_f_L (llrint, -9007199254740991.4999999999999L, -9007199254740991LL); - TEST_f_L (llrint, -9007199254740992.4999999999999L, -9007199254740992LL); - TEST_f_L (llrint, -9007199254740993.4999999999999L, -9007199254740993LL); - TEST_f_L (llrint, -9007199254740991.5000000000001L, -9007199254740992LL); - TEST_f_L (llrint, -9007199254740992.5000000000001L, -9007199254740993LL); - TEST_f_L (llrint, -9007199254740993.5000000000001L, -9007199254740994LL); -#endif - - TEST_f_L (llrint, 72057594037927935.5L, 72057594037927936LL); - TEST_f_L (llrint, 72057594037927936.25L, 72057594037927936LL); - TEST_f_L (llrint, 72057594037927936.5L, 72057594037927936LL); - TEST_f_L (llrint, 72057594037927936.75L, 72057594037927937LL); - TEST_f_L (llrint, 72057594037927937.5L, 72057594037927938LL); - - TEST_f_L (llrint, -72057594037927935.5L, -72057594037927936LL); - TEST_f_L (llrint, -72057594037927936.25L, -72057594037927936LL); - TEST_f_L (llrint, -72057594037927936.5L, -72057594037927936LL); - TEST_f_L (llrint, -72057594037927936.75L, -72057594037927937LL); - TEST_f_L (llrint, -72057594037927937.5L, -72057594037927938LL); - -# if LDBL_MANT_DIG > 100 - TEST_f_L (llrint, 9223372036854775805.5L, 9223372036854775806LL); - TEST_f_L (llrint, -9223372036854775805.5L, -9223372036854775806LL); - TEST_f_L (llrint, 9223372036854775806.0L, 9223372036854775806LL); - TEST_f_L (llrint, -9223372036854775806.0L, -9223372036854775806LL); - TEST_f_L (llrint, 9223372036854775806.25L, 9223372036854775806LL); - TEST_f_L (llrint, -9223372036854775806.25L, -9223372036854775806LL); - TEST_f_L (llrint, 9223372036854775806.5L, 9223372036854775806L); - TEST_f_L (llrint, -9223372036854775806.5L, -9223372036854775806LL); - TEST_f_L (llrint, 9223372036854775806.75L, 9223372036854775807LL); - TEST_f_L (llrint, -9223372036854775806.75L, -9223372036854775807LL); - TEST_f_L (llrint, 9223372036854775807.0L, 9223372036854775807LL); - TEST_f_L (llrint, -9223372036854775807.0L, -9223372036854775807LL); -# endif -#endif END (llrint); } -static void -llrint_test_tonearest (void) -{ - int save_round_mode; - START (llrint_tonearest); - - save_round_mode = fegetround (); - - if (!fesetround (FE_TONEAREST)) - { - TEST_f_L (llrint, 0.0, 0); - TEST_f_L (llrint, minus_zero, 0); - TEST_f_L (llrint, 0.2L, 0); - TEST_f_L (llrint, -0.2L, 0); - - TEST_f_L (llrint, 1.4L, 1); - TEST_f_L (llrint, -1.4L, -1); - - TEST_f_L (llrint, 8388600.3L, 8388600); - TEST_f_L (llrint, -8388600.3L, -8388600); - - TEST_f_l (llrint, 1071930.0008, 1071930); - - /* Test boundary conditions. */ - /* 0x1FFFFF */ - TEST_f_L (llrint, 2097151.0,2097151LL); - /* 0x800000 */ - TEST_f_L (llrint, 8388608.0, 8388608LL); - /* 0x1000000 */ - TEST_f_L (llrint, 16777216.0, 16777216LL); - /* 0x20000000000 */ - TEST_f_L (llrint, 2199023255552.0, 2199023255552LL); - /* 0x40000000000 */ - TEST_f_L (llrint, 4398046511104.0, 4398046511104LL); - /* 0x1000000000000 */ - TEST_f_L (llrint, 281474976710656.0, 281474976710656LL); - /* 0x10000000000000 */ - TEST_f_L (llrint, 4503599627370496.0, 4503599627370496LL); - /* 0x10000080000000 */ - TEST_f_L (llrint, 4503601774854144.0, 4503601774854144LL); - /* 0x20000000000000 */ - TEST_f_L (llrint, 9007199254740992.0, 9007199254740992LL); - /* 0x80000000000000 */ - TEST_f_L (llrint, 36028797018963968.0, 36028797018963968LL); - /* 0x100000000000000 */ - TEST_f_L (llrint, 72057594037927936.0, 72057594037927936LL); -#ifdef TEST_LDOUBLE - /* The input can only be represented in long double. */ - TEST_f_L (llrint, 4503599627370495.5L, 4503599627370496LL); - TEST_f_L (llrint, 4503599627370496.25L, 4503599627370496LL); - TEST_f_L (llrint, 4503599627370496.5L, 4503599627370496LL); - TEST_f_L (llrint, 4503599627370496.75L, 4503599627370497LL); - TEST_f_L (llrint, 4503599627370497.5L, 4503599627370498LL); - - TEST_f_L (llrint, -4503599627370495.5L, -4503599627370496LL); - TEST_f_L (llrint, -4503599627370496.25L, -4503599627370496LL); - TEST_f_L (llrint, -4503599627370496.5L, -4503599627370496LL); - TEST_f_L (llrint, -4503599627370496.75L, -4503599627370497LL); - TEST_f_L (llrint, -4503599627370497.5L, -4503599627370498LL); - -# if LDBL_MANT_DIG > 100 - TEST_f_L (llrint, 4503599627370495.4999999999999L, 4503599627370495LL); - TEST_f_L (llrint, 4503599627370496.4999999999999L, 4503599627370496LL); - TEST_f_L (llrint, 4503599627370497.4999999999999L, 4503599627370497LL); - TEST_f_L (llrint, 4503599627370494.5000000000001L, 4503599627370495LL); - TEST_f_L (llrint, 4503599627370495.5000000000001L, 4503599627370496LL); - TEST_f_L (llrint, 4503599627370496.5000000000001L, 4503599627370497LL); - - TEST_f_L (llrint, -4503599627370495.4999999999999L, -4503599627370495LL); - TEST_f_L (llrint, -4503599627370496.4999999999999L, -4503599627370496LL); - TEST_f_L (llrint, -4503599627370497.4999999999999L, -4503599627370497LL); - TEST_f_L (llrint, -4503599627370494.5000000000001L, -4503599627370495LL); - TEST_f_L (llrint, -4503599627370495.5000000000001L, -4503599627370496LL); - TEST_f_L (llrint, -4503599627370496.5000000000001L, -4503599627370497LL); -#endif - - TEST_f_L (llrint, 9007199254740991.5L, 9007199254740992LL); - TEST_f_L (llrint, 9007199254740992.25L, 9007199254740992LL); - TEST_f_L (llrint, 9007199254740992.5L, 9007199254740992LL); - TEST_f_L (llrint, 9007199254740992.75L, 9007199254740993LL); - TEST_f_L (llrint, 9007199254740993.5L, 9007199254740994LL); - - TEST_f_L (llrint, -9007199254740991.5L, -9007199254740992LL); - TEST_f_L (llrint, -9007199254740992.25L, -9007199254740992LL); - TEST_f_L (llrint, -9007199254740992.5L, -9007199254740992LL); - TEST_f_L (llrint, -9007199254740992.75L, -9007199254740993LL); - TEST_f_L (llrint, -9007199254740993.5L, -9007199254740994LL); - -# if LDBL_MANT_DIG > 100 - TEST_f_L (llrint, 9007199254740991.4999999999999L, 9007199254740991LL); - TEST_f_L (llrint, 9007199254740992.4999999999999L, 9007199254740992LL); - TEST_f_L (llrint, 9007199254740993.4999999999999L, 9007199254740993LL); - TEST_f_L (llrint, 9007199254740991.5000000000001L, 9007199254740992LL); - TEST_f_L (llrint, 9007199254740992.5000000000001L, 9007199254740993LL); - TEST_f_L (llrint, 9007199254740993.5000000000001L, 9007199254740994LL); - - TEST_f_L (llrint, -9007199254740991.4999999999999L, -9007199254740991LL); - TEST_f_L (llrint, -9007199254740992.4999999999999L, -9007199254740992LL); - TEST_f_L (llrint, -9007199254740993.4999999999999L, -9007199254740993LL); - TEST_f_L (llrint, -9007199254740991.5000000000001L, -9007199254740992LL); - TEST_f_L (llrint, -9007199254740992.5000000000001L, -9007199254740993LL); - TEST_f_L (llrint, -9007199254740993.5000000000001L, -9007199254740994LL); -#endif - - TEST_f_L (llrint, 72057594037927935.5L, 72057594037927936LL); - TEST_f_L (llrint, 72057594037927936.25L, 72057594037927936LL); - TEST_f_L (llrint, 72057594037927936.5L, 72057594037927936LL); - TEST_f_L (llrint, 72057594037927936.75L, 72057594037927937LL); - TEST_f_L (llrint, 72057594037927937.5L, 72057594037927938LL); - - TEST_f_L (llrint, -72057594037927935.5L, -72057594037927936LL); - TEST_f_L (llrint, -72057594037927936.25L, -72057594037927936LL); - TEST_f_L (llrint, -72057594037927936.5L, -72057594037927936LL); - TEST_f_L (llrint, -72057594037927936.75L, -72057594037927937LL); - TEST_f_L (llrint, -72057594037927937.5L, -72057594037927938LL); - -# if LDBL_MANT_DIG > 100 - TEST_f_L (llrint, 9223372036854775805.5L, 9223372036854775806LL); - TEST_f_L (llrint, -9223372036854775805.5L, -9223372036854775806LL); - TEST_f_L (llrint, 9223372036854775806.0L, 9223372036854775806LL); - TEST_f_L (llrint, -9223372036854775806.0L, -9223372036854775806LL); - TEST_f_L (llrint, 9223372036854775806.25L, 9223372036854775806LL); - TEST_f_L (llrint, -9223372036854775806.25L, -9223372036854775806LL); - TEST_f_L (llrint, 9223372036854775806.5L, 9223372036854775806L); - TEST_f_L (llrint, -9223372036854775806.5L, -9223372036854775806LL); - TEST_f_L (llrint, 9223372036854775806.75L, 9223372036854775807LL); - TEST_f_L (llrint, -9223372036854775806.75L, -9223372036854775807LL); - TEST_f_L (llrint, 9223372036854775807.0L, 9223372036854775807LL); - TEST_f_L (llrint, -9223372036854775807.0L, -9223372036854775807LL); -# endif -#endif - } - - fesetround (save_round_mode); - - END (llrint_tonearest); -} - -static void -llrint_test_towardzero (void) -{ - int save_round_mode; - START (llrint_towardzero); - - save_round_mode = fegetround (); - - if (!fesetround (FE_TOWARDZERO)) - { - TEST_f_L (llrint, 0.0, 0); - TEST_f_L (llrint, minus_zero, 0); - TEST_f_L (llrint, 0.2L, 0); - TEST_f_L (llrint, -0.2L, 0); - - TEST_f_L (llrint, 1.4L, 1); - TEST_f_L (llrint, -1.4L, -1); - - TEST_f_L (llrint, 8388600.3L, 8388600); - TEST_f_L (llrint, -8388600.3L, -8388600); - - TEST_f_l (llrint, 1071930.0008, 1071930); - - /* Test boundary conditions. */ - /* 0x1FFFFF */ - TEST_f_L (llrint, 2097151.0,2097151LL); - /* 0x800000 */ - TEST_f_L (llrint, 8388608.0, 8388608LL); - /* 0x1000000 */ - TEST_f_L (llrint, 16777216.0, 16777216LL); - /* 0x20000000000 */ - TEST_f_L (llrint, 2199023255552.0, 2199023255552LL); - /* 0x40000000000 */ - TEST_f_L (llrint, 4398046511104.0, 4398046511104LL); - /* 0x1000000000000 */ - TEST_f_L (llrint, 281474976710656.0, 281474976710656LL); - /* 0x10000000000000 */ - TEST_f_L (llrint, 4503599627370496.0, 4503599627370496LL); - /* 0x10000080000000 */ - TEST_f_L (llrint, 4503601774854144.0, 4503601774854144LL); - /* 0x20000000000000 */ - TEST_f_L (llrint, 9007199254740992.0, 9007199254740992LL); - /* 0x80000000000000 */ - TEST_f_L (llrint, 36028797018963968.0, 36028797018963968LL); - /* 0x100000000000000 */ - TEST_f_L (llrint, 72057594037927936.0, 72057594037927936LL); -#ifdef TEST_LDOUBLE - /* The input can only be represented in long double. */ - TEST_f_L (llrint, 4503599627370495.5L, 4503599627370495LL); - TEST_f_L (llrint, 4503599627370496.25L, 4503599627370496LL); - TEST_f_L (llrint, 4503599627370496.5L, 4503599627370496LL); - TEST_f_L (llrint, 4503599627370496.75L, 4503599627370496LL); - TEST_f_L (llrint, 4503599627370497.5L, 4503599627370497LL); - - TEST_f_L (llrint, -4503599627370495.5L, -4503599627370495LL); - TEST_f_L (llrint, -4503599627370496.25L, -4503599627370496LL); - TEST_f_L (llrint, -4503599627370496.5L, -4503599627370496LL); - TEST_f_L (llrint, -4503599627370496.75L, -4503599627370496LL); - TEST_f_L (llrint, -4503599627370497.5L, -4503599627370497LL); - -# if LDBL_MANT_DIG > 100 - TEST_f_L (llrint, 4503599627370495.4999999999999L, 4503599627370495LL); - TEST_f_L (llrint, 4503599627370496.4999999999999L, 4503599627370496LL); - TEST_f_L (llrint, 4503599627370497.4999999999999L, 4503599627370497LL); - TEST_f_L (llrint, 4503599627370494.5000000000001L, 4503599627370494LL); - TEST_f_L (llrint, 4503599627370495.5000000000001L, 4503599627370495LL); - TEST_f_L (llrint, 4503599627370496.5000000000001L, 4503599627370496LL); - - TEST_f_L (llrint, -4503599627370495.4999999999999L, -4503599627370495LL); - TEST_f_L (llrint, -4503599627370496.4999999999999L, -4503599627370496LL); - TEST_f_L (llrint, -4503599627370497.4999999999999L, -4503599627370497LL); - TEST_f_L (llrint, -4503599627370494.5000000000001L, -4503599627370494LL); - TEST_f_L (llrint, -4503599627370495.5000000000001L, -4503599627370495LL); - TEST_f_L (llrint, -4503599627370496.5000000000001L, -4503599627370496LL); -#endif - - TEST_f_L (llrint, 9007199254740991.5L, 9007199254740991LL); - TEST_f_L (llrint, 9007199254740992.25L, 9007199254740992LL); - TEST_f_L (llrint, 9007199254740992.5L, 9007199254740992LL); - TEST_f_L (llrint, 9007199254740992.75L, 9007199254740992LL); - TEST_f_L (llrint, 9007199254740993.5L, 9007199254740993LL); - - TEST_f_L (llrint, -9007199254740991.5L, -9007199254740991LL); - TEST_f_L (llrint, -9007199254740992.25L, -9007199254740992LL); - TEST_f_L (llrint, -9007199254740992.5L, -9007199254740992LL); - TEST_f_L (llrint, -9007199254740992.75L, -9007199254740992LL); - TEST_f_L (llrint, -9007199254740993.5L, -9007199254740993LL); - -# if LDBL_MANT_DIG > 100 - TEST_f_L (llrint, 9007199254740991.4999999999999L, 9007199254740991LL); - TEST_f_L (llrint, 9007199254740992.4999999999999L, 9007199254740992LL); - TEST_f_L (llrint, 9007199254740993.4999999999999L, 9007199254740993LL); - TEST_f_L (llrint, 9007199254740991.5000000000001L, 9007199254740991LL); - TEST_f_L (llrint, 9007199254740992.5000000000001L, 9007199254740992LL); - TEST_f_L (llrint, 9007199254740993.5000000000001L, 9007199254740993LL); - - TEST_f_L (llrint, -9007199254740991.4999999999999L, -9007199254740991LL); - TEST_f_L (llrint, -9007199254740992.4999999999999L, -9007199254740992LL); - TEST_f_L (llrint, -9007199254740993.4999999999999L, -9007199254740993LL); - TEST_f_L (llrint, -9007199254740991.5000000000001L, -9007199254740991LL); - TEST_f_L (llrint, -9007199254740992.5000000000001L, -9007199254740992LL); - TEST_f_L (llrint, -9007199254740993.5000000000001L, -9007199254740993LL); -#endif - - TEST_f_L (llrint, 72057594037927935.5L, 72057594037927935LL); - TEST_f_L (llrint, 72057594037927936.25L, 72057594037927936LL); - TEST_f_L (llrint, 72057594037927936.5L, 72057594037927936LL); - TEST_f_L (llrint, 72057594037927936.75L, 72057594037927936LL); - TEST_f_L (llrint, 72057594037927937.5L, 72057594037927937LL); - - TEST_f_L (llrint, -72057594037927935.5L, -72057594037927935LL); - TEST_f_L (llrint, -72057594037927936.25L, -72057594037927936LL); - TEST_f_L (llrint, -72057594037927936.5L, -72057594037927936LL); - TEST_f_L (llrint, -72057594037927936.75L, -72057594037927936LL); - TEST_f_L (llrint, -72057594037927937.5L, -72057594037927937LL); - -# if LDBL_MANT_DIG > 100 - TEST_f_L (llrint, 9223372036854775805.5L, 9223372036854775805LL); - TEST_f_L (llrint, -9223372036854775805.5L, -9223372036854775805LL); - TEST_f_L (llrint, 9223372036854775806.0L, 9223372036854775806LL); - TEST_f_L (llrint, -9223372036854775806.0L, -9223372036854775806LL); - TEST_f_L (llrint, 9223372036854775806.25L, 9223372036854775806LL); - TEST_f_L (llrint, -9223372036854775806.25L, -9223372036854775806LL); - TEST_f_L (llrint, 9223372036854775806.5L, 9223372036854775806L); - TEST_f_L (llrint, -9223372036854775806.5L, -9223372036854775806LL); - TEST_f_L (llrint, 9223372036854775806.75L, 9223372036854775806LL); - TEST_f_L (llrint, -9223372036854775806.75L, -9223372036854775806LL); - TEST_f_L (llrint, 9223372036854775807.0L, 9223372036854775807LL); - TEST_f_L (llrint, -9223372036854775807.0L, -9223372036854775807LL); -# endif -#endif - } - - fesetround (save_round_mode); - - END (llrint_towardzero); -} - -static void -llrint_test_downward (void) -{ - int save_round_mode; - START (llrint_downward); - - save_round_mode = fegetround (); - - if (!fesetround (FE_DOWNWARD)) - { - TEST_f_L (llrint, 0.0, 0); - TEST_f_L (llrint, minus_zero, 0); - TEST_f_L (llrint, 0.2L, 0); - TEST_f_L (llrint, -0.2L, -1); - - TEST_f_L (llrint, 1.4L, 1); - TEST_f_L (llrint, -1.4L, -2); - - TEST_f_L (llrint, 8388600.3L, 8388600); - TEST_f_L (llrint, -8388600.3L, -8388601); - - TEST_f_l (llrint, 1071930.0008, 1071930); - - /* Test boundary conditions. */ - /* 0x1FFFFF */ - TEST_f_L (llrint, 2097151.0,2097151LL); - /* 0x800000 */ - TEST_f_L (llrint, 8388608.0, 8388608LL); - /* 0x1000000 */ - TEST_f_L (llrint, 16777216.0, 16777216LL); - /* 0x20000000000 */ - TEST_f_L (llrint, 2199023255552.0, 2199023255552LL); - /* 0x40000000000 */ - TEST_f_L (llrint, 4398046511104.0, 4398046511104LL); - /* 0x1000000000000 */ - TEST_f_L (llrint, 281474976710656.0, 281474976710656LL); - /* 0x10000000000000 */ - TEST_f_L (llrint, 4503599627370496.0, 4503599627370496LL); - /* 0x10000080000000 */ - TEST_f_L (llrint, 4503601774854144.0, 4503601774854144LL); - /* 0x20000000000000 */ - TEST_f_L (llrint, 9007199254740992.0, 9007199254740992LL); - /* 0x80000000000000 */ - TEST_f_L (llrint, 36028797018963968.0, 36028797018963968LL); - /* 0x100000000000000 */ - TEST_f_L (llrint, 72057594037927936.0, 72057594037927936LL); -#ifdef TEST_LDOUBLE - /* The input can only be represented in long double. */ - TEST_f_L (llrint, 4503599627370495.5L, 4503599627370495LL); - TEST_f_L (llrint, 4503599627370496.25L, 4503599627370496LL); - TEST_f_L (llrint, 4503599627370496.5L, 4503599627370496LL); - TEST_f_L (llrint, 4503599627370496.75L, 4503599627370496LL); - TEST_f_L (llrint, 4503599627370497.5L, 4503599627370497LL); - - TEST_f_L (llrint, 4503599627370495.4999999999999L, 4503599627370495LL); - TEST_f_L (llrint, 4503599627370496.4999999999999L, 4503599627370496LL); - TEST_f_L (llrint, 4503599627370497.4999999999999L, 4503599627370497LL); - TEST_f_L (llrint, 4503599627370494.5000000000001L, 4503599627370494LL); - TEST_f_L (llrint, 4503599627370495.5000000000001L, 4503599627370495LL); - TEST_f_L (llrint, 4503599627370496.5000000000001L, 4503599627370496LL); - - TEST_f_L (llrint, -4503599627370495.5L, -4503599627370496LL); - TEST_f_L (llrint, -4503599627370496.25L, -4503599627370497LL); - TEST_f_L (llrint, -4503599627370496.5L, -4503599627370497LL); - TEST_f_L (llrint, -4503599627370496.75L, -4503599627370497LL); - TEST_f_L (llrint, -4503599627370497.5L, -4503599627370498LL); - - TEST_f_L (llrint, -4503599627370495.4999999999999L, -4503599627370496LL); - TEST_f_L (llrint, -4503599627370496.4999999999999L, -4503599627370497LL); - TEST_f_L (llrint, -4503599627370497.4999999999999L, -4503599627370498LL); - TEST_f_L (llrint, -4503599627370494.5000000000001L, -4503599627370495LL); - TEST_f_L (llrint, -4503599627370495.5000000000001L, -4503599627370496LL); - TEST_f_L (llrint, -4503599627370496.5000000000001L, -4503599627370497LL); - - TEST_f_L (llrint, 9007199254740991.5L, 9007199254740991LL); - TEST_f_L (llrint, 9007199254740992.25L, 9007199254740992LL); - TEST_f_L (llrint, 9007199254740992.5L, 9007199254740992LL); - TEST_f_L (llrint, 9007199254740992.75L, 9007199254740992LL); - TEST_f_L (llrint, 9007199254740993.5L, 9007199254740993LL); - - TEST_f_L (llrint, 9007199254740991.4999999999999L, 9007199254740991LL); - TEST_f_L (llrint, 9007199254740992.4999999999999L, 9007199254740992LL); - TEST_f_L (llrint, 9007199254740993.4999999999999L, 9007199254740993LL); - TEST_f_L (llrint, 9007199254740991.5000000000001L, 9007199254740991LL); - TEST_f_L (llrint, 9007199254740992.5000000000001L, 9007199254740992LL); - TEST_f_L (llrint, 9007199254740993.5000000000001L, 9007199254740993LL); - - TEST_f_L (llrint, -9007199254740991.5L, -9007199254740992LL); - TEST_f_L (llrint, -9007199254740992.25L, -9007199254740993LL); - TEST_f_L (llrint, -9007199254740992.5L, -9007199254740993LL); - TEST_f_L (llrint, -9007199254740992.75L, -9007199254740993LL); - TEST_f_L (llrint, -9007199254740993.5L, -9007199254740994LL); - - TEST_f_L (llrint, -9007199254740991.4999999999999L, -9007199254740992LL); - TEST_f_L (llrint, -9007199254740992.4999999999999L, -9007199254740993LL); - TEST_f_L (llrint, -9007199254740993.4999999999999L, -9007199254740994LL); - TEST_f_L (llrint, -9007199254740991.5000000000001L, -9007199254740992LL); - TEST_f_L (llrint, -9007199254740992.5000000000001L, -9007199254740993LL); - TEST_f_L (llrint, -9007199254740993.5000000000001L, -9007199254740994LL); - - TEST_f_L (llrint, 72057594037927935.5L, 72057594037927935LL); - TEST_f_L (llrint, 72057594037927936.25L, 72057594037927936LL); - TEST_f_L (llrint, 72057594037927936.5L, 72057594037927936LL); - TEST_f_L (llrint, 72057594037927936.75L, 72057594037927936LL); - TEST_f_L (llrint, 72057594037927937.5L, 72057594037927937LL); - - TEST_f_L (llrint, -72057594037927935.5L, -72057594037927936LL); - TEST_f_L (llrint, -72057594037927936.25L, -72057594037927937LL); - TEST_f_L (llrint, -72057594037927936.5L, -72057594037927937LL); - TEST_f_L (llrint, -72057594037927936.75L, -72057594037927937LL); - TEST_f_L (llrint, -72057594037927937.5L, -72057594037927938LL); - -# if LDBL_MANT_DIG > 100 - TEST_f_L (llrint, 9223372036854775805.5L, 9223372036854775805LL); - TEST_f_L (llrint, -9223372036854775805.5L, -9223372036854775806LL); - TEST_f_L (llrint, 9223372036854775806.0L, 9223372036854775806LL); - TEST_f_L (llrint, -9223372036854775806.0L, -9223372036854775806LL); - TEST_f_L (llrint, 9223372036854775806.25L, 9223372036854775806LL); - TEST_f_L (llrint, -9223372036854775806.25L, -9223372036854775807LL); - TEST_f_L (llrint, 9223372036854775806.5L, 9223372036854775806L); - TEST_f_L (llrint, -9223372036854775806.5L, -9223372036854775807LL); - TEST_f_L (llrint, 9223372036854775806.75L, 9223372036854775806LL); - TEST_f_L (llrint, -9223372036854775806.75L, -9223372036854775807LL); - TEST_f_L (llrint, 9223372036854775807.0L, 9223372036854775807LL); - TEST_f_L (llrint, -9223372036854775807.0L, -9223372036854775807LL); -# endif -#endif - } - - fesetround (save_round_mode); - - END (llrint_downward); -} - -static void -llrint_test_upward (void) -{ - int save_round_mode; - START (llrint_upward); - - save_round_mode = fegetround (); - - if (!fesetround (FE_UPWARD)) - { - TEST_f_L (llrint, 0.0, 0); - TEST_f_L (llrint, minus_zero, 0); - TEST_f_L (llrint, 0.2L, 1); - TEST_f_L (llrint, -0.2L, 0); - - TEST_f_L (llrint, 1.4L, 2); - TEST_f_L (llrint, -1.4L, -1); - - TEST_f_L (llrint, 8388600.3L, 8388601); - TEST_f_L (llrint, -8388600.3L, -8388600); -#ifndef TEST_FLOAT - TEST_f_l (llrint, 1071930.0008, 1071931); -#endif - /* Test boundary conditions. */ - /* 0x1FFFFF */ - TEST_f_L (llrint, 2097151.0,2097151LL); - /* 0x800000 */ - TEST_f_L (llrint, 8388608.0, 8388608LL); - /* 0x1000000 */ - TEST_f_L (llrint, 16777216.0, 16777216LL); - /* 0x20000000000 */ - TEST_f_L (llrint, 2199023255552.0, 2199023255552LL); - /* 0x40000000000 */ - TEST_f_L (llrint, 4398046511104.0, 4398046511104LL); - /* 0x1000000000000 */ - TEST_f_L (llrint, 281474976710656.0, 281474976710656LL); - /* 0x10000000000000 */ - TEST_f_L (llrint, 4503599627370496.0, 4503599627370496LL); - /* 0x10000080000000 */ - TEST_f_L (llrint, 4503601774854144.0, 4503601774854144LL); - /* 0x20000000000000 */ - TEST_f_L (llrint, 9007199254740992.0, 9007199254740992LL); - /* 0x80000000000000 */ - TEST_f_L (llrint, 36028797018963968.0, 36028797018963968LL); - /* 0x100000000000000 */ - TEST_f_L (llrint, 72057594037927936.0, 72057594037927936LL); -#ifdef TEST_LDOUBLE - /* The input can only be represented in long double. */ - TEST_f_L (llrint, 4503599627370495.5L, 4503599627370496LL); - TEST_f_L (llrint, 4503599627370496.25L, 4503599627370497LL); - TEST_f_L (llrint, 4503599627370496.5L, 4503599627370497LL); - TEST_f_L (llrint, 4503599627370496.75L, 4503599627370497LL); - TEST_f_L (llrint, 4503599627370497.5L, 4503599627370498LL); - - TEST_f_L (llrint, 4503599627370495.4999999999999L, 4503599627370496LL); - TEST_f_L (llrint, 4503599627370496.4999999999999L, 4503599627370497LL); - TEST_f_L (llrint, 4503599627370497.4999999999999L, 4503599627370498LL); - TEST_f_L (llrint, 4503599627370494.5000000000001L, 4503599627370495LL); - TEST_f_L (llrint, 4503599627370495.5000000000001L, 4503599627370496LL); - TEST_f_L (llrint, 4503599627370496.5000000000001L, 4503599627370497LL); - - TEST_f_L (llrint, -4503599627370495.5L, -4503599627370495LL); - TEST_f_L (llrint, -4503599627370496.25L, -4503599627370496LL); - TEST_f_L (llrint, -4503599627370496.5L, -4503599627370496LL); - TEST_f_L (llrint, -4503599627370496.75L, -4503599627370496LL); - TEST_f_L (llrint, -4503599627370497.5L, -4503599627370497LL); - - TEST_f_L (llrint, -4503599627370495.4999999999999L, -4503599627370495LL); - TEST_f_L (llrint, -4503599627370496.4999999999999L, -4503599627370496LL); - TEST_f_L (llrint, -4503599627370497.4999999999999L, -4503599627370497LL); - TEST_f_L (llrint, -4503599627370494.5000000000001L, -4503599627370494LL); - TEST_f_L (llrint, -4503599627370495.5000000000001L, -4503599627370495LL); - TEST_f_L (llrint, -4503599627370496.5000000000001L, -4503599627370496LL); - - TEST_f_L (llrint, 9007199254740991.5L, 9007199254740992LL); - TEST_f_L (llrint, 9007199254740992.25L, 9007199254740993LL); - TEST_f_L (llrint, 9007199254740992.5L, 9007199254740993LL); - TEST_f_L (llrint, 9007199254740992.75L, 9007199254740993LL); - TEST_f_L (llrint, 9007199254740993.5L, 9007199254740994LL); - - TEST_f_L (llrint, 9007199254740991.4999999999999L, 9007199254740992LL); - TEST_f_L (llrint, 9007199254740992.4999999999999L, 9007199254740993LL); - TEST_f_L (llrint, 9007199254740993.4999999999999L, 9007199254740994LL); - TEST_f_L (llrint, 9007199254740991.5000000000001L, 9007199254740992LL); - TEST_f_L (llrint, 9007199254740992.5000000000001L, 9007199254740993LL); - TEST_f_L (llrint, 9007199254740993.5000000000001L, 9007199254740994LL); - - TEST_f_L (llrint, -9007199254740991.5L, -9007199254740991LL); - TEST_f_L (llrint, -9007199254740992.25L, -9007199254740992LL); - TEST_f_L (llrint, -9007199254740992.5L, -9007199254740992LL); - TEST_f_L (llrint, -9007199254740992.75L, -9007199254740992LL); - TEST_f_L (llrint, -9007199254740993.5L, -9007199254740993LL); - - TEST_f_L (llrint, -9007199254740991.4999999999999L, -9007199254740991LL); - TEST_f_L (llrint, -9007199254740992.4999999999999L, -9007199254740992LL); - TEST_f_L (llrint, -9007199254740993.4999999999999L, -9007199254740993LL); - TEST_f_L (llrint, -9007199254740991.5000000000001L, -9007199254740991LL); - TEST_f_L (llrint, -9007199254740992.5000000000001L, -9007199254740992LL); - TEST_f_L (llrint, -9007199254740993.5000000000001L, -9007199254740993LL); - - TEST_f_L (llrint, 72057594037927935.5L, 72057594037927936LL); - TEST_f_L (llrint, 72057594037927936.25L, 72057594037927937LL); - TEST_f_L (llrint, 72057594037927936.5L, 72057594037927937LL); - TEST_f_L (llrint, 72057594037927936.75L, 72057594037927937LL); - TEST_f_L (llrint, 72057594037927937.5L, 72057594037927938LL); - - TEST_f_L (llrint, -72057594037927935.5L, -72057594037927935LL); - TEST_f_L (llrint, -72057594037927936.25L, -72057594037927936LL); - TEST_f_L (llrint, -72057594037927936.5L, -72057594037927936LL); - TEST_f_L (llrint, -72057594037927936.75L, -72057594037927936LL); - TEST_f_L (llrint, -72057594037927937.5L, -72057594037927937LL); - -# if LDBL_MANT_DIG > 100 - TEST_f_L (llrint, 9223372036854775805.5L, 9223372036854775806LL); - TEST_f_L (llrint, -9223372036854775805.5L, -9223372036854775805LL); - TEST_f_L (llrint, 9223372036854775806.0L, 9223372036854775806LL); - TEST_f_L (llrint, -9223372036854775806.0L, -9223372036854775806LL); - TEST_f_L (llrint, 9223372036854775806.25L, 9223372036854775807LL); - TEST_f_L (llrint, -9223372036854775806.25L, -9223372036854775806LL); - TEST_f_L (llrint, 9223372036854775806.5L, 9223372036854775807L); - TEST_f_L (llrint, -9223372036854775806.5L, -9223372036854775806LL); - TEST_f_L (llrint, 9223372036854775806.75L, 9223372036854775807LL); - TEST_f_L (llrint, -9223372036854775806.75L, -9223372036854775806LL); - TEST_f_L (llrint, 9223372036854775807.0L, 9223372036854775807LL); - TEST_f_L (llrint, -9223372036854775807.0L, -9223372036854775807LL); -# endif -#endif - } - - fesetround (save_round_mode); - - END (llrint_upward); -} - static void log_test (void) @@ -4127,9 +3181,7 @@ log_test (void) TEST_f_f (log, 1, 0); TEST_f_f (log, -1, nan_value, INVALID_EXCEPTION); - TEST_f_f (log, minus_infty, nan_value, INVALID_EXCEPTION); TEST_f_f (log, plus_infty, plus_infty); - TEST_f_f (log, nan_value, nan_value); TEST_f_f (log, M_El, 1); TEST_f_f (log, 1.0 / M_El, -1); @@ -4159,7 +3211,6 @@ log10_test (void) /* log10 (x) == NaN plus invalid exception if x < 0. */ TEST_f_f (log10, -1, nan_value, INVALID_EXCEPTION); - TEST_f_f (log10, minus_infty, nan_value, INVALID_EXCEPTION); TEST_f_f (log10, plus_infty, plus_infty); TEST_f_f (log10, nan_value, nan_value); @@ -4191,7 +3242,6 @@ log1p_test (void) TEST_f_f (log1p, -1, minus_infty, DIVIDE_BY_ZERO_EXCEPTION); TEST_f_f (log1p, -2, nan_value, INVALID_EXCEPTION); - TEST_f_f (log1p, minus_infty, nan_value, INVALID_EXCEPTION); TEST_f_f (log1p, plus_infty, plus_infty); TEST_f_f (log1p, nan_value, nan_value); @@ -4222,7 +3272,6 @@ log2_test (void) TEST_f_f (log2, 1, 0); TEST_f_f (log2, -1, nan_value, INVALID_EXCEPTION); - TEST_f_f (log2, minus_infty, nan_value, INVALID_EXCEPTION); TEST_f_f (log2, plus_infty, plus_infty); TEST_f_f (log2, nan_value, nan_value); @@ -4345,84 +3394,6 @@ llround_test (void) TEST_f_L (llround, 8589934591.5, 8589934592LL); #endif -#ifdef TEST_LDOUBLE - /* The input can only be represented in long double. */ - TEST_f_L (llround, 4503599627370495.5L, 4503599627370496LL); - TEST_f_L (llround, 4503599627370496.25L, 4503599627370496LL); - TEST_f_L (llround, 4503599627370496.5L, 4503599627370497LL); - TEST_f_L (llround, 4503599627370496.75L, 4503599627370497LL); - TEST_f_L (llround, 4503599627370497.5L, 4503599627370498LL); - -# if LDBL_MANT_DIG > 100 - TEST_f_L (llround, 4503599627370495.4999999999999L, 4503599627370495LL); - TEST_f_L (llround, 4503599627370496.4999999999999L, 4503599627370496LL); - TEST_f_L (llround, 4503599627370497.4999999999999L, 4503599627370497LL); - TEST_f_L (llround, 4503599627370494.5000000000001L, 4503599627370495LL); - TEST_f_L (llround, 4503599627370495.5000000000001L, 4503599627370496LL); - TEST_f_L (llround, 4503599627370496.5000000000001L, 4503599627370497LL); - - TEST_f_L (llround, -4503599627370495.4999999999999L, -4503599627370495LL); - TEST_f_L (llround, -4503599627370496.4999999999999L, -4503599627370496LL); - TEST_f_L (llround, -4503599627370497.4999999999999L, -4503599627370497LL); - TEST_f_L (llround, -4503599627370494.5000000000001L, -4503599627370495LL); - TEST_f_L (llround, -4503599627370495.5000000000001L, -4503599627370496LL); - TEST_f_L (llround, -4503599627370496.5000000000001L, -4503599627370497LL); -# endif - - TEST_f_L (llround, -4503599627370495.5L, -4503599627370496LL); - TEST_f_L (llround, -4503599627370496.25L, -4503599627370496LL); - TEST_f_L (llround, -4503599627370496.5L, -4503599627370497LL); - TEST_f_L (llround, -4503599627370496.75L, -4503599627370497LL); - TEST_f_L (llround, -4503599627370497.5L, -4503599627370498LL); - - TEST_f_L (llround, 9007199254740991.5L, 9007199254740992LL); - TEST_f_L (llround, 9007199254740992.25L, 9007199254740992LL); - TEST_f_L (llround, 9007199254740992.5L, 9007199254740993LL); - TEST_f_L (llround, 9007199254740992.75L, 9007199254740993LL); - TEST_f_L (llround, 9007199254740993.5L, 9007199254740994LL); - -# if LDBL_MANT_DIG > 100 - TEST_f_L (llround, 9007199254740991.4999999999999L, 9007199254740991LL); - TEST_f_L (llround, 9007199254740992.4999999999999L, 9007199254740992LL); - TEST_f_L (llround, 9007199254740993.4999999999999L, 9007199254740993LL); - TEST_f_L (llround, 9007199254740991.5000000000001L, 9007199254740992LL); - TEST_f_L (llround, 9007199254740992.5000000000001L, 9007199254740993LL); - TEST_f_L (llround, 9007199254740993.5000000000001L, 9007199254740994LL); - - TEST_f_L (llround, -9007199254740991.4999999999999L, -9007199254740991LL); - TEST_f_L (llround, -9007199254740992.4999999999999L, -9007199254740992LL); - TEST_f_L (llround, -9007199254740993.4999999999999L, -9007199254740993LL); - TEST_f_L (llround, -9007199254740991.5000000000001L, -9007199254740992LL); - TEST_f_L (llround, -9007199254740992.5000000000001L, -9007199254740993LL); - TEST_f_L (llround, -9007199254740993.5000000000001L, -9007199254740994LL); -# endif - - TEST_f_L (llround, -9007199254740991.5L, -9007199254740992LL); - TEST_f_L (llround, -9007199254740992.25L, -9007199254740992LL); - TEST_f_L (llround, -9007199254740992.5L, -9007199254740993LL); - TEST_f_L (llround, -9007199254740992.75L, -9007199254740993LL); - TEST_f_L (llround, -9007199254740993.5L, -9007199254740994LL); - - TEST_f_L (llround, 72057594037927935.5L, 72057594037927936LL); - TEST_f_L (llround, 72057594037927936.25L, 72057594037927936LL); - TEST_f_L (llround, 72057594037927936.5L, 72057594037927937LL); - TEST_f_L (llround, 72057594037927936.75L, 72057594037927937LL); - TEST_f_L (llround, 72057594037927937.5L, 72057594037927938LL); - - TEST_f_L (llround, -72057594037927935.5L, -72057594037927936LL); - TEST_f_L (llround, -72057594037927936.25L, -72057594037927936LL); - TEST_f_L (llround, -72057594037927936.5L, -72057594037927937LL); - TEST_f_L (llround, -72057594037927936.75L, -72057594037927937LL); - TEST_f_L (llround, -72057594037927937.5L, -72057594037927938LL); - - TEST_f_L (llround, 9223372036854775806.25L, 9223372036854775806LL); - TEST_f_L (llround, -9223372036854775806.25L, -9223372036854775806LL); - TEST_f_L (llround, 9223372036854775806.5L, 9223372036854775807LL); - TEST_f_L (llround, -9223372036854775806.5L, -9223372036854775807LL); - TEST_f_L (llround, 9223372036854775807.0L, 9223372036854775807LL); - TEST_f_L (llround, -9223372036854775807.0L, -9223372036854775807LL); -#endif - END (llround); } @@ -4619,17 +3590,6 @@ pow_test (void) /* pow (x, NaN) == NaN. */ TEST_ff_f (pow, 3.0, nan_value, nan_value); - TEST_ff_f (pow, minus_zero, nan_value, nan_value); - TEST_ff_f (pow, plus_infty, nan_value, nan_value); - TEST_ff_f (pow, -3.0, nan_value, nan_value); - TEST_ff_f (pow, minus_infty, nan_value, nan_value); - - TEST_ff_f (pow, nan_value, 3.0, nan_value); - TEST_ff_f (pow, nan_value, -3.0, nan_value); - TEST_ff_f (pow, nan_value, plus_infty, nan_value); - TEST_ff_f (pow, nan_value, minus_infty, nan_value); - TEST_ff_f (pow, nan_value, 2.5, nan_value); - TEST_ff_f (pow, nan_value, -2.5, nan_value); TEST_ff_f (pow, 1, plus_infty, 1); TEST_ff_f (pow, -1, plus_infty, 1); @@ -4830,367 +3790,11 @@ rint_test (void) TEST_f_f (rint, -2.5, -2.0); TEST_f_f (rint, -3.5, -4.0); TEST_f_f (rint, -4.5, -4.0); - TEST_f_f (rint, 0.1, 0.0); - TEST_f_f (rint, 0.25, 0.0); - TEST_f_f (rint, 0.625, 1.0); - TEST_f_f (rint, -0.1, -0.0); - TEST_f_f (rint, -0.25, -0.0); - TEST_f_f (rint, -0.625, -1.0); -#ifdef TEST_LDOUBLE - /* The result can only be represented in long double. */ - TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L); - TEST_f_f (rint, 4503599627370496.25L, 4503599627370496.0L); - TEST_f_f (rint, 4503599627370496.5L, 4503599627370496.0L); - TEST_f_f (rint, 4503599627370496.75L, 4503599627370497.0L); - TEST_f_f (rint, 4503599627370497.5L, 4503599627370498.0L); - -# if LDBL_MANT_DIG > 100 - TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370495.0L); - TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370496.0L); - TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370497.0L); -# endif - - TEST_f_f (rint, -4503599627370495.5L, -4503599627370496.0L); - TEST_f_f (rint, -4503599627370496.25L, -4503599627370496.0L); - TEST_f_f (rint, -4503599627370496.5L, -4503599627370496.0L); - TEST_f_f (rint, -4503599627370496.75L, -4503599627370497.0L); - TEST_f_f (rint, -4503599627370497.5L, -4503599627370498.0L); - -# if LDBL_MANT_DIG > 100 - TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370495.0L); - TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370496.0L); - TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370497.0L); - - TEST_f_f (rint, 9007199254740991.0000000000001L, 9007199254740991.0L); - TEST_f_f (rint, 9007199254740992.0000000000001L, 9007199254740992.0L); - TEST_f_f (rint, 9007199254740993.0000000000001L, 9007199254740993.0L); - TEST_f_f (rint, 9007199254740991.5000000000001L, 9007199254740992.0L); - TEST_f_f (rint, 9007199254740992.5000000000001L, 9007199254740993.0L); - TEST_f_f (rint, 9007199254740993.5000000000001L, 9007199254740994.0L); - - TEST_f_f (rint, -9007199254740991.0000000000001L, -9007199254740991.0L); - TEST_f_f (rint, -9007199254740992.0000000000001L, -9007199254740992.0L); - TEST_f_f (rint, -9007199254740993.0000000000001L, -9007199254740993.0L); - TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740992.0L); - TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740993.0L); - TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740994.0L); -# endif - - TEST_f_f (rint, 9007199254740991.5L, 9007199254740992.0L); - TEST_f_f (rint, 9007199254740992.25L, 9007199254740992.0L); - TEST_f_f (rint, 9007199254740992.5L, 9007199254740992.0L); - TEST_f_f (rint, 9007199254740992.75L, 9007199254740993.0L); - TEST_f_f (rint, 9007199254740993.5L, 9007199254740994.0L); - - TEST_f_f (rint, -9007199254740991.5L, -9007199254740992.0L); - TEST_f_f (rint, -9007199254740992.25L, -9007199254740992.0L); - TEST_f_f (rint, -9007199254740992.5L, -9007199254740992.0L); - TEST_f_f (rint, -9007199254740992.75L, -9007199254740993.0L); - TEST_f_f (rint, -9007199254740993.5L, -9007199254740994.0L); - - TEST_f_f (rint, 72057594037927935.5L, 72057594037927936.0L); - TEST_f_f (rint, 72057594037927936.25L, 72057594037927936.0L); - TEST_f_f (rint, 72057594037927936.5L, 72057594037927936.0L); - TEST_f_f (rint, 72057594037927936.75L, 72057594037927937.0L); - TEST_f_f (rint, 72057594037927937.5L, 72057594037927938.0L); - - TEST_f_f (rint, -72057594037927935.5L, -72057594037927936.0L); - TEST_f_f (rint, -72057594037927936.25L, -72057594037927936.0L); - TEST_f_f (rint, -72057594037927936.5L, -72057594037927936.0L); - TEST_f_f (rint, -72057594037927936.75L, -72057594037927937.0L); - TEST_f_f (rint, -72057594037927937.5L, -72057594037927938.0L); - - TEST_f_f (rint, 10141204801825835211973625643007.5L, 10141204801825835211973625643008.0L); - TEST_f_f (rint, 10141204801825835211973625643008.25L, 10141204801825835211973625643008.0L); - TEST_f_f (rint, 10141204801825835211973625643008.5L, 10141204801825835211973625643008.0L); - TEST_f_f (rint, 10141204801825835211973625643008.75L, 10141204801825835211973625643009.0L); - TEST_f_f (rint, 10141204801825835211973625643009.5L, 10141204801825835211973625643010.0L); -#endif END (rint); } static void -rint_test_tonearest (void) -{ - int save_round_mode; - START (rint_tonearest); - - save_round_mode = fegetround (); - - if (!fesetround (FE_TONEAREST)) - { - TEST_f_f (rint, 2.0, 2.0); - TEST_f_f (rint, 1.5, 2.0); - TEST_f_f (rint, 1.0, 1.0); - TEST_f_f (rint, 0.5, 0.0); - TEST_f_f (rint, 0.0, 0.0); - TEST_f_f (rint, minus_zero, minus_zero); - TEST_f_f (rint, -0.5, -0.0); - TEST_f_f (rint, -1.0, -1.0); - TEST_f_f (rint, -1.5, -2.0); - TEST_f_f (rint, -2.0, -2.0); - TEST_f_f (rint, 0.1, 0.0); - TEST_f_f (rint, 0.25, 0.0); - TEST_f_f (rint, 0.625, 1.0); - TEST_f_f (rint, -0.1, -0.0); - TEST_f_f (rint, -0.25, -0.0); - TEST_f_f (rint, -0.625, -1.0); -#ifdef TEST_LDOUBLE - /* The result can only be represented in long double. */ - TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L); - TEST_f_f (rint, 4503599627370496.25L, 4503599627370496.0L); - TEST_f_f (rint, 4503599627370496.5L, 4503599627370496.0L); - TEST_f_f (rint, 4503599627370496.75L, 4503599627370497.0L); - TEST_f_f (rint, 4503599627370497.5L, 4503599627370498.0L); -# if LDBL_MANT_DIG > 100 - TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370495.0L); - TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370496.0L); - TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370497.0L); -# endif - TEST_f_f (rint, -4503599627370495.5L, -4503599627370496.0L); - TEST_f_f (rint, -4503599627370496.25L, -4503599627370496.0L); - TEST_f_f (rint, -4503599627370496.5L, -4503599627370496.0L); - TEST_f_f (rint, -4503599627370496.75L, -4503599627370497.0L); - TEST_f_f (rint, -4503599627370497.5L, -4503599627370498.0L); -# if LDBL_MANT_DIG > 100 - TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370495.0L); - TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370496.0L); - TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370497.0L); - - TEST_f_f (rint, 9007199254740991.0000000000001L, 9007199254740991.0L); - TEST_f_f (rint, 9007199254740992.0000000000001L, 9007199254740992.0L); - TEST_f_f (rint, 9007199254740993.0000000000001L, 9007199254740993.0L); - TEST_f_f (rint, 9007199254740991.5000000000001L, 9007199254740992.0L); - TEST_f_f (rint, 9007199254740992.5000000000001L, 9007199254740993.0L); - TEST_f_f (rint, 9007199254740993.5000000000001L, 9007199254740994.0L); - - TEST_f_f (rint, -9007199254740991.0000000000001L, -9007199254740991.0L); - TEST_f_f (rint, -9007199254740992.0000000000001L, -9007199254740992.0L); - TEST_f_f (rint, -9007199254740993.0000000000001L, -9007199254740993.0L); - TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740992.0L); - TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740993.0L); - TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740994.0L); -# endif -#endif - } - - fesetround (save_round_mode); - - END (rint_tonearest); -} - -static void -rint_test_towardzero (void) -{ - int save_round_mode; - START (rint_towardzero); - - save_round_mode = fegetround (); - - if (!fesetround (FE_TOWARDZERO)) - { - TEST_f_f (rint, 2.0, 2.0); - TEST_f_f (rint, 1.5, 1.0); - TEST_f_f (rint, 1.0, 1.0); - TEST_f_f (rint, 0.5, 0.0); - TEST_f_f (rint, 0.0, 0.0); - TEST_f_f (rint, minus_zero, minus_zero); - TEST_f_f (rint, -0.5, -0.0); - TEST_f_f (rint, -1.0, -1.0); - TEST_f_f (rint, -1.5, -1.0); - TEST_f_f (rint, -2.0, -2.0); - TEST_f_f (rint, 0.1, 0.0); - TEST_f_f (rint, 0.25, 0.0); - TEST_f_f (rint, 0.625, 0.0); - TEST_f_f (rint, -0.1, -0.0); - TEST_f_f (rint, -0.25, -0.0); - TEST_f_f (rint, -0.625, -0.0); -#ifdef TEST_LDOUBLE - /* The result can only be represented in long double. */ - TEST_f_f (rint, 4503599627370495.5L, 4503599627370495.0L); - TEST_f_f (rint, 4503599627370496.25L, 4503599627370496.0L); - TEST_f_f (rint, 4503599627370496.5L, 4503599627370496.0L); - TEST_f_f (rint, 4503599627370496.75L, 4503599627370496.0L); - TEST_f_f (rint, 4503599627370497.5L, 4503599627370497.0L); -# if LDBL_MANT_DIG > 100 - TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370494.0L); - TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370495.0L); - TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370496.0L); -# endif - TEST_f_f (rint, -4503599627370495.5L, -4503599627370495.0L); - TEST_f_f (rint, -4503599627370496.25L, -4503599627370496.0L); - TEST_f_f (rint, -4503599627370496.5L, -4503599627370496.0L); - TEST_f_f (rint, -4503599627370496.75L, -4503599627370496.0L); - TEST_f_f (rint, -4503599627370497.5L, -4503599627370497.0L); -# if LDBL_MANT_DIG > 100 - TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370494.0L); - TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370495.0L); - TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370496.0L); - - TEST_f_f (rint, 9007199254740991.0000000000001L, 9007199254740991.0L); - TEST_f_f (rint, 9007199254740992.0000000000001L, 9007199254740992.0L); - TEST_f_f (rint, 9007199254740993.0000000000001L, 9007199254740993.0L); - TEST_f_f (rint, 9007199254740991.5000000000001L, 9007199254740991.0L); - TEST_f_f (rint, 9007199254740992.5000000000001L, 9007199254740992.0L); - TEST_f_f (rint, 9007199254740993.5000000000001L, 9007199254740993.0L); - - TEST_f_f (rint, -9007199254740991.0000000000001L, -9007199254740991.0L); - TEST_f_f (rint, -9007199254740992.0000000000001L, -9007199254740992.0L); - TEST_f_f (rint, -9007199254740993.0000000000001L, -9007199254740993.0L); - TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740991.0L); - TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740992.0L); - TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740993.0L); -# endif -#endif - } - - fesetround (save_round_mode); - - END (rint_towardzero); -} - -static void -rint_test_downward (void) -{ - int save_round_mode; - START (rint_downward); - - save_round_mode = fegetround (); - - if (!fesetround (FE_DOWNWARD)) - { - TEST_f_f (rint, 2.0, 2.0); - TEST_f_f (rint, 1.5, 1.0); - TEST_f_f (rint, 1.0, 1.0); - TEST_f_f (rint, 0.5, 0.0); - TEST_f_f (rint, 0.0, 0.0); - TEST_f_f (rint, minus_zero, minus_zero); - TEST_f_f (rint, -0.5, -1.0); - TEST_f_f (rint, -1.0, -1.0); - TEST_f_f (rint, -1.5, -2.0); - TEST_f_f (rint, -2.0, -2.0); - TEST_f_f (rint, 0.1, 0.0); - TEST_f_f (rint, 0.25, 0.0); - TEST_f_f (rint, 0.625, 0.0); - TEST_f_f (rint, -0.1, -1.0); - TEST_f_f (rint, -0.25, -1.0); - TEST_f_f (rint, -0.625, -1.0); -#ifdef TEST_LDOUBLE - /* The result can only be represented in long double. */ - TEST_f_f (rint, 4503599627370495.5L, 4503599627370495.0L); - TEST_f_f (rint, 4503599627370496.25L, 4503599627370496.0L); - TEST_f_f (rint, 4503599627370496.5L, 4503599627370496.0L); - TEST_f_f (rint, 4503599627370496.75L, 4503599627370496.0L); - TEST_f_f (rint, 4503599627370497.5L, 4503599627370497.0L); -# if LDBL_MANT_DIG > 100 - TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370494.0L); - TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370495.0L); - TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370496.0L); -# endif - TEST_f_f (rint, -4503599627370495.5L, -4503599627370496.0L); - TEST_f_f (rint, -4503599627370496.25L, -4503599627370497.0L); - TEST_f_f (rint, -4503599627370496.5L, -4503599627370497.0L); - TEST_f_f (rint, -4503599627370496.75L, -4503599627370497.0L); - TEST_f_f (rint, -4503599627370497.5L, -4503599627370498.0L); -# if LDBL_MANT_DIG > 100 - TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370495.0L); - TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370496.0L); - TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370497.0L); - - TEST_f_f (rint, 9007199254740991.0000000000001L, 9007199254740991.0L); - TEST_f_f (rint, 9007199254740992.0000000000001L, 9007199254740992.0L); - TEST_f_f (rint, 9007199254740993.0000000000001L, 9007199254740993.0L); - TEST_f_f (rint, 9007199254740991.5000000000001L, 9007199254740991.0L); - TEST_f_f (rint, 9007199254740992.5000000000001L, 9007199254740992.0L); - TEST_f_f (rint, 9007199254740993.5000000000001L, 9007199254740993.0L); - - TEST_f_f (rint, -9007199254740991.0000000000001L, -9007199254740992.0L); - TEST_f_f (rint, -9007199254740992.0000000000001L, -9007199254740993.0L); - TEST_f_f (rint, -9007199254740993.0000000000001L, -9007199254740994.0L); - TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740992.0L); - TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740993.0L); - TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740994.0L); -# endif -#endif - } - - fesetround (save_round_mode); - - END (rint_downward); -} - -static void -rint_test_upward (void) -{ - int save_round_mode; - START (rint_upward); - - save_round_mode = fegetround (); - - if (!fesetround (FE_UPWARD)) - { - TEST_f_f (rint, 2.0, 2.0); - TEST_f_f (rint, 1.5, 2.0); - TEST_f_f (rint, 1.0, 1.0); - TEST_f_f (rint, 0.5, 1.0); - TEST_f_f (rint, 0.0, 0.0); - TEST_f_f (rint, minus_zero, minus_zero); - TEST_f_f (rint, -0.5, -0.0); - TEST_f_f (rint, -1.0, -1.0); - TEST_f_f (rint, -1.5, -1.0); - TEST_f_f (rint, -2.0, -2.0); - TEST_f_f (rint, 0.1, 1.0); - TEST_f_f (rint, 0.25, 1.0); - TEST_f_f (rint, 0.625, 1.0); - TEST_f_f (rint, -0.1, -0.0); - TEST_f_f (rint, -0.25, -0.0); - TEST_f_f (rint, -0.625, -0.0); -#ifdef TEST_LDOUBLE - /* The result can only be represented in long double. */ - TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L); - TEST_f_f (rint, 4503599627370496.25L, 4503599627370497.0L); - TEST_f_f (rint, 4503599627370496.5L, 4503599627370497.0L); - TEST_f_f (rint, 4503599627370496.75L, 4503599627370497.0L); - TEST_f_f (rint, 4503599627370497.5L, 4503599627370498.0L); -# if LDBL_MANT_DIG > 100 - TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370495.0L); - TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370496.0L); - TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370497.0L); -# endif - TEST_f_f (rint, -4503599627370495.5L, -4503599627370495.0L); - TEST_f_f (rint, -4503599627370496.25L, -4503599627370496.0L); - TEST_f_f (rint, -4503599627370496.5L, -4503599627370496.0L); - TEST_f_f (rint, -4503599627370496.75L, -4503599627370496.0L); - TEST_f_f (rint, -4503599627370497.5L, -4503599627370497.0L); -# if LDBL_MANT_DIG > 100 - TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370494.0L); - TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370495.0L); - TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370496.0L); - - TEST_f_f (rint, 9007199254740991.0000000000001L, 9007199254740992.0L); - TEST_f_f (rint, 9007199254740992.0000000000001L, 9007199254740993.0L); - TEST_f_f (rint, 9007199254740993.0000000000001L, 9007199254740994.0L); - TEST_f_f (rint, 9007199254740991.5000000000001L, 9007199254740992.0L); - TEST_f_f (rint, 9007199254740992.5000000000001L, 9007199254740993.0L); - TEST_f_f (rint, 9007199254740993.5000000000001L, 9007199254740994.0L); - - TEST_f_f (rint, -9007199254740991.0000000000001L, -9007199254740991.0L); - TEST_f_f (rint, -9007199254740992.0000000000001L, -9007199254740992.0L); - TEST_f_f (rint, -9007199254740993.0000000000001L, -9007199254740993.0L); - TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740991.0L); - TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740992.0L); - TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740993.0L); -# endif -#endif - } - - fesetround (save_round_mode); - - END (rint_upward); -} - -static void round_test (void) { START (round); @@ -5205,86 +3809,9 @@ round_test (void) TEST_f_f (round, -0.8L, -1.0); TEST_f_f (round, 1.5, 2.0); TEST_f_f (round, -1.5, -2.0); - TEST_f_f (round, 0.1, 0.0); - TEST_f_f (round, 0.25, 0.0); - TEST_f_f (round, 0.625, 1.0); - TEST_f_f (round, -0.1, -0.0); - TEST_f_f (round, -0.25, -0.0); - TEST_f_f (round, -0.625, -1.0); TEST_f_f (round, 2097152.5, 2097153); TEST_f_f (round, -2097152.5, -2097153); -#ifdef TEST_LDOUBLE - /* The result can only be represented in long double. */ - TEST_f_f (round, 4503599627370495.5L, 4503599627370496.0L); - TEST_f_f (round, 4503599627370496.25L, 4503599627370496.0L); - TEST_f_f (round, 4503599627370496.5L, 4503599627370497.0L); - TEST_f_f (round, 4503599627370496.75L, 4503599627370497.0L); - TEST_f_f (round, 4503599627370497.5L, 4503599627370498.0L); -# if LDBL_MANT_DIG > 100 - TEST_f_f (round, 4503599627370494.5000000000001L, 4503599627370495.0L); - TEST_f_f (round, 4503599627370495.5000000000001L, 4503599627370496.0L); - TEST_f_f (round, 4503599627370496.5000000000001L, 4503599627370497.0L); -# endif - - TEST_f_f (round, -4503599627370495.5L, -4503599627370496.0L); - TEST_f_f (round, -4503599627370496.25L, -4503599627370496.0L); - TEST_f_f (round, -4503599627370496.5L, -4503599627370497.0L); - TEST_f_f (round, -4503599627370496.75L, -4503599627370497.0L); - TEST_f_f (round, -4503599627370497.5L, -4503599627370498.0L); -# if LDBL_MANT_DIG > 100 - TEST_f_f (round, -4503599627370494.5000000000001L, -4503599627370495.0L); - TEST_f_f (round, -4503599627370495.5000000000001L, -4503599627370496.0L); - TEST_f_f (round, -4503599627370496.5000000000001L, -4503599627370497.0L); -# endif - - TEST_f_f (round, 9007199254740991.5L, 9007199254740992.0L); - TEST_f_f (round, 9007199254740992.25L, 9007199254740992.0L); - TEST_f_f (round, 9007199254740992.5L, 9007199254740993.0L); - TEST_f_f (round, 9007199254740992.75L, 9007199254740993.0L); - TEST_f_f (round, 9007199254740993.5L, 9007199254740994.0L); - - TEST_f_f (round, -9007199254740991.5L, -9007199254740992.0L); - TEST_f_f (round, -9007199254740992.25L, -9007199254740992.0L); - TEST_f_f (round, -9007199254740992.5L, -9007199254740993.0L); - TEST_f_f (round, -9007199254740992.75L, -9007199254740993.0L); - TEST_f_f (round, -9007199254740993.5L, -9007199254740994.0L); - -# if LDBL_MANT_DIG > 100 - TEST_f_f (round, 9007199254740991.0000000000001L, 9007199254740991.0L); - TEST_f_f (round, 9007199254740992.0000000000001L, 9007199254740992.0L); - TEST_f_f (round, 9007199254740993.0000000000001L, 9007199254740993.0L); - TEST_f_f (round, 9007199254740991.5000000000001L, 9007199254740992.0L); - TEST_f_f (round, 9007199254740992.5000000000001L, 9007199254740993.0L); - TEST_f_f (round, 9007199254740993.5000000000001L, 9007199254740994.0L); - - TEST_f_f (round, -9007199254740991.0000000000001L, -9007199254740991.0L); - TEST_f_f (round, -9007199254740992.0000000000001L, -9007199254740992.0L); - TEST_f_f (round, -9007199254740993.0000000000001L, -9007199254740993.0L); - TEST_f_f (round, -9007199254740991.5000000000001L, -9007199254740992.0L); - TEST_f_f (round, -9007199254740992.5000000000001L, -9007199254740993.0L); - TEST_f_f (round, -9007199254740993.5000000000001L, -9007199254740994.0L); -# endif - - TEST_f_f (round, 72057594037927935.5L, 72057594037927936.0L); - TEST_f_f (round, 72057594037927936.25L, 72057594037927936.0L); - TEST_f_f (round, 72057594037927936.5L, 72057594037927937.0L); - TEST_f_f (round, 72057594037927936.75L, 72057594037927937.0L); - TEST_f_f (round, 72057594037927937.5L, 72057594037927938.0L); - - TEST_f_f (round, -72057594037927935.5L, -72057594037927936.0L); - TEST_f_f (round, -72057594037927936.25L, -72057594037927936.0L); - TEST_f_f (round, -72057594037927936.5L, -72057594037927937.0L); - TEST_f_f (round, -72057594037927936.75L, -72057594037927937.0L); - TEST_f_f (round, -72057594037927937.5L, -72057594037927938.0L); - - TEST_f_f (round, 10141204801825835211973625643007.5L, 10141204801825835211973625643008.0L); - TEST_f_f (round, 10141204801825835211973625643008.25L, 10141204801825835211973625643008.0L); - TEST_f_f (round, 10141204801825835211973625643008.5L, 10141204801825835211973625643009.0L); - TEST_f_f (round, 10141204801825835211973625643008.75L, 10141204801825835211973625643009.0L); - TEST_f_f (round, 10141204801825835211973625643009.5L, 10141204801825835211973625643010.0L); -#endif - END (round); } @@ -5636,11 +4163,7 @@ trunc_test (void) TEST_f_f (trunc, 0, 0); TEST_f_f (trunc, minus_zero, minus_zero); - TEST_f_f (trunc, 0.1, 0); - TEST_f_f (trunc, 0.25, 0); TEST_f_f (trunc, 0.625, 0); - TEST_f_f (trunc, -0.1, minus_zero); - TEST_f_f (trunc, -0.25, minus_zero); TEST_f_f (trunc, -0.625, minus_zero); TEST_f_f (trunc, 1, 1); TEST_f_f (trunc, -1, -1); @@ -5656,80 +4179,6 @@ trunc_test (void) TEST_f_f (trunc, 4294967296.625L, 4294967296.0L); TEST_f_f (trunc, -4294967296.625L, -4294967296.0L); -#ifdef TEST_LDOUBLE - /* The result can only be represented in long double. */ - TEST_f_f (trunc, 4503599627370495.5L, 4503599627370495.0L); - TEST_f_f (trunc, 4503599627370496.25L, 4503599627370496.0L); - TEST_f_f (trunc, 4503599627370496.5L, 4503599627370496.0L); - TEST_f_f (trunc, 4503599627370496.75L, 4503599627370496.0L); - TEST_f_f (trunc, 4503599627370497.5L, 4503599627370497.0L); - -# if LDBL_MANT_DIG > 100 - TEST_f_f (trunc, 4503599627370494.5000000000001L, 4503599627370494.0L); - TEST_f_f (trunc, 4503599627370495.5000000000001L, 4503599627370495.0L); - TEST_f_f (trunc, 4503599627370496.5000000000001L, 4503599627370496.0L); -# endif - - TEST_f_f (trunc, -4503599627370495.5L, -4503599627370495.0L); - TEST_f_f (trunc, -4503599627370496.25L, -4503599627370496.0L); - TEST_f_f (trunc, -4503599627370496.5L, -4503599627370496.0L); - TEST_f_f (trunc, -4503599627370496.75L, -4503599627370496.0L); - TEST_f_f (trunc, -4503599627370497.5L, -4503599627370497.0L); - -# if LDBL_MANT_DIG > 100 - TEST_f_f (trunc, -4503599627370494.5000000000001L, -4503599627370494.0L); - TEST_f_f (trunc, -4503599627370495.5000000000001L, -4503599627370495.0L); - TEST_f_f (trunc, -4503599627370496.5000000000001L, -4503599627370496.0L); -# endif - - TEST_f_f (trunc, 9007199254740991.5L, 9007199254740991.0L); - TEST_f_f (trunc, 9007199254740992.25L, 9007199254740992.0L); - TEST_f_f (trunc, 9007199254740992.5L, 9007199254740992.0L); - TEST_f_f (trunc, 9007199254740992.75L, 9007199254740992.0L); - TEST_f_f (trunc, 9007199254740993.5L, 9007199254740993.0L); - -# if LDBL_MANT_DIG > 100 - TEST_f_f (trunc, 9007199254740991.0000000000001L, 9007199254740991.0L); - TEST_f_f (trunc, 9007199254740992.0000000000001L, 9007199254740992.0L); - TEST_f_f (trunc, 9007199254740993.0000000000001L, 9007199254740993.0L); - TEST_f_f (trunc, 9007199254740991.5000000000001L, 9007199254740991.0L); - TEST_f_f (trunc, 9007199254740992.5000000000001L, 9007199254740992.0L); - TEST_f_f (trunc, 9007199254740993.5000000000001L, 9007199254740993.0L); -# endif - - TEST_f_f (trunc, -9007199254740991.5L, -9007199254740991.0L); - TEST_f_f (trunc, -9007199254740992.25L, -9007199254740992.0L); - TEST_f_f (trunc, -9007199254740992.5L, -9007199254740992.0L); - TEST_f_f (trunc, -9007199254740992.75L, -9007199254740992.0L); - TEST_f_f (trunc, -9007199254740993.5L, -9007199254740993.0L); - -# if LDBL_MANT_DIG > 100 - TEST_f_f (trunc, -9007199254740991.0000000000001L, -9007199254740991.0L); - TEST_f_f (trunc, -9007199254740992.0000000000001L, -9007199254740992.0L); - TEST_f_f (trunc, -9007199254740993.0000000000001L, -9007199254740993.0L); - TEST_f_f (trunc, -9007199254740991.5000000000001L, -9007199254740991.0L); - TEST_f_f (trunc, -9007199254740992.5000000000001L, -9007199254740992.0L); - TEST_f_f (trunc, -9007199254740993.5000000000001L, -9007199254740993.0L); -# endif - - TEST_f_f (trunc, 72057594037927935.5L, 72057594037927935.0L); - TEST_f_f (trunc, 72057594037927936.25L, 72057594037927936.0L); - TEST_f_f (trunc, 72057594037927936.5L, 72057594037927936.0L); - TEST_f_f (trunc, 72057594037927936.75L, 72057594037927936.0L); - TEST_f_f (trunc, 72057594037927937.5L, 72057594037927937.0L); - - TEST_f_f (trunc, -72057594037927935.5L, -72057594037927935.0L); - TEST_f_f (trunc, -72057594037927936.25L, -72057594037927936.0L); - TEST_f_f (trunc, -72057594037927936.5L, -72057594037927936.0L); - TEST_f_f (trunc, -72057594037927936.75L, -72057594037927936.0L); - TEST_f_f (trunc, -72057594037927937.5L, -72057594037927937.0L); - - TEST_f_f (trunc, 10141204801825835211973625643007.5L, 10141204801825835211973625643007.0L); - TEST_f_f (trunc, 10141204801825835211973625643008.25L, 10141204801825835211973625643008.0L); - TEST_f_f (trunc, 10141204801825835211973625643008.5L, 10141204801825835211973625643008.0L); - TEST_f_f (trunc, 10141204801825835211973625643008.75L, 10141204801825835211973625643008.0L); - TEST_f_f (trunc, 10141204801825835211973625643009.5L, 10141204801825835211973625643009.0L); -#endif END (trunc); } @@ -6108,20 +4557,8 @@ main (int argc, char **argv) floor_test (); nearbyint_test (); rint_test (); - rint_test_tonearest (); - rint_test_towardzero (); - rint_test_downward (); - rint_test_upward (); lrint_test (); - lrint_test_tonearest (); - lrint_test_towardzero (); - lrint_test_downward (); - lrint_test_upward (); llrint_test (); - llrint_test_tonearest (); - llrint_test_towardzero (); - llrint_test_downward (); - llrint_test_upward (); round_test (); lround_test (); llround_test (); diff --git a/math/math.h b/math/math.h index c50b2e7b07..7f8a4815f4 100644 --- a/math/math.h +++ b/math/math.h @@ -1,6 +1,5 @@ /* Declarations for math functions. - Copyright (C) 1991-1993, 1995-1999, 2001, 2002, 2004, 2006 - Free Software Foundation, Inc. + Copyright (C) 1991-1993,1995-1999,2001,2002,2004 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 @@ -97,36 +96,10 @@ __BEGIN_DECLS # undef _Mdouble_END_NAMESPACE # undef __MATH_PRECNAME -# if (__STDC__ - 0 || __GNUC__ - 0) \ - && (!defined __NO_LONG_DOUBLE_MATH || defined __LDBL_COMPAT) -# ifdef __LDBL_COMPAT - -# ifdef __USE_ISOC99 -extern float __nldbl_nexttowardf (float __x, long double __y) - __THROW __attribute__ ((__const__)); -# ifdef __REDIRECT_NTH -extern float __REDIRECT_NTH (nexttowardf, (float __x, long double __y), - __nldbl_nexttowardf) - __attribute__ ((__const__)); -extern double __REDIRECT_NTH (nexttoward, (double __x, long double __y), - nextafter) __attribute__ ((__const__)); -extern long double __REDIRECT_NTH (nexttowardl, - (long double __x, long double __y), - nextafter) __attribute__ ((__const__)); -# endif -# endif - +# if (__STDC__ - 0 || __GNUC__ - 0) && !defined __NO_LONG_DOUBLE_MATH /* Include the file of declarations again, this time using `long double' instead of `double' and appending l to each function name. */ -# undef __MATHDECL_1 -# define __MATHDECL_2(type, function,suffix, args, alias) \ - extern type __REDIRECT_NTH(__MATH_PRECNAME(function,suffix), \ - args, alias) -# define __MATHDECL_1(type, function,suffix, args) \ - __MATHDECL_2(type, function,suffix, args, __CONCAT(function,suffix)) -# endif - # ifndef _Mlong_double_ # define _Mlong_double_ long double # endif diff --git a/math/math_private.h b/math/math_private.h index 129646f8c5..f545841df0 100644 --- a/math/math_private.h +++ b/math/math_private.h @@ -11,6 +11,7 @@ /* * from: @(#)fdlibm.h 5.1 93/09/24 + * $Id$ */ #ifndef _MATH_PRIVATE_H_ @@ -191,10 +192,6 @@ extern int __kernel_rem_pio2 (double*,double*,int,int,int, const int32_t*); /* internal functions. */ extern double __copysign (double x, double __y); -#if __GNUC_PREREQ (4, 0) -extern inline double __copysign (double x, double y) -{ return __builtin_copysign (x, y); } -#endif /* ieee style elementary float functions */ extern float __ieee754_sqrtf (float); @@ -238,10 +235,6 @@ extern int __kernel_rem_pio2f (float*,float*,int,int,int, const int32_t*); /* internal functions. */ extern float __copysignf (float x, float __y); -#if __GNUC_PREREQ (4, 0) -extern inline float __copysignf (float x, float y) -{ return __builtin_copysignf (x, y); } -#endif /* ieee style elementary long double functions */ extern long double __ieee754_sqrtl (long double); @@ -305,12 +298,6 @@ extern long double fabsl (long double x); extern void __sincosl (long double, long double *, long double *); extern long double __logbl (long double x); extern long double __significandl (long double x); - -#if __GNUC_PREREQ (4, 0) -extern inline long double __copysignl (long double x, long double y) -{ return __builtin_copysignl (x, y); } -#endif - #endif /* Prototypes for functions of the IBM Accurate Mathematical Library. */ @@ -332,10 +319,4 @@ extern double __slowexp (double __x); extern double __slowpow (double __x, double __y, double __z); extern void __docos (double __x, double __dx, double __v[]); -#ifndef math_opt_barrier -#define math_opt_barrier(x) \ -({ __typeof (x) __x = x; __asm ("" : "+m" (__x)); __x; }) -#define math_force_eval(x) __asm __volatile ("" : : "m" (x)) -#endif - #endif /* _MATH_PRIVATE_H_ */ diff --git a/math/multc3.c b/math/multc3.c deleted file mode 100644 index 6369f48f24..0000000000 --- a/math/multc3.c +++ /dev/null @@ -1,80 +0,0 @@ -/* Copyright (C) 2005, 2006 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Richard Henderson <rth@redhat.com>, 2005. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <stdbool.h> -#include <math.h> -#include <complex.h> - -attribute_hidden -long double _Complex -__multc3 (long double a, long double b, long double c, long double d) -{ - long double ac, bd, ad, bc, x, y; - - ac = a * c; - bd = b * d; - ad = a * d; - bc = b * c; - - x = ac - bd; - y = ad + bc; - - if (isnan (x) && isnan (y)) - { - /* Recover infinities that computed as NaN + iNaN. */ - bool recalc = 0; - if (isinf (a) || isinf (b)) - { - /* z is infinite. "Box" the infinity and change NaNs in - the other factor to 0. */ - a = __copysignl (isinf (a) ? 1 : 0, a); - b = __copysignl (isinf (b) ? 1 : 0, b); - if (isnan (c)) c = __copysignl (0, c); - if (isnan (d)) d = __copysignl (0, d); - recalc = 1; - } - if (isinf (c) || isinf (d)) - { - /* w is infinite. "Box" the infinity and change NaNs in - the other factor to 0. */ - c = __copysignl (isinf (c) ? 1 : 0, c); - d = __copysignl (isinf (d) ? 1 : 0, d); - if (isnan (a)) a = __copysignl (0, a); - if (isnan (b)) b = __copysignl (0, b); - recalc = 1; - } - if (!recalc - && (isinf (ac) || isinf (bd) || isinf (ad) || isinf (bc))) - { - /* Recover infinities from overflow by changing NaNs to 0. */ - if (isnan (a)) a = __copysignl (0, a); - if (isnan (b)) b = __copysignl (0, b); - if (isnan (c)) c = __copysignl (0, c); - if (isnan (d)) d = __copysignl (0, d); - recalc = 1; - } - if (recalc) - { - x = INFINITY * (a * c - b * d); - y = INFINITY * (a * d + b * c); - } - } - - return x + I * y; -} diff --git a/math/s_asinhl.c b/math/s_asinhl.c deleted file mode 100644 index 1d5cf47a4f..0000000000 --- a/math/s_asinhl.c +++ /dev/null @@ -1,15 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> - -long double -__asinhl(long double x) -{ - fputs ("__asinhl not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -weak_alias (__asinhl, asinhl) -stub_warning (asinhl) -#include <stub-tag.h> diff --git a/math/s_atanl.c b/math/s_atanl.c deleted file mode 100644 index d9a7eb6f8f..0000000000 --- a/math/s_atanl.c +++ /dev/null @@ -1,15 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> - -long double -__atanl (long double x) -{ - fputs ("__atanl not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} -weak_alias (__atanl, atanl) - -stub_warning (atanl) -#include <stub-tag.h> diff --git a/math/s_cacos.c b/math/s_cacos.c deleted file mode 100644 index 07b6bdcb9c..0000000000 --- a/math/s_cacos.c +++ /dev/null @@ -1,41 +0,0 @@ -/* Return cosine of complex double value. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - -__complex__ double -__cacos (__complex__ double x) -{ - __complex__ double y; - __complex__ double res; - - y = __casin (x); - - __real__ res = (double) M_PI_2 - __real__ y; - __imag__ res = -__imag__ y; - - return res; -} -weak_alias (__cacos, cacos) -#ifdef NO_LONG_DOUBLE -strong_alias (__cacos, __cacosl) -weak_alias (__cacos, cacosl) -#endif diff --git a/math/s_cacosf.c b/math/s_cacosf.c deleted file mode 100644 index 265184e38d..0000000000 --- a/math/s_cacosf.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Return cosine of complex float value. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - -__complex__ float -__cacosf (__complex__ float x) -{ - __complex__ float y; - __complex__ float res; - - y = __casinf (x); - - __real__ res = (float) M_PI_2 - __real__ y; - __imag__ res = -__imag__ y; - - return res; -} -#ifndef __cacosf -weak_alias (__cacosf, cacosf) -#endif diff --git a/math/s_cacosh.c b/math/s_cacosh.c deleted file mode 100644 index ada7ca5af6..0000000000 --- a/math/s_cacosh.c +++ /dev/null @@ -1,95 +0,0 @@ -/* Return arc hyperbole cosine for double value. - Copyright (C) 1997, 2006 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - - -__complex__ double -__cacosh (__complex__ double x) -{ - __complex__ double res; - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - if (rcls <= FP_INFINITE || icls <= FP_INFINITE) - { - if (icls == FP_INFINITE) - { - __real__ res = HUGE_VAL; - - if (rcls == FP_NAN) - __imag__ res = __nan (""); - else - __imag__ res = __copysign ((rcls == FP_INFINITE - ? (__real__ x < 0.0 - ? M_PI - M_PI_4 : M_PI_4) - : M_PI_2), __imag__ x); - } - else if (rcls == FP_INFINITE) - { - __real__ res = HUGE_VAL; - - if (icls >= FP_ZERO) - __imag__ res = __copysign (signbit (__real__ x) ? M_PI : 0.0, - __imag__ x); - else - __imag__ res = __nan (""); - } - else - { - __real__ res = __nan (""); - __imag__ res = __nan (""); - } - } - else if (rcls == FP_ZERO && icls == FP_ZERO) - { - __real__ res = 0.0; - __imag__ res = __copysign (M_PI_2, __imag__ x); - } - else - { - __complex__ double y; - - __real__ y = (__real__ x - __imag__ x) * (__real__ x + __imag__ x) - 1.0; - __imag__ y = 2.0 * __real__ x * __imag__ x; - - y = __csqrt (y); - - if (__real__ x < 0.0) - y = -y; - - __real__ y += __real__ x; - __imag__ y += __imag__ x; - - res = __clog (y); - - /* We have to use the positive branch. */ - if (__real__ res < 0.0) - res = -res; - } - - return res; -} -weak_alias (__cacosh, cacosh) -#ifdef NO_LONG_DOUBLE -strong_alias (__cacosh, __cacoshl) -weak_alias (__cacosh, cacoshl) -#endif diff --git a/math/s_cacoshf.c b/math/s_cacoshf.c deleted file mode 100644 index a062ffc6f6..0000000000 --- a/math/s_cacoshf.c +++ /dev/null @@ -1,108 +0,0 @@ -/* Return arc hyperbole cosine for float value. - Copyright (C) 1997, 2006 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - -#include "math_private.h" - -__complex__ float -__cacoshf (__complex__ float x) -{ - __complex__ float res; - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - if (rcls <= FP_INFINITE || icls <= FP_INFINITE) - { - if (icls == FP_INFINITE) - { - __real__ res = HUGE_VALF; - - if (rcls == FP_NAN) - __imag__ res = __nanf (""); - else - __imag__ res = __copysignf ((rcls == FP_INFINITE - ? (__real__ x < 0.0 - ? M_PI - M_PI_4 : M_PI_4) - : M_PI_2), __imag__ x); - } - else if (rcls == FP_INFINITE) - { - __real__ res = HUGE_VALF; - - if (icls >= FP_ZERO) - __imag__ res = __copysignf (signbit (__real__ x) ? M_PI : 0.0, - __imag__ x); - else - __imag__ res = __nanf (""); - } - else - { - __real__ res = __nanf (""); - __imag__ res = __nanf (""); - } - } - else if (rcls == FP_ZERO && icls == FP_ZERO) - { - __real__ res = 0.0; - __imag__ res = __copysignf (M_PI_2, __imag__ x); - } - else - { -#if 1 - __complex__ float y; - - __real__ y = (__real__ x - __imag__ x) * (__real__ x + __imag__ x) - 1.0; - __imag__ y = 2.0 * __real__ x * __imag__ x; - - y = __csqrtf (y); - - if (__real__ x < 0.0) - y = -y; - - __real__ y += __real__ x; - __imag__ y += __imag__ x; - - res = __clogf (y); -#else - float re2 = __real__ x * __real__ x; - float im2 = __imag__ x * __imag__ x; - float sq = re2 - im2 - 1.0; - float ro = __ieee754_sqrtf (sq * sq + 4 * re2 * im2); - float a = __ieee754_sqrtf ((sq + ro) / 2.0); - float b = __ieee754_sqrtf ((-sq + ro) / 2.0); - - __real__ res = 0.5 * __ieee754_logf (re2 + __real__ x * 2 * a - + im2 + __imag__ x * 2 * b - + ro); - __imag__ res = __ieee754_atan2f (__imag__ x + b, __real__ x + a); -#endif - - /* We have to use the positive branch. */ - if (__real__ res < 0.0) - res = -res; - } - - return res; -} -#ifndef __cacoshf -weak_alias (__cacoshf, cacoshf) -#endif diff --git a/math/s_cacoshl.c b/math/s_cacoshl.c deleted file mode 100644 index da23c8d8aa..0000000000 --- a/math/s_cacoshl.c +++ /dev/null @@ -1,91 +0,0 @@ -/* Return arc hyperbole cosine for long double value. - Copyright (C) 1997, 1998, 2006 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - - -__complex__ long double -__cacoshl (__complex__ long double x) -{ - __complex__ long double res; - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - if (rcls <= FP_INFINITE || icls <= FP_INFINITE) - { - if (icls == FP_INFINITE) - { - __real__ res = HUGE_VALL; - - if (rcls == FP_NAN) - __imag__ res = __nanl (""); - else - __imag__ res = __copysignl ((rcls == FP_INFINITE - ? (__real__ x < 0.0 - ? M_PIl - M_PI_4l : M_PI_4l) - : M_PI_2l), __imag__ x); - } - else if (rcls == FP_INFINITE) - { - __real__ res = HUGE_VALL; - - if (icls >= FP_ZERO) - __imag__ res = __copysignl (signbit (__real__ x) ? M_PIl : 0.0, - __imag__ x); - else - __imag__ res = __nanl (""); - } - else - { - __real__ res = __nanl (""); - __imag__ res = __nanl (""); - } - } - else if (rcls == FP_ZERO && icls == FP_ZERO) - { - __real__ res = 0.0; - __imag__ res = __copysignl (M_PI_2l, __imag__ x); - } - else - { - __complex__ long double y; - - __real__ y = (__real__ x - __imag__ x) * (__real__ x + __imag__ x) - 1.0; - __imag__ y = 2.0 * __real__ x * __imag__ x; - - y = __csqrtl (y); - - if (__real__ x < 0.0) - y = -y; - - __real__ y += __real__ x; - __imag__ y += __imag__ x; - - res = __clogl (y); - - /* We have to use the positive branch. */ - if (__real__ res < 0.0) - res = -res; - } - - return res; -} -weak_alias (__cacoshl, cacoshl) diff --git a/math/s_cacosl.c b/math/s_cacosl.c deleted file mode 100644 index a7ceff891b..0000000000 --- a/math/s_cacosl.c +++ /dev/null @@ -1,37 +0,0 @@ -/* Return cosine of complex long double value. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - -__complex__ long double -__cacosl (__complex__ long double x) -{ - __complex__ long double y; - __complex__ long double res; - - y = __casinl (x); - - __real__ res = M_PI_2l - __real__ y; - __imag__ res = -__imag__ y; - - return res; -} -weak_alias (__cacosl, cacosl) diff --git a/math/s_casin.c b/math/s_casin.c deleted file mode 100644 index 2d5b06cf78..0000000000 --- a/math/s_casin.c +++ /dev/null @@ -1,66 +0,0 @@ -/* Return arc sine of complex double value. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - - -__complex__ double -__casin (__complex__ double x) -{ - __complex__ double res; - - if (isnan (__real__ x) || isnan (__imag__ x)) - { - if (__real__ x == 0.0) - { - res = x; - } - else if (__isinf (__real__ x) || __isinf (__imag__ x)) - { - __real__ res = __nan (""); - __imag__ res = __copysign (HUGE_VAL, __imag__ x); - } - else - { - __real__ res = __nan (""); - __imag__ res = __nan (""); - } - } - else - { - __complex__ double y; - - __real__ y = -__imag__ x; - __imag__ y = __real__ x; - - y = __casinh (y); - - __real__ res = __imag__ y; - __imag__ res = -__real__ y; - } - - return res; -} -weak_alias (__casin, casin) -#ifdef NO_LONG_DOUBLE -strong_alias (__casin, __casinl) -weak_alias (__casin, casinl) -#endif diff --git a/math/s_casinf.c b/math/s_casinf.c deleted file mode 100644 index 5278dbbf78..0000000000 --- a/math/s_casinf.c +++ /dev/null @@ -1,64 +0,0 @@ -/* Return arc sine of complex float value. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - - -__complex__ float -__casinf (__complex__ float x) -{ - __complex__ float res; - - if (isnan (__real__ x) || isnan (__imag__ x)) - { - if (__real__ x == 0.0) - { - res = x; - } - else if (__isinff (__real__ x) || __isinff (__imag__ x)) - { - __real__ res = __nanf (""); - __imag__ res = __copysignf (HUGE_VALF, __imag__ x); - } - else - { - __real__ res = __nanf (""); - __imag__ res = __nanf (""); - } - } - else - { - __complex__ float y; - - __real__ y = -__imag__ x; - __imag__ y = __real__ x; - - y = __casinhf (y); - - __real__ res = __imag__ y; - __imag__ res = -__real__ y; - } - - return res; -} -#ifndef __casinf -weak_alias (__casinf, casinf) -#endif diff --git a/math/s_casinh.c b/math/s_casinh.c deleted file mode 100644 index a574add70e..0000000000 --- a/math/s_casinh.c +++ /dev/null @@ -1,84 +0,0 @@ -/* Return arc hyperbole sine for double value. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - - -__complex__ double -__casinh (__complex__ double x) -{ - __complex__ double res; - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - if (rcls <= FP_INFINITE || icls <= FP_INFINITE) - { - if (icls == FP_INFINITE) - { - __real__ res = __copysign (HUGE_VAL, __real__ x); - - if (rcls == FP_NAN) - __imag__ res = __nan (""); - else - __imag__ res = __copysign (rcls >= FP_ZERO ? M_PI_2 : M_PI_4, - __imag__ x); - } - else if (rcls <= FP_INFINITE) - { - __real__ res = __real__ x; - if ((rcls == FP_INFINITE && icls >= FP_ZERO) - || (rcls == FP_NAN && icls == FP_ZERO)) - __imag__ res = __copysign (0.0, __imag__ x); - else - __imag__ res = __nan (""); - } - else - { - __real__ res = __nan (""); - __imag__ res = __nan (""); - } - } - else if (rcls == FP_ZERO && icls == FP_ZERO) - { - res = x; - } - else - { - __complex__ double y; - - __real__ y = (__real__ x - __imag__ x) * (__real__ x + __imag__ x) + 1.0; - __imag__ y = 2.0 * __real__ x * __imag__ x; - - y = __csqrt (y); - - __real__ y += __real__ x; - __imag__ y += __imag__ x; - - res = __clog (y); - } - - return res; -} -weak_alias (__casinh, casinh) -#ifdef NO_LONG_DOUBLE -strong_alias (__casinh, __casinhl) -weak_alias (__casinh, casinhl) -#endif diff --git a/math/s_casinhf.c b/math/s_casinhf.c deleted file mode 100644 index 7037ab937c..0000000000 --- a/math/s_casinhf.c +++ /dev/null @@ -1,82 +0,0 @@ -/* Return arc hyperbole sine for float value. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - - -__complex__ float -__casinhf (__complex__ float x) -{ - __complex__ float res; - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - if (rcls <= FP_INFINITE || icls <= FP_INFINITE) - { - if (icls == FP_INFINITE) - { - __real__ res = __copysignf (HUGE_VALF, __real__ x); - - if (rcls == FP_NAN) - __imag__ res = __nanf (""); - else - __imag__ res = __copysignf (rcls >= FP_ZERO ? M_PI_2 : M_PI_4, - __imag__ x); - } - else if (rcls <= FP_INFINITE) - { - __real__ res = __real__ x; - if ((rcls == FP_INFINITE && icls >= FP_ZERO) - || (rcls == FP_NAN && icls == FP_ZERO)) - __imag__ res = __copysignf (0.0, __imag__ x); - else - __imag__ res = __nanf (""); - } - else - { - __real__ res = __nanf (""); - __imag__ res = __nanf (""); - } - } - else if (rcls == FP_ZERO && icls == FP_ZERO) - { - res = x; - } - else - { - __complex__ float y; - - __real__ y = (__real__ x - __imag__ x) * (__real__ x + __imag__ x) + 1.0; - __imag__ y = 2.0 * __real__ x * __imag__ x; - - y = __csqrtf (y); - - __real__ y += __real__ x; - __imag__ y += __imag__ x; - - res = __clogf (y); - } - - return res; -} -#ifndef __casinhf -weak_alias (__casinhf, casinhf) -#endif diff --git a/math/s_casinhl.c b/math/s_casinhl.c deleted file mode 100644 index 376b2347a0..0000000000 --- a/math/s_casinhl.c +++ /dev/null @@ -1,80 +0,0 @@ -/* Return arc hyperbole sine for long double value. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - - -__complex__ long double -__casinhl (__complex__ long double x) -{ - __complex__ long double res; - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - if (rcls <= FP_INFINITE || icls <= FP_INFINITE) - { - if (icls == FP_INFINITE) - { - __real__ res = __copysignl (HUGE_VALL, __real__ x); - - if (rcls == FP_NAN) - __imag__ res = __nanl (""); - else - __imag__ res = __copysignl (rcls >= FP_ZERO ? M_PI_2l : M_PI_4l, - __imag__ x); - } - else if (rcls <= FP_INFINITE) - { - __real__ res = __real__ x; - if ((rcls == FP_INFINITE && icls >= FP_ZERO) - || (rcls == FP_NAN && icls == FP_ZERO)) - __imag__ res = __copysignl (0.0, __imag__ x); - else - __imag__ res = __nanl (""); - } - else - { - __real__ res = __nanl (""); - __imag__ res = __nanl (""); - } - } - else if (rcls == FP_ZERO && icls == FP_ZERO) - { - res = x; - } - else - { - __complex__ long double y; - - __real__ y = (__real__ x - __imag__ x) * (__real__ x + __imag__ x) + 1.0; - __imag__ y = 2.0 * __real__ x * __imag__ x; - - y = __csqrtl (y); - - __real__ y += __real__ x; - __imag__ y += __imag__ x; - - res = __clogl (y); - } - - return res; -} -weak_alias (__casinhl, casinhl) diff --git a/math/s_casinl.c b/math/s_casinl.c deleted file mode 100644 index f303c05ae6..0000000000 --- a/math/s_casinl.c +++ /dev/null @@ -1,62 +0,0 @@ -/* Return arc sine of complex long double value. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - - -__complex__ long double -__casinl (__complex__ long double x) -{ - __complex__ long double res; - - if (isnan (__real__ x) || isnan (__imag__ x)) - { - if (__real__ x == 0.0) - { - res = x; - } - else if (__isinfl (__real__ x) || __isinfl (__imag__ x)) - { - __real__ res = __nanl (""); - __imag__ res = __copysignl (HUGE_VALL, __imag__ x); - } - else - { - __real__ res = __nanl (""); - __imag__ res = __nanl (""); - } - } - else - { - __complex__ long double y; - - __real__ y = -__imag__ x; - __imag__ y = __real__ x; - - y = __casinhl (y); - - __real__ res = __imag__ y; - __imag__ res = -__real__ y; - } - - return res; -} -weak_alias (__casinl, casinl) diff --git a/math/s_catan.c b/math/s_catan.c deleted file mode 100644 index 1d0673ad6a..0000000000 --- a/math/s_catan.c +++ /dev/null @@ -1,89 +0,0 @@ -/* Return arc tangent of complex double value. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ double -__catan (__complex__ double x) -{ - __complex__ double res; - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - if (rcls <= FP_INFINITE || icls <= FP_INFINITE) - { - if (rcls == FP_INFINITE) - { - __real__ res = __copysign (M_PI_2, __real__ x); - __imag__ res = __copysign (0.0, __imag__ x); - } - else if (icls == FP_INFINITE) - { - if (rcls >= FP_ZERO) - __real__ res = __copysign (M_PI_2, __real__ x); - else - __real__ res = __nan (""); - __imag__ res = __copysign (0.0, __imag__ x); - } - else if (icls == FP_ZERO || icls == FP_INFINITE) - { - __real__ res = __nan (""); - __imag__ res = __copysign (0.0, __imag__ x); - } - else - { - __real__ res = __nan (""); - __imag__ res = __nan (""); - } - } - else if (rcls == FP_ZERO && icls == FP_ZERO) - { - res = x; - } - else - { - double r2, num, den; - - r2 = __real__ x * __real__ x; - - den = 1 - r2 - __imag__ x * __imag__ x; - - __real__ res = 0.5 * __ieee754_atan2 (2.0 * __real__ x, den); - - num = __imag__ x + 1.0; - num = r2 + num * num; - - den = __imag__ x - 1.0; - den = r2 + den * den; - - __imag__ res = 0.25 * __ieee754_log (num / den); - } - - return res; -} -weak_alias (__catan, catan) -#ifdef NO_LONG_DOUBLE -strong_alias (__catan, __catanl) -weak_alias (__catan, catanl) -#endif diff --git a/math/s_catanf.c b/math/s_catanf.c deleted file mode 100644 index 25eec2b1b5..0000000000 --- a/math/s_catanf.c +++ /dev/null @@ -1,87 +0,0 @@ -/* Return arc tangent of complex float value. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ float -__catanf (__complex__ float x) -{ - __complex__ float res; - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - if (rcls <= FP_INFINITE || icls <= FP_INFINITE) - { - if (rcls == FP_INFINITE) - { - __real__ res = __copysignf (M_PI_2, __real__ x); - __imag__ res = __copysignf (0.0, __imag__ x); - } - else if (icls == FP_INFINITE) - { - if (rcls >= FP_ZERO) - __real__ res = __copysignf (M_PI_2, __real__ x); - else - __real__ res = __nanf (""); - __imag__ res = __copysignf (0.0, __imag__ x); - } - else if (icls == FP_ZERO || icls == FP_INFINITE) - { - __real__ res = __nanf (""); - __imag__ res = __copysignf (0.0, __imag__ x); - } - else - { - __real__ res = __nanf (""); - __imag__ res = __nanf (""); - } - } - else if (rcls == FP_ZERO && icls == FP_ZERO) - { - res = x; - } - else - { - float r2, num, den; - - r2 = __real__ x * __real__ x; - - den = 1 - r2 - __imag__ x * __imag__ x; - - __real__ res = 0.5 * __ieee754_atan2f (2.0 * __real__ x, den); - - num = __imag__ x + 1.0; - num = r2 + num * num; - - den = __imag__ x - 1.0; - den = r2 + den * den; - - __imag__ res = 0.25 * __ieee754_logf (num / den); - } - - return res; -} -#ifndef __catanf -weak_alias (__catanf, catanf) -#endif diff --git a/math/s_catanh.c b/math/s_catanh.c deleted file mode 100644 index e15c073f96..0000000000 --- a/math/s_catanh.c +++ /dev/null @@ -1,84 +0,0 @@ -/* Return arc hyperbole tangent for double value. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ double -__catanh (__complex__ double x) -{ - __complex__ double res; - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - if (rcls <= FP_INFINITE || icls <= FP_INFINITE) - { - if (icls == FP_INFINITE) - { - __real__ res = __copysign (0.0, __real__ x); - __imag__ res = __copysign (M_PI_2, __imag__ x); - } - else if (rcls == FP_INFINITE || rcls == FP_ZERO) - { - __real__ res = __copysign (0.0, __real__ x); - if (icls >= FP_ZERO) - __imag__ res = __copysign (M_PI_2, __imag__ x); - else - __imag__ res = __nan (""); - } - else - { - __real__ res = __nan (""); - __imag__ res = __nan (""); - } - } - else if (rcls == FP_ZERO && icls == FP_ZERO) - { - res = x; - } - else - { - double i2, num, den; - - i2 = __imag__ x * __imag__ x; - - num = 1.0 + __real__ x; - num = i2 + num * num; - - den = 1.0 - __real__ x; - den = i2 + den * den; - - __real__ res = 0.25 * (__ieee754_log (num) - __ieee754_log (den)); - - den = 1 - __real__ x * __real__ x - i2; - - __imag__ res = 0.5 * __ieee754_atan2 (2.0 * __imag__ x, den); - } - - return res; -} -weak_alias (__catanh, catanh) -#ifdef NO_LONG_DOUBLE -strong_alias (__catanh, __catanhl) -weak_alias (__catanh, catanhl) -#endif diff --git a/math/s_catanhf.c b/math/s_catanhf.c deleted file mode 100644 index d2422e6111..0000000000 --- a/math/s_catanhf.c +++ /dev/null @@ -1,82 +0,0 @@ -/* Return arc hyperbole tangent for float value. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ float -__catanhf (__complex__ float x) -{ - __complex__ float res; - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - if (rcls <= FP_INFINITE || icls <= FP_INFINITE) - { - if (icls == FP_INFINITE) - { - __real__ res = __copysignf (0.0, __real__ x); - __imag__ res = __copysignf (M_PI_2, __imag__ x); - } - else if (rcls == FP_INFINITE || rcls == FP_ZERO) - { - __real__ res = __copysignf (0.0, __real__ x); - if (icls >= FP_ZERO) - __imag__ res = __copysignf (M_PI_2, __imag__ x); - else - __imag__ res = __nanf (""); - } - else - { - __real__ res = __nanf (""); - __imag__ res = __nanf (""); - } - } - else if (rcls == FP_ZERO && icls == FP_ZERO) - { - res = x; - } - else - { - float i2, num, den; - - i2 = __imag__ x * __imag__ x; - - num = 1.0 + __real__ x; - num = i2 + num * num; - - den = 1.0 - __real__ x; - den = i2 + den * den; - - __real__ res = 0.25 * (__ieee754_logf (num) - __ieee754_logf (den)); - - den = 1 - __real__ x * __real__ x - i2; - - __imag__ res = 0.5 * __ieee754_atan2f (2.0 * __imag__ x, den); - } - - return res; -} -#ifndef __catanhf -weak_alias (__catanhf, catanhf) -#endif diff --git a/math/s_catanhl.c b/math/s_catanhl.c deleted file mode 100644 index c3fb0ce5ff..0000000000 --- a/math/s_catanhl.c +++ /dev/null @@ -1,80 +0,0 @@ -/* Return arc hyperbole tangent for long double value. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ long double -__catanhl (__complex__ long double x) -{ - __complex__ long double res; - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - if (rcls <= FP_INFINITE || icls <= FP_INFINITE) - { - if (icls == FP_INFINITE) - { - __real__ res = __copysignl (0.0, __real__ x); - __imag__ res = __copysignl (M_PI_2l, __imag__ x); - } - else if (rcls == FP_INFINITE || rcls == FP_ZERO) - { - __real__ res = __copysignl (0.0, __real__ x); - if (icls >= FP_ZERO) - __imag__ res = __copysignl (M_PI_2l, __imag__ x); - else - __imag__ res = __nanl (""); - } - else - { - __real__ res = __nanl (""); - __imag__ res = __nanl (""); - } - } - else if (rcls == FP_ZERO && icls == FP_ZERO) - { - res = x; - } - else - { - long double i2, num, den; - - i2 = __imag__ x * __imag__ x; - - num = 1.0 + __real__ x; - num = i2 + num * num; - - den = 1.0 - __real__ x; - den = i2 + den * den; - - __real__ res = 0.25 * (__ieee754_logl (num) - __ieee754_logl (den)); - - den = 1 - __real__ x * __real__ x - i2; - - __imag__ res = 0.5 * __ieee754_atan2l (2.0 * __imag__ x, den); - } - - return res; -} -weak_alias (__catanhl, catanhl) diff --git a/math/s_catanl.c b/math/s_catanl.c deleted file mode 100644 index 6cb45e5bee..0000000000 --- a/math/s_catanl.c +++ /dev/null @@ -1,85 +0,0 @@ -/* Return arc tangent of complex long double value. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ long double -__catanl (__complex__ long double x) -{ - __complex__ long double res; - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - if (rcls <= FP_INFINITE || icls <= FP_INFINITE) - { - if (rcls == FP_INFINITE) - { - __real__ res = __copysignl (M_PI_2l, __real__ x); - __imag__ res = __copysignl (0.0, __imag__ x); - } - else if (icls == FP_INFINITE) - { - if (rcls >= FP_ZERO) - __real__ res = __copysignl (M_PI_2l, __real__ x); - else - __real__ res = __nanl (""); - __imag__ res = __copysignl (0.0, __imag__ x); - } - else if (icls == FP_ZERO || icls == FP_INFINITE) - { - __real__ res = __nanl (""); - __imag__ res = __copysignl (0.0, __imag__ x); - } - else - { - __real__ res = __nanl (""); - __imag__ res = __nanl (""); - } - } - else if (rcls == FP_ZERO && icls == FP_ZERO) - { - res = x; - } - else - { - long double r2, num, den; - - r2 = __real__ x * __real__ x; - - den = 1 - r2 - __imag__ x * __imag__ x; - - __real__ res = 0.5 * __ieee754_atan2l (2.0 * __real__ x, den); - - num = __imag__ x + 1.0; - num = r2 + num * num; - - den = __imag__ x - 1.0; - den = r2 + den * den; - - __imag__ res = 0.25 * __ieee754_logl (num / den); - } - - return res; -} -weak_alias (__catanl, catanl) diff --git a/math/s_cbrtl.c b/math/s_cbrtl.c deleted file mode 100644 index d668e377af..0000000000 --- a/math/s_cbrtl.c +++ /dev/null @@ -1,15 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> - -long double -__cbrtl(long double x) -{ - fputs ("__cbrtl not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -weak_alias (__cbrtl, cbrtl) -stub_warning (cbrtl) -#include <stub-tag.h> diff --git a/math/s_ccos.c b/math/s_ccos.c deleted file mode 100644 index 1b244d7079..0000000000 --- a/math/s_ccos.c +++ /dev/null @@ -1,80 +0,0 @@ -/* Return cosine of complex double value. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <fenv.h> -#include <math.h> - - -__complex__ double -__ccos (__complex__ double x) -{ - __complex__ double res; - - if (!isfinite (__real__ x) || __isnan (__imag__ x)) - { - if (__real__ x == 0.0 || __imag__ x == 0.0) - { - __real__ res = __nan (""); - __imag__ res = 0.0; - -#ifdef FE_INVALID - if (__isinf (__real__ x)) - feraiseexcept (FE_INVALID); -#endif - } - else if (__isinf (__imag__ x)) - { - __real__ res = HUGE_VAL; - __imag__ res = __nan (""); - -#ifdef FE_INVALID - if (__isinf (__real__ x)) - feraiseexcept (FE_INVALID); -#endif - } - else - { - __real__ res = __nan (""); - __imag__ res = __nan (""); - -#ifdef FE_INVALID - if (isfinite (__imag__ x)) - feraiseexcept (FE_INVALID); -#endif - } - } - else - { - __complex__ double y; - - __real__ y = -__imag__ x; - __imag__ y = __real__ x; - - res = __ccosh (y); - } - - return res; -} -weak_alias (__ccos, ccos) -#ifdef NO_LONG_DOUBLE -strong_alias (__ccos, __ccosl) -weak_alias (__ccos, ccosl) -#endif diff --git a/math/s_ccosf.c b/math/s_ccosf.c deleted file mode 100644 index 4b154deac5..0000000000 --- a/math/s_ccosf.c +++ /dev/null @@ -1,78 +0,0 @@ -/* Return cosine of complex float value. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <fenv.h> -#include <math.h> - - -__complex__ float -__ccosf (__complex__ float x) -{ - __complex__ float res; - - if (!isfinite (__real__ x) || __isnanf (__imag__ x)) - { - if (__real__ x == 0.0 || __imag__ x == 0.0) - { - __real__ res = __nanf (""); - __imag__ res = 0.0; - -#ifdef FE_INVALID - if (__isinff (__real__ x)) - feraiseexcept (FE_INVALID); -#endif - } - else if (__isinff (__imag__ x)) - { - __real__ res = HUGE_VALF; - __imag__ res = __nanf (""); - -#ifdef FE_INVALID - if (__isinff (__real__ x)) - feraiseexcept (FE_INVALID); -#endif - } - else - { - __real__ res = __nanf (""); - __imag__ res = __nanf (""); - -#ifdef FE_INVALID - if (isfinite (__imag__ x)) - feraiseexcept (FE_INVALID); -#endif - } - } - else - { - __complex__ float y; - - __real__ y = -__imag__ x; - __imag__ y = __real__ x; - - res = __ccoshf (y); - } - - return res; -} -#ifndef __ccosf -weak_alias (__ccosf, ccosf) -#endif diff --git a/math/s_ccosh.c b/math/s_ccosh.c deleted file mode 100644 index f5b29db24b..0000000000 --- a/math/s_ccosh.c +++ /dev/null @@ -1,105 +0,0 @@ -/* Complex cosine hyperbole function for double. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <fenv.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ double -__ccosh (__complex__ double x) -{ - __complex__ double retval; - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - if (rcls >= FP_ZERO) - { - /* Real part is finite. */ - if (icls >= FP_ZERO) - { - /* Imaginary part is finite. */ - double sinh_val = __ieee754_sinh (__real__ x); - double cosh_val = __ieee754_cosh (__real__ x); - double sinix, cosix; - - __sincos (__imag__ x, &sinix, &cosix); - - __real__ retval = cosh_val * cosix; - __imag__ retval = sinh_val * sinix; - } - else - { - __imag__ retval = __real__ x == 0.0 ? 0.0 : __nan (""); - __real__ retval = __nan ("") + __nan (""); - -#ifdef FE_INVALID - if (icls == FP_INFINITE) - feraiseexcept (FE_INVALID); -#endif - } - } - else if (rcls == FP_INFINITE) - { - /* Real part is infinite. */ - if (icls == FP_ZERO) - { - /* Imaginary part is 0.0. */ - __real__ retval = HUGE_VAL; - __imag__ retval = __imag__ x * __copysign (1.0, __real__ x); - } - else if (icls > FP_ZERO) - { - /* Imaginary part is finite. */ - double sinix, cosix; - - __sincos (__imag__ x, &sinix, &cosix); - - __real__ retval = __copysign (HUGE_VAL, cosix); - __imag__ retval = (__copysign (HUGE_VAL, sinix) - * __copysign (1.0, __real__ x)); - } - else - { - /* The addition raises the invalid exception. */ - __real__ retval = HUGE_VAL; - __imag__ retval = __nan ("") + __nan (""); - -#ifdef FE_INVALID - if (icls == FP_INFINITE) - feraiseexcept (FE_INVALID); -#endif - } - } - else - { - __real__ retval = __nan (""); - __imag__ retval = __imag__ x == 0.0 ? __imag__ x : __nan (""); - } - - return retval; -} -weak_alias (__ccosh, ccosh) -#ifdef NO_LONG_DOUBLE -strong_alias (__ccosh, __ccoshl) -weak_alias (__ccosh, ccoshl) -#endif diff --git a/math/s_ccoshf.c b/math/s_ccoshf.c deleted file mode 100644 index f400d34f0b..0000000000 --- a/math/s_ccoshf.c +++ /dev/null @@ -1,103 +0,0 @@ -/* Complex cosine hyperbole function for float. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <fenv.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ float -__ccoshf (__complex__ float x) -{ - __complex__ float retval; - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - if (rcls >= FP_ZERO) - { - /* Real part is finite. */ - if (icls >= FP_ZERO) - { - /* Imaginary part is finite. */ - float sinh_val = __ieee754_sinhf (__real__ x); - float cosh_val = __ieee754_coshf (__real__ x); - float sinix, cosix; - - __sincosf (__imag__ x, &sinix, &cosix); - - __real__ retval = cosh_val * cosix; - __imag__ retval = sinh_val * sinix; - } - else - { - __imag__ retval = __real__ x == 0.0 ? 0.0 : __nanf (""); - __real__ retval = __nanf (""); - -#ifdef FE_INVALID - if (icls == FP_INFINITE) - feraiseexcept (FE_INVALID); -#endif - } - } - else if (rcls == FP_INFINITE) - { - /* Real part is infinite. */ - if (icls == FP_ZERO) - { - /* Imaginary part is 0.0. */ - __real__ retval = HUGE_VALF; - __imag__ retval = __imag__ x * __copysignf (1.0, __real__ x); - } - else if (icls > FP_ZERO) - { - /* Imaginary part is finite. */ - float sinix, cosix; - - __sincosf (__imag__ x, &sinix, &cosix); - - __real__ retval = __copysignf (HUGE_VALF, cosix); - __imag__ retval = (__copysignf (HUGE_VALF, sinix) - * __copysignf (1.0, __real__ x)); - } - else - { - /* The addition raises the invalid exception. */ - __real__ retval = HUGE_VALF; - __imag__ retval = __nanf ("") + __nanf (""); - -#ifdef FE_INVALID - if (icls == FP_INFINITE) - feraiseexcept (FE_INVALID); -#endif - } - } - else - { - __real__ retval = __nanf (""); - __imag__ retval = __imag__ x == 0.0 ? __imag__ x : __nanf (""); - } - - return retval; -} -#ifndef __ccoshf -weak_alias (__ccoshf, ccoshf) -#endif diff --git a/math/s_ccoshl.c b/math/s_ccoshl.c deleted file mode 100644 index 61ffb49ca0..0000000000 --- a/math/s_ccoshl.c +++ /dev/null @@ -1,101 +0,0 @@ -/* Complex cosine hyperbole function for long double. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <fenv.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ long double -__ccoshl (__complex__ long double x) -{ - __complex__ long double retval; - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - if (rcls >= FP_ZERO) - { - /* Real part is finite. */ - if (icls >= FP_ZERO) - { - /* Imaginary part is finite. */ - long double sinh_val = __ieee754_sinhl (__real__ x); - long double cosh_val = __ieee754_coshl (__real__ x); - long double sinix, cosix; - - __sincosl (__imag__ x, &sinix, &cosix); - - __real__ retval = cosh_val * cosix; - __imag__ retval = sinh_val * sinix; - } - else - { - __imag__ retval = __real__ x == 0.0 ? 0.0 : __nanl (""); - __real__ retval = __nanl ("") + __nanl (""); - -#ifdef FE_INVALID - if (icls == FP_INFINITE) - feraiseexcept (FE_INVALID); -#endif - } - } - else if (rcls == FP_INFINITE) - { - /* Real part is infinite. */ - if (icls == FP_ZERO) - { - /* Imaginary part is 0.0. */ - __real__ retval = HUGE_VALL; - __imag__ retval = __imag__ x * __copysignl (1.0, __real__ x); - } - else if (icls > FP_ZERO) - { - /* Imaginary part is finite. */ - long double sinix, cosix; - - __sincosl (__imag__ x, &sinix, &cosix); - - __real__ retval = __copysignl (HUGE_VALL, cosix); - __imag__ retval = (__copysignl (HUGE_VALL, sinix) - * __copysignl (1.0, __real__ x)); - } - else - { - /* The addition raises the invalid exception. */ - __real__ retval = HUGE_VALL; - __imag__ retval = __nanl ("") + __nanl (""); - -#ifdef FE_INVALID - if (icls == FP_INFINITE) - feraiseexcept (FE_INVALID); -#endif - } - } - else - { - __real__ retval = __nanl (""); - __imag__ retval = __imag__ x == 0.0 ? __imag__ x : __nanl (""); - } - - return retval; -} -weak_alias (__ccoshl, ccoshl) diff --git a/math/s_ccosl.c b/math/s_ccosl.c deleted file mode 100644 index 4ebe2c347d..0000000000 --- a/math/s_ccosl.c +++ /dev/null @@ -1,76 +0,0 @@ -/* Return cosine of complex long double value. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <fenv.h> -#include <math.h> - - -__complex__ long double -__ccosl (__complex__ long double x) -{ - __complex__ long double res; - - if (!isfinite (__real__ x) || __isnanl (__imag__ x)) - { - if (__real__ x == 0.0 || __imag__ x == 0.0) - { - __real__ res = __nanl (""); - __imag__ res = 0.0; - -#ifdef FE_INVALID - if (__isinfl (__real__ x)) - feraiseexcept (FE_INVALID); -#endif - } - else if (__isinfl (__imag__ x)) - { - __real__ res = HUGE_VALL; - __imag__ res = __nanl (""); - -#ifdef FE_INVALID - if (__isinfl (__real__ x)) - feraiseexcept (FE_INVALID); -#endif - } - else - { - __real__ res = __nanl (""); - __imag__ res = __nanl (""); - -#ifdef FE_INVALID - if (isfinite (__imag__ x)) - feraiseexcept (FE_INVALID); -#endif - } - } - else - { - __complex__ long double y; - - __real__ y = -__imag__ x; - __imag__ y = __real__ x; - - res = __ccoshl (y); - } - - return res; -} -weak_alias (__ccosl, ccosl) diff --git a/math/s_cexp.c b/math/s_cexp.c deleted file mode 100644 index 5a299b7687..0000000000 --- a/math/s_cexp.c +++ /dev/null @@ -1,127 +0,0 @@ -/* Return value of complex exponential function for double complex value. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <fenv.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ double -__cexp (__complex__ double x) -{ - __complex__ double retval; - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - if (rcls >= FP_ZERO) - { - /* Real part is finite. */ - if (icls >= FP_ZERO) - { - /* Imaginary part is finite. */ - double exp_val = __ieee754_exp (__real__ x); - double sinix, cosix; - - __sincos (__imag__ x, &sinix, &cosix); - - if (isfinite (exp_val)) - { - __real__ retval = exp_val * cosix; - __imag__ retval = exp_val * sinix; - } - else - { - __real__ retval = __copysign (exp_val, cosix); - __imag__ retval = __copysign (exp_val, sinix); - } - } - else - { - /* If the imaginary part is +-inf or NaN and the real part - is not +-inf the result is NaN + iNaN. */ - __real__ retval = __nan (""); - __imag__ retval = __nan (""); - -#ifdef FE_INVALID - feraiseexcept (FE_INVALID); -#endif - } - } - else if (rcls == FP_INFINITE) - { - /* Real part is infinite. */ - if (icls >= FP_ZERO) - { - /* Imaginary part is finite. */ - double value = signbit (__real__ x) ? 0.0 : HUGE_VAL; - - if (icls == FP_ZERO) - { - /* Imaginary part is 0.0. */ - __real__ retval = value; - __imag__ retval = __imag__ x; - } - else - { - double sinix, cosix; - - __sincos (__imag__ x, &sinix, &cosix); - - __real__ retval = __copysign (value, cosix); - __imag__ retval = __copysign (value, sinix); - } - } - else if (signbit (__real__ x) == 0) - { - __real__ retval = HUGE_VAL; - __imag__ retval = __nan (""); - -#ifdef FE_INVALID - if (icls == FP_INFINITE) - feraiseexcept (FE_INVALID); -#endif - } - else - { - __real__ retval = 0.0; - __imag__ retval = __copysign (0.0, __imag__ x); - } - } - else - { - /* If the real part is NaN the result is NaN + iNaN. */ - __real__ retval = __nan (""); - __imag__ retval = __nan (""); - -#ifdef FE_INVALID - if (rcls != FP_NAN || icls != FP_NAN) - feraiseexcept (FE_INVALID); -#endif - } - - return retval; -} -weak_alias (__cexp, cexp) -#ifdef NO_LONG_DOUBLE -strong_alias (__cexp, __cexpl) -weak_alias (__cexp, cexpl) -#endif diff --git a/math/s_cexpf.c b/math/s_cexpf.c deleted file mode 100644 index 7b68fc365c..0000000000 --- a/math/s_cexpf.c +++ /dev/null @@ -1,125 +0,0 @@ -/* Return value of complex exponential function for float complex value. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <fenv.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ float -__cexpf (__complex__ float x) -{ - __complex__ float retval; - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - if (rcls >= FP_ZERO) - { - /* Real part is finite. */ - if (icls >= FP_ZERO) - { - /* Imaginary part is finite. */ - float exp_val = __ieee754_expf (__real__ x); - float sinix, cosix; - - __sincosf (__imag__ x, &sinix, &cosix); - - if (isfinite (exp_val)) - { - __real__ retval = exp_val * cosix; - __imag__ retval = exp_val * sinix; - } - else - { - __real__ retval = __copysignf (exp_val, cosix); - __imag__ retval = __copysignf (exp_val, sinix); - } - } - else - { - /* If the imaginary part is +-inf or NaN and the real part - is not +-inf the result is NaN + iNaN. */ - __real__ retval = __nanf (""); - __imag__ retval = __nanf (""); - -#ifdef FE_INVALID - feraiseexcept (FE_INVALID); -#endif - } - } - else if (rcls == FP_INFINITE) - { - /* Real part is infinite. */ - if (icls >= FP_ZERO) - { - /* Imaginary part is finite. */ - float value = signbit (__real__ x) ? 0.0 : HUGE_VALF; - - if (icls == FP_ZERO) - { - /* Imaginary part is 0.0. */ - __real__ retval = value; - __imag__ retval = __imag__ x; - } - else - { - float sinix, cosix; - - __sincosf (__imag__ x, &sinix, &cosix); - - __real__ retval = __copysignf (value, cosix); - __imag__ retval = __copysignf (value, sinix); - } - } - else if (signbit (__real__ x) == 0) - { - __real__ retval = HUGE_VALF; - __imag__ retval = __nanf (""); - -#ifdef FE_INVALID - if (icls == FP_INFINITE) - feraiseexcept (FE_INVALID); -#endif - } - else - { - __real__ retval = 0.0; - __imag__ retval = __copysignf (0.0, __imag__ x); - } - } - else - { - /* If the real part is NaN the result is NaN + iNaN. */ - __real__ retval = __nanf (""); - __imag__ retval = __nanf (""); - -#ifdef FE_INVALID - if (rcls != FP_NAN || icls != FP_NAN) - feraiseexcept (FE_INVALID); -#endif - } - - return retval; -} -#ifndef __cexpf -weak_alias (__cexpf, cexpf) -#endif diff --git a/math/s_cexpl.c b/math/s_cexpl.c deleted file mode 100644 index cf6bc974a9..0000000000 --- a/math/s_cexpl.c +++ /dev/null @@ -1,123 +0,0 @@ -/* Return value of complex exponential function for long double complex value. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <fenv.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ long double -__cexpl (__complex__ long double x) -{ - __complex__ long double retval; - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - if (rcls >= FP_ZERO) - { - /* Real part is finite. */ - if (icls >= FP_ZERO) - { - /* Imaginary part is finite. */ - long double exp_val = __ieee754_expl (__real__ x); - long double sinix, cosix; - - __sincosl (__imag__ x, &sinix, &cosix); - - if (isfinite (exp_val)) - { - __real__ retval = exp_val * cosix; - __imag__ retval = exp_val * sinix; - } - else - { - __real__ retval = __copysignl (exp_val, cosix); - __imag__ retval = __copysignl (exp_val, sinix); - } - } - else - { - /* If the imaginary part is +-inf or NaN and the real part - is not +-inf the result is NaN + iNaN. */ - __real__ retval = __nanl (""); - __imag__ retval = __nanl (""); - -#ifdef FE_INVALID - feraiseexcept (FE_INVALID); -#endif - } - } - else if (rcls == FP_INFINITE) - { - /* Real part is infinite. */ - if (icls >= FP_ZERO) - { - /* Imaginary part is finite. */ - long double value = signbit (__real__ x) ? 0.0 : HUGE_VALL; - - if (icls == FP_ZERO) - { - /* Imaginary part is 0.0. */ - __real__ retval = value; - __imag__ retval = __imag__ x; - } - else - { - long double sinix, cosix; - - __sincosl (__imag__ x, &sinix, &cosix); - - __real__ retval = __copysignl (value, cosix); - __imag__ retval = __copysignl (value, sinix); - } - } - else if (signbit (__real__ x) == 0) - { - __real__ retval = HUGE_VALL; - __imag__ retval = __nanl (""); - -#ifdef FE_INVALID - if (icls == FP_INFINITE) - feraiseexcept (FE_INVALID); -#endif - } - else - { - __real__ retval = 0.0; - __imag__ retval = __copysignl (0.0, __imag__ x); - } - } - else - { - /* If the real part is NaN the result is NaN + iNaN. */ - __real__ retval = __nanl (""); - __imag__ retval = __nanl (""); - -#ifdef FE_INVALID - if (rcls != FP_NAN || icls != FP_NAN) - feraiseexcept (FE_INVALID); -#endif - } - - return retval; -} -weak_alias (__cexpl, cexpl) diff --git a/math/s_clog.c b/math/s_clog.c deleted file mode 100644 index f796024b47..0000000000 --- a/math/s_clog.c +++ /dev/null @@ -1,65 +0,0 @@ -/* Compute complex natural logarithm. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ double -__clog (__complex__ double x) -{ - __complex__ double result; - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - if (rcls == FP_ZERO && icls == FP_ZERO) - { - /* Real and imaginary part are 0.0. */ - __imag__ result = signbit (__real__ x) ? M_PI : 0.0; - __imag__ result = __copysign (__imag__ result, __imag__ x); - /* Yes, the following line raises an exception. */ - __real__ result = -1.0 / fabs (__real__ x); - } - else if (rcls != FP_NAN && icls != FP_NAN) - { - /* Neither real nor imaginary part is NaN. */ - __real__ result = __ieee754_log (__ieee754_hypot (__real__ x, - __imag__ x)); - __imag__ result = __ieee754_atan2 (__imag__ x, __real__ x); - } - else - { - __imag__ result = __nan (""); - if (rcls == FP_INFINITE || icls == FP_INFINITE) - /* Real or imaginary part is infinite. */ - __real__ result = HUGE_VAL; - else - __real__ result = __nan (""); - } - - return result; -} -weak_alias (__clog, clog) -#ifdef NO_LONG_DOUBLE -strong_alias (__clog, __clogl) -weak_alias (__clog, clogl) -#endif diff --git a/math/s_clog10.c b/math/s_clog10.c deleted file mode 100644 index 62c2ca724a..0000000000 --- a/math/s_clog10.c +++ /dev/null @@ -1,65 +0,0 @@ -/* Compute complex base 10 logarithm. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ double -__clog10 (__complex__ double x) -{ - __complex__ double result; - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - if (rcls == FP_ZERO && icls == FP_ZERO) - { - /* Real and imaginary part are 0.0. */ - __imag__ result = signbit (__real__ x) ? M_PI : 0.0; - __imag__ result = __copysign (__imag__ result, __imag__ x); - /* Yes, the following line raises an exception. */ - __real__ result = -1.0 / fabs (__real__ x); - } - else if (rcls != FP_NAN && icls != FP_NAN) - { - /* Neither real nor imaginary part is NaN. */ - __real__ result = __ieee754_log10 (__ieee754_hypot (__real__ x, - __imag__ x)); - __imag__ result = M_LOG10E * __ieee754_atan2 (__imag__ x, __real__ x); - } - else - { - __imag__ result = __nan (""); - if (rcls == FP_INFINITE || icls == FP_INFINITE) - /* Real or imaginary part is infinite. */ - __real__ result = HUGE_VAL; - else - __real__ result = __nan (""); - } - - return result; -} -weak_alias (__clog10, clog10) -#ifdef NO_LONG_DOUBLE -strong_alias (__clog10, __clog10l) -weak_alias (__clog10, clog10l) -#endif diff --git a/math/s_clog10f.c b/math/s_clog10f.c deleted file mode 100644 index eed81f368c..0000000000 --- a/math/s_clog10f.c +++ /dev/null @@ -1,63 +0,0 @@ -/* Compute complex base 10 logarithm. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ float -__clog10f (__complex__ float x) -{ - __complex__ float result; - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - if (rcls == FP_ZERO && icls == FP_ZERO) - { - /* Real and imaginary part are 0.0. */ - __imag__ result = signbit (__real__ x) ? M_PI : 0.0; - __imag__ result = __copysignf (__imag__ result, __imag__ x); - /* Yes, the following line raises an exception. */ - __real__ result = -1.0 / fabsf (__real__ x); - } - else if (rcls != FP_NAN && icls != FP_NAN) - { - /* Neither real nor imaginary part is NaN. */ - __real__ result = __ieee754_log10f (__ieee754_hypotf (__real__ x, - __imag__ x)); - __imag__ result = M_LOG10E * __ieee754_atan2f (__imag__ x, __real__ x); - } - else - { - __imag__ result = __nanf (""); - if (rcls == FP_INFINITE || icls == FP_INFINITE) - /* Real or imaginary part is infinite. */ - __real__ result = HUGE_VALF; - else - __real__ result = __nanf (""); - } - - return result; -} -#ifndef __clog10f -weak_alias (__clog10f, clog10f) -#endif diff --git a/math/s_clog10l.c b/math/s_clog10l.c deleted file mode 100644 index f901543d05..0000000000 --- a/math/s_clog10l.c +++ /dev/null @@ -1,61 +0,0 @@ -/* Compute complex base 10 logarithm. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ long double -__clog10l (__complex__ long double x) -{ - __complex__ long double result; - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - if (rcls == FP_ZERO && icls == FP_ZERO) - { - /* Real and imaginary part are 0.0. */ - __imag__ result = signbit (__real__ x) ? M_PIl : 0.0; - __imag__ result = __copysignl (__imag__ result, __imag__ x); - /* Yes, the following line raises an exception. */ - __real__ result = -1.0 / fabsl (__real__ x); - } - else if (rcls != FP_NAN && icls != FP_NAN) - { - /* Neither real nor imaginary part is NaN. */ - __real__ result = __ieee754_log10l (__ieee754_hypotl (__real__ x, - __imag__ x)); - __imag__ result = M_LOG10El * __ieee754_atan2l (__imag__ x, __real__ x); - } - else - { - __imag__ result = __nanl (""); - if (rcls == FP_INFINITE || icls == FP_INFINITE) - /* Real or imaginary part is infinite. */ - __real__ result = HUGE_VALL; - else - __real__ result = __nanl (""); - } - - return result; -} -weak_alias (__clog10l, clog10l) diff --git a/math/s_clogf.c b/math/s_clogf.c deleted file mode 100644 index 21e3b57b7f..0000000000 --- a/math/s_clogf.c +++ /dev/null @@ -1,63 +0,0 @@ -/* Compute complex natural logarithm. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ float -__clogf (__complex__ float x) -{ - __complex__ float result; - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - if (rcls == FP_ZERO && icls == FP_ZERO) - { - /* Real and imaginary part are 0.0. */ - __imag__ result = signbit (__real__ x) ? M_PI : 0.0; - __imag__ result = __copysignf (__imag__ result, __imag__ x); - /* Yes, the following line raises an exception. */ - __real__ result = -1.0 / fabsf (__real__ x); - } - else if (rcls != FP_NAN && icls != FP_NAN) - { - /* Neither real nor imaginary part is NaN. */ - __real__ result = __ieee754_logf (__ieee754_hypotf (__real__ x, - __imag__ x)); - __imag__ result = __ieee754_atan2f (__imag__ x, __real__ x); - } - else - { - __imag__ result = __nanf (""); - if (rcls == FP_INFINITE || icls == FP_INFINITE) - /* Real or imaginary part is infinite. */ - __real__ result = HUGE_VALF; - else - __real__ result = __nanf (""); - } - - return result; -} -#ifndef __clogf -weak_alias (__clogf, clogf) -#endif diff --git a/math/s_clogl.c b/math/s_clogl.c deleted file mode 100644 index 43118f768c..0000000000 --- a/math/s_clogl.c +++ /dev/null @@ -1,61 +0,0 @@ -/* Compute complex natural logarithm. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ long double -__clogl (__complex__ long double x) -{ - __complex__ long double result; - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - if (rcls == FP_ZERO && icls == FP_ZERO) - { - /* Real and imaginary part are 0.0. */ - __imag__ result = signbit (__real__ x) ? M_PIl : 0.0; - __imag__ result = __copysignl (__imag__ result, __imag__ x); - /* Yes, the following line raises an exception. */ - __real__ result = -1.0 / fabsl (__real__ x); - } - else if (rcls != FP_NAN && icls != FP_NAN) - { - /* Neither real nor imaginary part is NaN. */ - __real__ result = __ieee754_logl (__ieee754_hypotl (__real__ x, - __imag__ x)); - __imag__ result = __ieee754_atan2l (__imag__ x, __real__ x); - } - else - { - __imag__ result = __nanl (""); - if (rcls == FP_INFINITE || icls == FP_INFINITE) - /* Real or imaginary part is infinite. */ - __real__ result = HUGE_VALL; - else - __real__ result = __nanl (""); - } - - return result; -} -weak_alias (__clogl, clogl) diff --git a/math/s_cpow.c b/math/s_cpow.c deleted file mode 100644 index 86536cc95b..0000000000 --- a/math/s_cpow.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Complex power of double values. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - - -__complex__ double -__cpow (__complex__ double x, __complex__ double c) -{ - return __cexp (c * __clog (x)); -} -weak_alias (__cpow, cpow) -#ifdef NO_LONG_DOUBLE -strong_alias (__cpow, __cpowl) -weak_alias (__cpow, cpowl) -#endif diff --git a/math/s_cpowf.c b/math/s_cpowf.c deleted file mode 100644 index 58eaa1aa06..0000000000 --- a/math/s_cpowf.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Complex power of float values. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - - -__complex__ float -__cpowf (__complex__ float x, __complex__ float c) -{ - return __cexpf (c * __clogf (x)); -} -#ifndef __cpowf -weak_alias (__cpowf, cpowf) -#endif diff --git a/math/s_cpowl.c b/math/s_cpowl.c deleted file mode 100644 index 4c358b3ebe..0000000000 --- a/math/s_cpowl.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Complex power of long double values. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - - -__complex__ long double -__cpowl (__complex__ long double x, __complex__ long double c) -{ - return __cexpl (c * __clogl (x)); -} -weak_alias (__cpowl, cpowl) diff --git a/math/s_cproj.c b/math/s_cproj.c deleted file mode 100644 index 8e7ca41df8..0000000000 --- a/math/s_cproj.c +++ /dev/null @@ -1,51 +0,0 @@ -/* Compute projection of complex double value to Riemann sphere. - Copyright (C) 1997, 1999 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - - -__complex__ double -__cproj (__complex__ double x) -{ - __complex__ double res; - - if (isnan (__real__ x) && isnan (__imag__ x)) - return x; - else if (!isfinite (__real__ x) || !isfinite (__imag__ x)) - { - __real__ res = INFINITY; - __imag__ res = __copysign (0.0, __imag__ x); - } - else - { - double den = __real__ x * __real__ x + __imag__ x * __imag__ x + 1.0; - - __real__ res = (2.0 * __real__ x) / den; - __imag__ res = (2.0 * __imag__ x) / den; - } - - return res; -} -weak_alias (__cproj, cproj) -#ifdef NO_LONG_DOUBLE -strong_alias (__cproj, __cprojl) -weak_alias (__cproj, cprojl) -#endif diff --git a/math/s_cprojf.c b/math/s_cprojf.c deleted file mode 100644 index 83df13cfa9..0000000000 --- a/math/s_cprojf.c +++ /dev/null @@ -1,49 +0,0 @@ -/* Compute projection of complex float value to Riemann sphere. - Copyright (C) 1997, 1999 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - - -__complex__ float -__cprojf (__complex__ float x) -{ - __complex__ float res; - - if (isnan (__real__ x) && isnan (__imag__ x)) - return x; - else if (!isfinite (__real__ x) || !isfinite (__imag__ x)) - { - __real__ res = INFINITY; - __imag__ res = __copysignf (0.0, __imag__ x); - } - else - { - float den = __real__ x * __real__ x + __imag__ x * __imag__ x + 1.0; - - __real__ res = (2.0 * __real__ x) / den; - __imag__ res = (2.0 * __imag__ x) / den; - } - - return res; -} -#ifndef __cprojf -weak_alias (__cprojf, cprojf) -#endif diff --git a/math/s_cprojl.c b/math/s_cprojl.c deleted file mode 100644 index c70cdc47db..0000000000 --- a/math/s_cprojl.c +++ /dev/null @@ -1,48 +0,0 @@ -/* Compute projection of complex long double value to Riemann sphere. - Copyright (C) 1997, 1999 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - - -__complex__ long double -__cprojl (__complex__ long double x) -{ - __complex__ long double res; - - if (isnan (__real__ x) && isnan (__imag__ x)) - return x; - else if (!isfinite (__real__ x) || !isfinite (__imag__ x)) - { - __real__ res = INFINITY; - __imag__ res = __copysignl (0.0, __imag__ x); - } - else - { - long double den = (__real__ x * __real__ x + __imag__ x * __imag__ x - + 1.0); - - __real__ res = (2.0 * __real__ x) / den; - __imag__ res = (2.0 * __imag__ x) / den; - } - - return res; -} -weak_alias (__cprojl, cprojl) diff --git a/math/s_csin.c b/math/s_csin.c deleted file mode 100644 index eb380e2c3f..0000000000 --- a/math/s_csin.c +++ /dev/null @@ -1,131 +0,0 @@ -/* Complex sine function for double. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <fenv.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ double -__csin (__complex__ double x) -{ - __complex__ double retval; - int negate = signbit (__real__ x); - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - __real__ x = fabs (__real__ x); - - if (icls >= FP_ZERO) - { - /* Imaginary part is finite. */ - if (rcls >= FP_ZERO) - { - /* Real part is finite. */ - double sinh_val = __ieee754_sinh (__imag__ x); - double cosh_val = __ieee754_cosh (__imag__ x); - double sinix, cosix; - - __sincos (__real__ x, &sinix, &cosix); - - __real__ retval = cosh_val * sinix; - __imag__ retval = sinh_val * cosix; - - if (negate) - __real__ retval = -__real__ retval; - } - else - { - if (icls == FP_ZERO) - { - /* Imaginary part is 0.0. */ - __real__ retval = __nan (""); - __imag__ retval = __imag__ x; - -#ifdef FE_INVALID - if (rcls == FP_INFINITE) - feraiseexcept (FE_INVALID); -#endif - } - else - { - __real__ retval = __nan (""); - __imag__ retval = __nan (""); - -#ifdef FE_INVALID - feraiseexcept (FE_INVALID); -#endif - } - } - } - else if (icls == FP_INFINITE) - { - /* Imaginary part is infinite. */ - if (rcls == FP_ZERO) - { - /* Real part is 0.0. */ - __real__ retval = __copysign (0.0, negate ? -1.0 : 1.0); - __imag__ retval = __imag__ x; - } - else if (rcls > FP_ZERO) - { - /* Real part is finite. */ - double sinix, cosix; - - __sincos (__real__ x, &sinix, &cosix); - - __real__ retval = __copysign (HUGE_VAL, sinix); - __imag__ retval = __copysign (HUGE_VAL, cosix); - - if (negate) - __real__ retval = -__real__ retval; - if (signbit (__imag__ x)) - __imag__ retval = -__imag__ retval; - } - else - { - /* The addition raises the invalid exception. */ - __real__ retval = __nan (""); - __imag__ retval = HUGE_VAL; - -#ifdef FE_INVALID - if (rcls == FP_INFINITE) - feraiseexcept (FE_INVALID); -#endif - } - } - else - { - if (rcls == FP_ZERO) - __real__ retval = __copysign (0.0, negate ? -1.0 : 1.0); - else - __real__ retval = __nan (""); - __imag__ retval = __nan (""); - } - - return retval; -} -weak_alias (__csin, csin) -#ifdef NO_LONG_DOUBLE -strong_alias (__csin, __csinl) -weak_alias (__csin, csinl) -#endif diff --git a/math/s_csinf.c b/math/s_csinf.c deleted file mode 100644 index 8004743bd3..0000000000 --- a/math/s_csinf.c +++ /dev/null @@ -1,129 +0,0 @@ -/* Complex sine function for float. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <fenv.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ float -__csinf (__complex__ float x) -{ - __complex__ float retval; - int negate = signbit (__real__ x); - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - __real__ x = fabsf (__real__ x); - - if (icls >= FP_ZERO) - { - /* Imaginary part is finite. */ - if (rcls >= FP_ZERO) - { - /* Real part is finite. */ - float sinh_val = __ieee754_sinhf (__imag__ x); - float cosh_val = __ieee754_coshf (__imag__ x); - float sinix, cosix; - - __sincosf (__real__ x, &sinix, &cosix); - - __real__ retval = cosh_val * sinix; - __imag__ retval = sinh_val * cosix; - - if (negate) - __real__ retval = -__real__ retval; - } - else - { - if (icls == FP_ZERO) - { - /* Imaginary part is 0.0. */ - __real__ retval = __nanf (""); - __imag__ retval = __imag__ x; - -#ifdef FE_INVALID - if (rcls == FP_INFINITE) - feraiseexcept (FE_INVALID); -#endif - } - else - { - __real__ retval = __nanf (""); - __imag__ retval = __nanf (""); - -#ifdef FE_INVALID - feraiseexcept (FE_INVALID); -#endif - } - } - } - else if (icls == FP_INFINITE) - { - /* Imaginary part is infinite. */ - if (rcls == FP_ZERO) - { - /* Real part is 0.0. */ - __real__ retval = __copysignf (0.0, negate ? -1.0 : 1.0); - __imag__ retval = __imag__ x; - } - else if (rcls > FP_ZERO) - { - /* Real part is finite. */ - float sinix, cosix; - - __sincosf (__real__ x, &sinix, &cosix); - - __real__ retval = __copysignf (HUGE_VALF, sinix); - __imag__ retval = __copysignf (HUGE_VALF, cosix); - - if (negate) - __real__ retval = -__real__ retval; - if (signbit (__imag__ x)) - __imag__ retval = -__imag__ retval; - } - else - { - /* The addition raises the invalid exception. */ - __real__ retval = __nanf (""); - __imag__ retval = HUGE_VALF; - -#ifdef FE_INVALID - if (rcls == FP_INFINITE) - feraiseexcept (FE_INVALID); -#endif - } - } - else - { - if (rcls == FP_ZERO) - __real__ retval = __copysignf (0.0, negate ? -1.0 : 1.0); - else - __real__ retval = __nanf (""); - __imag__ retval = __nanf (""); - } - - return retval; -} -#ifndef __csinf -weak_alias (__csinf, csinf) -#endif diff --git a/math/s_csinh.c b/math/s_csinh.c deleted file mode 100644 index f0e0cc61f1..0000000000 --- a/math/s_csinh.c +++ /dev/null @@ -1,126 +0,0 @@ -/* Complex sine hyperbole function for double. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <fenv.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ double -__csinh (__complex__ double x) -{ - __complex__ double retval; - int negate = signbit (__real__ x); - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - __real__ x = fabs (__real__ x); - - if (rcls >= FP_ZERO) - { - /* Real part is finite. */ - if (icls >= FP_ZERO) - { - /* Imaginary part is finite. */ - double sinh_val = __ieee754_sinh (__real__ x); - double cosh_val = __ieee754_cosh (__real__ x); - double sinix, cosix; - - __sincos (__imag__ x, &sinix, &cosix); - - __real__ retval = sinh_val * cosix; - __imag__ retval = cosh_val * sinix; - - if (negate) - __real__ retval = -__real__ retval; - } - else - { - if (rcls == FP_ZERO) - { - /* Real part is 0.0. */ - __real__ retval = __copysign (0.0, negate ? -1.0 : 1.0); - __imag__ retval = __nan ("") + __nan (""); - -#ifdef FE_INVALID - if (icls == FP_INFINITE) - feraiseexcept (FE_INVALID); -#endif - } - else - { - __real__ retval = __nan (""); - __imag__ retval = __nan (""); - -#ifdef FE_INVALID - feraiseexcept (FE_INVALID); -#endif - } - } - } - else if (rcls == FP_INFINITE) - { - /* Real part is infinite. */ - if (icls == FP_ZERO) - { - /* Imaginary part is 0.0. */ - __real__ retval = negate ? -HUGE_VAL : HUGE_VAL; - __imag__ retval = __imag__ x; - } - else if (icls > FP_ZERO) - { - /* Imaginary part is finite. */ - double sinix, cosix; - - __sincos (__imag__ x, &sinix, &cosix); - - __real__ retval = __copysign (HUGE_VAL, cosix); - __imag__ retval = __copysign (HUGE_VAL, sinix); - - if (negate) - __real__ retval = -__real__ retval; - } - else - { - /* The addition raises the invalid exception. */ - __real__ retval = HUGE_VAL; - __imag__ retval = __nan ("") + __nan (""); - -#ifdef FE_INVALID - if (icls == FP_INFINITE) - feraiseexcept (FE_INVALID); -#endif - } - } - else - { - __real__ retval = __nan (""); - __imag__ retval = __imag__ x == 0.0 ? __imag__ x : __nan (""); - } - - return retval; -} -weak_alias (__csinh, csinh) -#ifdef NO_LONG_DOUBLE -strong_alias (__csinh, __csinhl) -weak_alias (__csinh, csinhl) -#endif diff --git a/math/s_csinhf.c b/math/s_csinhf.c deleted file mode 100644 index e4bb704268..0000000000 --- a/math/s_csinhf.c +++ /dev/null @@ -1,124 +0,0 @@ -/* Complex sine hyperbole function for float. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <fenv.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ float -__csinhf (__complex__ float x) -{ - __complex__ float retval; - int negate = signbit (__real__ x); - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - __real__ x = fabsf (__real__ x); - - if (rcls >= FP_ZERO) - { - /* Real part is finite. */ - if (icls >= FP_ZERO) - { - /* Imaginary part is finite. */ - float sinh_val = __ieee754_sinhf (__real__ x); - float cosh_val = __ieee754_coshf (__real__ x); - float sinix, cosix; - - __sincosf (__imag__ x, &sinix, &cosix); - - __real__ retval = sinh_val * cosix; - __imag__ retval = cosh_val * sinix; - - if (negate) - __real__ retval = -__real__ retval; - } - else - { - if (rcls == FP_ZERO) - { - /* Real part is 0.0. */ - __real__ retval = __copysignf (0.0, negate ? -1.0 : 1.0); - __imag__ retval = __nanf ("") + __nanf (""); - -#ifdef FE_INVALID - if (icls == FP_INFINITE) - feraiseexcept (FE_INVALID); -#endif - } - else - { - __real__ retval = __nanf (""); - __imag__ retval = __nanf (""); - -#ifdef FE_INVALID - feraiseexcept (FE_INVALID); -#endif - } - } - } - else if (rcls == FP_INFINITE) - { - /* Real part is infinite. */ - if (icls == FP_ZERO) - { - /* Imaginary part is 0.0. */ - __real__ retval = negate ? -HUGE_VALF : HUGE_VALF; - __imag__ retval = __imag__ x; - } - else if (icls > FP_ZERO) - { - /* Imaginary part is finite. */ - float sinix, cosix; - - __sincosf (__imag__ x, &sinix, &cosix); - - __real__ retval = __copysignf (HUGE_VALF, cosix); - __imag__ retval = __copysignf (HUGE_VALF, sinix); - - if (negate) - __real__ retval = -__real__ retval; - } - else - { - /* The addition raises the invalid exception. */ - __real__ retval = HUGE_VALF; - __imag__ retval = __nanf ("") + __nanf (""); - -#ifdef FE_INVALID - if (icls == FP_INFINITE) - feraiseexcept (FE_INVALID); -#endif - } - } - else - { - __real__ retval = __nanf (""); - __imag__ retval = __imag__ x == 0.0 ? __imag__ x : __nanf (""); - } - - return retval; -} -#ifndef __csinhf -weak_alias (__csinhf, csinhf) -#endif diff --git a/math/s_csinhl.c b/math/s_csinhl.c deleted file mode 100644 index 226075634d..0000000000 --- a/math/s_csinhl.c +++ /dev/null @@ -1,122 +0,0 @@ -/* Complex sine hyperbole function for long double. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <fenv.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ long double -__csinhl (__complex__ long double x) -{ - __complex__ long double retval; - int negate = signbit (__real__ x); - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - __real__ x = fabsl (__real__ x); - - if (rcls >= FP_ZERO) - { - /* Real part is finite. */ - if (icls >= FP_ZERO) - { - /* Imaginary part is finite. */ - long double sinh_val = __ieee754_sinhl (__real__ x); - long double cosh_val = __ieee754_coshl (__real__ x); - long double sinix, cosix; - - __sincosl (__imag__ x, &sinix, &cosix); - - __real__ retval = sinh_val * cosix; - __imag__ retval = cosh_val * sinix; - - if (negate) - __real__ retval = -__real__ retval; - } - else - { - if (rcls == FP_ZERO) - { - /* Real part is 0.0. */ - __real__ retval = __copysignl (0.0, negate ? -1.0 : 1.0); - __imag__ retval = __nanl ("") + __nanl (""); - -#ifdef FE_INVALID - if (icls == FP_INFINITE) - feraiseexcept (FE_INVALID); -#endif - } - else - { - __real__ retval = __nanl (""); - __imag__ retval = __nanl (""); - -#ifdef FE_INVALID - feraiseexcept (FE_INVALID); -#endif - } - } - } - else if (rcls == FP_INFINITE) - { - /* Real part is infinite. */ - if (icls == FP_ZERO) - { - /* Imaginary part is 0.0. */ - __real__ retval = negate ? -HUGE_VALL : HUGE_VALL; - __imag__ retval = __imag__ x; - } - else if (icls > FP_ZERO) - { - /* Imaginary part is finite. */ - long double sinix, cosix; - - __sincosl (__imag__ x, &sinix, &cosix); - - __real__ retval = __copysignl (HUGE_VALL, cosix); - __imag__ retval = __copysignl (HUGE_VALL, sinix); - - if (negate) - __real__ retval = -__real__ retval; - } - else - { - /* The addition raises the invalid exception. */ - __real__ retval = HUGE_VALL; - __imag__ retval = __nanl ("") + __nanl (""); - -#ifdef FE_INVALID - if (icls == FP_INFINITE) - feraiseexcept (FE_INVALID); -#endif - } - } - else - { - __real__ retval = __nanl (""); - __imag__ retval = __imag__ x == 0.0 ? __imag__ x : __nanl (""); - } - - return retval; -} -weak_alias (__csinhl, csinhl) diff --git a/math/s_csinl.c b/math/s_csinl.c deleted file mode 100644 index f7a1c43600..0000000000 --- a/math/s_csinl.c +++ /dev/null @@ -1,127 +0,0 @@ -/* Complex sine function for long double. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <fenv.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ long double -__csinl (__complex__ long double x) -{ - __complex__ long double retval; - int negate = signbit (__real__ x); - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - __real__ x = fabsl (__real__ x); - - if (icls >= FP_ZERO) - { - /* Imaginary part is finite. */ - if (rcls >= FP_ZERO) - { - /* Real part is finite. */ - long double sinh_val = __ieee754_sinhl (__imag__ x); - long double cosh_val = __ieee754_coshl (__imag__ x); - long double sinix, cosix; - - __sincosl (__real__ x, &sinix, &cosix); - - __real__ retval = cosh_val * sinix; - __imag__ retval = sinh_val * cosix; - - if (negate) - __real__ retval = -__real__ retval; - } - else - { - if (icls == FP_ZERO) - { - /* Imaginary part is 0.0. */ - __real__ retval = __nanl (""); - __imag__ retval = __imag__ x; - -#ifdef FE_INVALID - if (rcls == FP_INFINITE) - feraiseexcept (FE_INVALID); -#endif - } - else - { - __real__ retval = __nanl (""); - __imag__ retval = __nanl (""); - -#ifdef FE_INVALID - feraiseexcept (FE_INVALID); -#endif - } - } - } - else if (icls == FP_INFINITE) - { - /* Imaginary part is infinite. */ - if (rcls == FP_ZERO) - { - /* Real part is 0.0. */ - __real__ retval = __copysignl (0.0, negate ? -1.0 : 1.0); - __imag__ retval = __imag__ x; - } - else if (rcls > FP_ZERO) - { - /* Real part is finite. */ - long double sinix, cosix; - - __sincosl (__real__ x, &sinix, &cosix); - - __real__ retval = __copysignl (HUGE_VALL, sinix); - __imag__ retval = __copysignl (HUGE_VALL, cosix); - - if (negate) - __real__ retval = -__real__ retval; - if (signbit (__imag__ x)) - __imag__ retval = -__imag__ retval; - } - else - { - /* The addition raises the invalid exception. */ - __real__ retval = __nanl (""); - __imag__ retval = HUGE_VALL; - -#ifdef FE_INVALID - if (rcls == FP_INFINITE) - feraiseexcept (FE_INVALID); -#endif - } - } - else - { - if (rcls == FP_ZERO) - __real__ retval = __copysignl (0.0, negate ? -1.0 : 1.0); - else - __real__ retval = __nanl (""); - __imag__ retval = __nanl (""); - } - - return retval; -} -weak_alias (__csinl, csinl) diff --git a/math/s_csqrt.c b/math/s_csqrt.c deleted file mode 100644 index 04ed410a16..0000000000 --- a/math/s_csqrt.c +++ /dev/null @@ -1,114 +0,0 @@ -/* Complex square root of double value. - Copyright (C) 1997, 1998, 2005 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Based on an algorithm by Stephen L. Moshier <moshier@world.std.com>. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ double -__csqrt (__complex__ double x) -{ - __complex__ double res; - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - if (rcls <= FP_INFINITE || icls <= FP_INFINITE) - { - if (icls == FP_INFINITE) - { - __real__ res = HUGE_VAL; - __imag__ res = __imag__ x; - } - else if (rcls == FP_INFINITE) - { - if (__real__ x < 0.0) - { - __real__ res = icls == FP_NAN ? __nan ("") : 0; - __imag__ res = __copysign (HUGE_VAL, __imag__ x); - } - else - { - __real__ res = __real__ x; - __imag__ res = (icls == FP_NAN - ? __nan ("") : __copysign (0.0, __imag__ x)); - } - } - else - { - __real__ res = __nan (""); - __imag__ res = __nan (""); - } - } - else - { - if (icls == FP_ZERO) - { - if (__real__ x < 0.0) - { - __real__ res = 0.0; - __imag__ res = __copysign (__ieee754_sqrt (-__real__ x), - __imag__ x); - } - else - { - __real__ res = fabs (__ieee754_sqrt (__real__ x)); - __imag__ res = __copysign (0.0, __imag__ x); - } - } - else if (rcls == FP_ZERO) - { - double r = __ieee754_sqrt (0.5 * fabs (__imag__ x)); - - __real__ res = r; - __imag__ res = __copysign (r, __imag__ x); - } - else - { - double d, r, s; - - d = __ieee754_hypot (__real__ x, __imag__ x); - /* Use the identity 2 Re res Im res = Im x - to avoid cancellation error in d +/- Re x. */ - if (__real__ x > 0) - { - r = __ieee754_sqrt (0.5 * d + 0.5 * __real__ x); - s = (0.5 * __imag__ x) / r; - } - else - { - s = __ieee754_sqrt (0.5 * d - 0.5 * __real__ x); - r = fabs ((0.5 * __imag__ x) / s); - } - - __real__ res = r; - __imag__ res = __copysign (s, __imag__ x); - } - } - - return res; -} -weak_alias (__csqrt, csqrt) -#ifdef NO_LONG_DOUBLE -strong_alias (__csqrt, __csqrtl) -weak_alias (__csqrt, csqrtl) -#endif diff --git a/math/s_csqrtf.c b/math/s_csqrtf.c deleted file mode 100644 index 2fba69ce1b..0000000000 --- a/math/s_csqrtf.c +++ /dev/null @@ -1,112 +0,0 @@ -/* Complex square root of float value. - Copyright (C) 1997, 1998, 2005 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Based on an algorithm by Stephen L. Moshier <moshier@world.std.com>. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ float -__csqrtf (__complex__ float x) -{ - __complex__ float res; - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - if (rcls <= FP_INFINITE || icls <= FP_INFINITE) - { - if (icls == FP_INFINITE) - { - __real__ res = HUGE_VALF; - __imag__ res = __imag__ x; - } - else if (rcls == FP_INFINITE) - { - if (__real__ x < 0.0) - { - __real__ res = icls == FP_NAN ? __nanf ("") : 0; - __imag__ res = __copysignf (HUGE_VALF, __imag__ x); - } - else - { - __real__ res = __real__ x; - __imag__ res = (icls == FP_NAN - ? __nanf ("") : __copysignf (0.0, __imag__ x)); - } - } - else - { - __real__ res = __nanf (""); - __imag__ res = __nanf (""); - } - } - else - { - if (icls == FP_ZERO) - { - if (__real__ x < 0.0) - { - __real__ res = 0.0; - __imag__ res = __copysignf (__ieee754_sqrtf (-__real__ x), - __imag__ x); - } - else - { - __real__ res = fabsf (__ieee754_sqrtf (__real__ x)); - __imag__ res = __copysignf (0.0, __imag__ x); - } - } - else if (rcls == FP_ZERO) - { - float r = __ieee754_sqrtf (0.5 * fabsf (__imag__ x)); - - __real__ res = r; - __imag__ res = __copysignf (r, __imag__ x); - } - else - { - float d, r, s; - - d = __ieee754_hypotf (__real__ x, __imag__ x); - /* Use the identity 2 Re res Im res = Im x - to avoid cancellation error in d +/- Re x. */ - if (__real__ x > 0) - { - r = __ieee754_sqrtf (0.5f * d + 0.5f * __real__ x); - s = (0.5f * __imag__ x) / r; - } - else - { - s = __ieee754_sqrtf (0.5f * d - 0.5f * __real__ x); - r = fabsf ((0.5f * __imag__ x) / s); - } - - __real__ res = r; - __imag__ res = __copysignf (s, __imag__ x); - } - } - - return res; -} -#ifndef __csqrtf -weak_alias (__csqrtf, csqrtf) -#endif diff --git a/math/s_csqrtl.c b/math/s_csqrtl.c deleted file mode 100644 index 9d00946c51..0000000000 --- a/math/s_csqrtl.c +++ /dev/null @@ -1,110 +0,0 @@ -/* Complex square root of long double value. - Copyright (C) 1997, 1998, 2005 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Based on an algorithm by Stephen L. Moshier <moshier@world.std.com>. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ long double -__csqrtl (__complex__ long double x) -{ - __complex__ long double res; - int rcls = fpclassify (__real__ x); - int icls = fpclassify (__imag__ x); - - if (rcls <= FP_INFINITE || icls <= FP_INFINITE) - { - if (icls == FP_INFINITE) - { - __real__ res = HUGE_VALL; - __imag__ res = __imag__ x; - } - else if (rcls == FP_INFINITE) - { - if (__real__ x < 0.0) - { - __real__ res = icls == FP_NAN ? __nanl ("") : 0; - __imag__ res = __copysignl (HUGE_VALL, __imag__ x); - } - else - { - __real__ res = __real__ x; - __imag__ res = (icls == FP_NAN - ? __nanl ("") : __copysignl (0.0, __imag__ x)); - } - } - else - { - __real__ res = __nanl (""); - __imag__ res = __nanl (""); - } - } - else - { - if (icls == FP_ZERO) - { - if (__real__ x < 0.0) - { - __real__ res = 0.0; - __imag__ res = __copysignl (__ieee754_sqrtl (-__real__ x), - __imag__ x); - } - else - { - __real__ res = fabsl (__ieee754_sqrtl (__real__ x)); - __imag__ res = __copysignl (0.0, __imag__ x); - } - } - else if (rcls == FP_ZERO) - { - long double r = __ieee754_sqrtl (0.5 * fabsl (__imag__ x)); - - __real__ res = r; - __imag__ res = __copysignl (r, __imag__ x); - } - else - { - long double d, r, s; - - d = __ieee754_hypotl (__real__ x, __imag__ x); - /* Use the identity 2 Re res Im res = Im x - to avoid cancellation error in d +/- Re x. */ - if (__real__ x > 0) - { - r = __ieee754_sqrtl (0.5L * d + 0.5L * __real__ x); - s = (0.5L * __imag__ x) / r; - } - else - { - s = __ieee754_sqrtl (0.5L * d - 0.5L * __real__ x); - r = fabsl ((0.5L * __imag__ x) / s); - } - - __real__ res = r; - __imag__ res = __copysignl (s, __imag__ x); - } - } - - return res; -} -weak_alias (__csqrtl, csqrtl) diff --git a/math/s_ctan.c b/math/s_ctan.c deleted file mode 100644 index 0464ab86d5..0000000000 --- a/math/s_ctan.c +++ /dev/null @@ -1,84 +0,0 @@ -/* Complex tangent function for double. - Copyright (C) 1997, 2005 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <fenv.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ double -__ctan (__complex__ double x) -{ - __complex__ double res; - - if (!isfinite (__real__ x) || !isfinite (__imag__ x)) - { - if (__isinf (__imag__ x)) - { - __real__ res = __copysign (0.0, __real__ x); - __imag__ res = __copysign (1.0, __imag__ x); - } - else if (__real__ x == 0.0) - { - res = x; - } - else - { - __real__ res = __nan (""); - __imag__ res = __nan (""); - -#ifdef FE_INVALID - if (__isinf (__real__ x)) - feraiseexcept (FE_INVALID); -#endif - } - } - else - { - double sin2rx, cos2rx; - double den; - - __sincos (2.0 * __real__ x, &sin2rx, &cos2rx); - - den = cos2rx + __ieee754_cosh (2.0 * __imag__ x); - - if (den == 0.0) - { - __complex__ double ez = __cexp (1.0i * x); - __complex__ double emz = __cexp (-1.0i * x); - - res = (ez - emz) / (ez + emz) * -1.0i; - } - else - { - __real__ res = sin2rx / den; - __imag__ res = __ieee754_sinh (2.0 * __imag__ x) / den; - } - } - - return res; -} -weak_alias (__ctan, ctan) -#ifdef NO_LONG_DOUBLE -strong_alias (__ctan, __ctanl) -weak_alias (__ctan, ctanl) -#endif diff --git a/math/s_ctanf.c b/math/s_ctanf.c deleted file mode 100644 index 58d9d13298..0000000000 --- a/math/s_ctanf.c +++ /dev/null @@ -1,83 +0,0 @@ -/* Complex tangent function for float. - Copyright (C) 1997, 2005 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <fenv.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ float -__ctanf (__complex__ float x) -{ - __complex__ float res; - - if (!isfinite (__real__ x) || !isfinite (__imag__ x)) - { - if (__isinff (__imag__ x)) - { - __real__ res = __copysignf (0.0, __real__ x); - __imag__ res = __copysignf (1.0, __imag__ x); - } - else if (__real__ x == 0.0) - { - res = x; - } - else - { - __real__ res = __nanf (""); - __imag__ res = __nanf (""); - -#ifdef FE_INVALID - if (__isinff (__real__ x)) - feraiseexcept (FE_INVALID); -#endif - } - } - else - { - float sin2rx, cos2rx; - float den; - - __sincosf (2.0 * __real__ x, &sin2rx, &cos2rx); - - den = cos2rx + __ieee754_coshf (2.0 * __imag__ x); - - - if (den == 0.0) - { - __complex__ float ez = __cexpf (1.0i * x); - __complex__ float emz = __cexpf (-1.0i * x); - - res = (ez - emz) / (ez + emz) * -1.0i; - } - else - { - __real__ res = sin2rx / den; - __imag__ res = __ieee754_sinhf (2.0 * __imag__ x) / den; - } - } - - return res; -} -#ifndef __ctanf -weak_alias (__ctanf, ctanf) -#endif diff --git a/math/s_ctanh.c b/math/s_ctanh.c deleted file mode 100644 index fe38dae291..0000000000 --- a/math/s_ctanh.c +++ /dev/null @@ -1,84 +0,0 @@ -/* Complex hyperbole tangent for double. - Copyright (C) 1997, 2005 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <fenv.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ double -__ctanh (__complex__ double x) -{ - __complex__ double res; - - if (!isfinite (__real__ x) || !isfinite (__imag__ x)) - { - if (__isinf (__real__ x)) - { - __real__ res = __copysign (1.0, __real__ x); - __imag__ res = __copysign (0.0, __imag__ x); - } - else if (__imag__ x == 0.0) - { - res = x; - } - else - { - __real__ res = __nan (""); - __imag__ res = __nan (""); - -#ifdef FE_INVALID - if (__isinf (__imag__ x)) - feraiseexcept (FE_INVALID); -#endif - } - } - else - { - double sin2ix, cos2ix; - double den; - - __sincos (2.0 * __imag__ x, &sin2ix, &cos2ix); - - den = (__ieee754_cosh (2.0 * __real__ x) + cos2ix); - - if (den == 0.0) - { - __complex__ double ez = __cexp (x); - __complex__ double emz = __cexp (-x); - - res = (ez - emz) / (ez + emz); - } - else - { - __real__ res = __ieee754_sinh (2.0 * __real__ x) / den; - __imag__ res = sin2ix / den; - } - } - - return res; -} -weak_alias (__ctanh, ctanh) -#ifdef NO_LONG_DOUBLE -strong_alias (__ctanh, __ctanhl) -weak_alias (__ctanh, ctanhl) -#endif diff --git a/math/s_ctanhf.c b/math/s_ctanhf.c deleted file mode 100644 index c331dbaabb..0000000000 --- a/math/s_ctanhf.c +++ /dev/null @@ -1,82 +0,0 @@ -/* Complex hyperbole tangent for float. - Copyright (C) 1997, 2005 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <fenv.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ float -__ctanhf (__complex__ float x) -{ - __complex__ float res; - - if (!isfinite (__real__ x) || !isfinite (__imag__ x)) - { - if (__isinff (__real__ x)) - { - __real__ res = __copysignf (1.0, __real__ x); - __imag__ res = __copysignf (0.0, __imag__ x); - } - else if (__imag__ x == 0.0) - { - res = x; - } - else - { - __real__ res = __nanf (""); - __imag__ res = __nanf (""); - -#ifdef FE_INVALID - if (__isinff (__imag__ x)) - feraiseexcept (FE_INVALID); -#endif - } - } - else - { - float sin2ix, cos2ix; - float den; - - __sincosf (2.0 * __imag__ x, &sin2ix, &cos2ix); - - den = (__ieee754_coshf (2.0 * __real__ x) + cos2ix); - - if (den == 0.0f) - { - __complex__ float ez = __cexpf (x); - __complex__ float emz = __cexpf (-x); - - res = (ez - emz) / (ez + emz); - } - else - { - __real__ res = __ieee754_sinhf (2.0 * __real__ x) / den; - __imag__ res = sin2ix / den; - } - } - - return res; -} -#ifndef __ctanhf -weak_alias (__ctanhf, ctanhf) -#endif diff --git a/math/s_ctanhl.c b/math/s_ctanhl.c deleted file mode 100644 index 77ca8f8717..0000000000 --- a/math/s_ctanhl.c +++ /dev/null @@ -1,80 +0,0 @@ -/* Complex hyperbole tangent for long double. - Copyright (C) 1997, 2005 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <fenv.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ long double -__ctanhl (__complex__ long double x) -{ - __complex__ long double res; - - if (!isfinite (__real__ x) || !isfinite (__imag__ x)) - { - if (__isinfl (__real__ x)) - { - __real__ res = __copysignl (1.0, __real__ x); - __imag__ res = __copysignl (0.0, __imag__ x); - } - else if (__imag__ x == 0.0) - { - res = x; - } - else - { - __real__ res = __nanl (""); - __imag__ res = __nanl (""); - -#ifdef FE_INVALID - if (__isinfl (__imag__ x)) - feraiseexcept (FE_INVALID); -#endif - } - } - else - { - long double sin2ix, cos2ix; - long double den; - - __sincosl (2.0 * __imag__ x, &sin2ix, &cos2ix); - - den = (__ieee754_coshl (2.0 * __real__ x) + cos2ix); - - if (den == 0.0L) - { - __complex__ long double ez = __cexpl (x); - __complex__ long double emz = __cexpl (-x); - - res = (ez - emz) / (ez + emz); - } - else - { - __real__ res = __ieee754_sinhl (2.0 * __real__ x) / den; - __imag__ res = sin2ix / den; - } - } - - return res; -} -weak_alias (__ctanhl, ctanhl) diff --git a/math/s_ctanl.c b/math/s_ctanl.c deleted file mode 100644 index 89379a5ff9..0000000000 --- a/math/s_ctanl.c +++ /dev/null @@ -1,81 +0,0 @@ -/* Complex tangent function for long double. - Copyright (C) 1997, 2005 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <fenv.h> -#include <math.h> - -#include "math_private.h" - - -__complex__ long double -__ctanl (__complex__ long double x) -{ - __complex__ long double res; - - if (!isfinite (__real__ x) || !isfinite (__imag__ x)) - { - if (__isinfl (__imag__ x)) - { - __real__ res = __copysignl (0.0, __real__ x); - __imag__ res = __copysignl (1.0, __imag__ x); - } - else if (__real__ x == 0.0) - { - res = x; - } - else - { - __real__ res = __nanl (""); - __imag__ res = __nanl (""); - -#ifdef FE_INVALID - if (__isinfl (__real__ x)) - feraiseexcept (FE_INVALID); -#endif - } - } - else - { - long double sin2rx, cos2rx; - long double den; - - __sincosl (2.0 * __real__ x, &sin2rx, &cos2rx); - - den = cos2rx + __ieee754_coshl (2.0 * __imag__ x); - - - if (den == 0.0) - { - __complex__ long double ez = __cexpl (1.0i * x); - __complex__ long double emz = __cexpl (-1.0i * x); - - res = (ez - emz) / (ez + emz) * -1.0i; - } - else - { - __real__ res = sin2rx / den; - __imag__ res = __ieee754_sinhl (2.0 * __imag__ x) / den; - } - } - - return res; -} -weak_alias (__ctanl, ctanl) diff --git a/math/s_erfl.c b/math/s_erfl.c deleted file mode 100644 index f329d58809..0000000000 --- a/math/s_erfl.c +++ /dev/null @@ -1,26 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> - -long double -__erfl (long double x) -{ - fputs ("__erfl not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} -weak_alias (__erfl, erfl) - -stub_warning (erfl) - -long double -__erfcl (long double x) -{ - fputs ("__erfcl not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} -weak_alias (__erfcl, erfcl) - -stub_warning (erfcl) -#include <stub-tag.h> diff --git a/math/s_expm1l.c b/math/s_expm1l.c deleted file mode 100644 index b69d6aeb97..0000000000 --- a/math/s_expm1l.c +++ /dev/null @@ -1,16 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> - -long double -__expm1l (long double x) -{ - fputs ("__expm1l not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} -libm_hidden_def (__expm1l) -weak_alias (__expm1l, expm1l) - -stub_warning (expm1l) -#include <stub-tag.h> diff --git a/math/s_fdim.c b/math/s_fdim.c deleted file mode 100644 index 5804e631c3..0000000000 --- a/math/s_fdim.c +++ /dev/null @@ -1,40 +0,0 @@ -/* Return positive difference between arguments. - Copyright (C) 1997, 2004 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <math.h> - -double -__fdim (double x, double y) -{ - int clsx = fpclassify (x); - int clsy = fpclassify (y); - - if (clsx == FP_NAN || clsy == FP_NAN - || (y < 0 && clsx == FP_INFINITE && clsy == FP_INFINITE)) - /* Raise invalid flag. */ - return x - y; - - return x <= y ? 0 : x - y; -} -weak_alias (__fdim, fdim) -#ifdef NO_LONG_DOUBLE -strong_alias (__fdim, __fdiml) -weak_alias (__fdim, fdiml) -#endif diff --git a/math/s_fdimf.c b/math/s_fdimf.c deleted file mode 100644 index 2f3ce303ae..0000000000 --- a/math/s_fdimf.c +++ /dev/null @@ -1,36 +0,0 @@ -/* Return positive difference between arguments. - Copyright (C) 1997, 2004 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <math.h> - -float -__fdimf (float x, float y) -{ - int clsx = fpclassify (x); - int clsy = fpclassify (y); - - if (clsx == FP_NAN || clsy == FP_NAN - || (y < 0 && clsx == FP_INFINITE && clsy == FP_INFINITE)) - /* Raise invalid flag. */ - return x - y; - - return x <= y ? 0 : x - y; -} -weak_alias (__fdimf, fdimf) diff --git a/math/s_fdiml.c b/math/s_fdiml.c deleted file mode 100644 index 70246bafbd..0000000000 --- a/math/s_fdiml.c +++ /dev/null @@ -1,36 +0,0 @@ -/* Return positive difference between arguments. - Copyright (C) 1997, 2004 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <math.h> - -long double -__fdiml (long double x, long double y) -{ - int clsx = fpclassify (x); - int clsy = fpclassify (y); - - if (clsx == FP_NAN || clsy == FP_NAN - || (y < 0 && clsx == FP_INFINITE && clsy == FP_INFINITE)) - /* Raise invalid flag. */ - return x - y; - - return x <= y ? 0 : x - y; -} -weak_alias (__fdiml, fdiml) diff --git a/math/s_fma.c b/math/s_fma.c deleted file mode 100644 index e5ff5a7228..0000000000 --- a/math/s_fma.c +++ /dev/null @@ -1,33 +0,0 @@ -/* Compute x * y + z as ternary operation. - Copyright (C) 1997, 2001 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <math.h> - -double -__fma (double x, double y, double z) -{ - return (x * y) + z; -} -weak_alias (__fma, fma) - -#ifdef NO_LONG_DOUBLE -strong_alias (__fma, __fmal) -weak_alias (__fmal, fmal) -#endif diff --git a/math/s_fmaf.c b/math/s_fmaf.c deleted file mode 100644 index caa7f3afe8..0000000000 --- a/math/s_fmaf.c +++ /dev/null @@ -1,28 +0,0 @@ -/* Compute x * y + z as ternary operation. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <math.h> - -float -__fmaf (float x, float y, float z) -{ - return (x * y) + z; -} -weak_alias (__fmaf, fmaf) diff --git a/math/s_fmal.c b/math/s_fmal.c deleted file mode 100644 index b89e88b9a3..0000000000 --- a/math/s_fmal.c +++ /dev/null @@ -1,28 +0,0 @@ -/* Compute x * y + z as ternary operation. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <math.h> - -long double -__fmal (long double x, long double y, long double z) -{ - return (x * y) + z; -} -weak_alias (__fmal, fmal) diff --git a/math/s_fmax.c b/math/s_fmax.c deleted file mode 100644 index f93e14f28c..0000000000 --- a/math/s_fmax.c +++ /dev/null @@ -1,33 +0,0 @@ -/* Return maximum numeric value of X and Y. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <math.h> - - -double -__fmax (double x, double y) -{ - return (isgreaterequal (x, y) || isnan (y)) ? x : y; -} -weak_alias (__fmax, fmax) -#ifdef NO_LONG_DOUBLE -strong_alias (__fmax, __fmaxl) -weak_alias (__fmax, fmaxl) -#endif diff --git a/math/s_fmaxf.c b/math/s_fmaxf.c deleted file mode 100644 index 6f368e18b0..0000000000 --- a/math/s_fmaxf.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Return maximum numeric value of X and Y. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <math.h> - - -float -__fmaxf (float x, float y) -{ - return (isgreaterequal (x, y) || isnan (y)) ? x : y; -} -weak_alias (__fmaxf, fmaxf) diff --git a/math/s_fmaxl.c b/math/s_fmaxl.c deleted file mode 100644 index 68c7060f42..0000000000 --- a/math/s_fmaxl.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Return maximum numeric value of X and Y. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <math.h> - - -long double -__fmaxl (long double x, long double y) -{ - return (isgreaterequal (x, y) || isnan (y)) ? x : y; -} -weak_alias (__fmaxl, fmaxl) diff --git a/math/s_fmin.c b/math/s_fmin.c deleted file mode 100644 index 78f02da74a..0000000000 --- a/math/s_fmin.c +++ /dev/null @@ -1,33 +0,0 @@ -/* Return minimum numeric value of X and Y. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <math.h> - - -double -__fmin (double x, double y) -{ - return (islessequal (x, y) || isnan (y)) ? x : y; -} -weak_alias (__fmin, fmin) -#ifdef NO_LONG_DOUBLE -strong_alias (__fmin, __fminl) -weak_alias (__fmin, fminl) -#endif diff --git a/math/s_fminf.c b/math/s_fminf.c deleted file mode 100644 index d6aa9ccf62..0000000000 --- a/math/s_fminf.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Return minimum numeric value of X and Y. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <math.h> - - -float -__fminf (float x, float y) -{ - return (islessequal (x, y) || isnan (y)) ? x : y; -} -weak_alias (__fminf, fminf) diff --git a/math/s_fminl.c b/math/s_fminl.c deleted file mode 100644 index 5c1610aa85..0000000000 --- a/math/s_fminl.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Return minimum numeric value of X and Y. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <math.h> - - -long double -__fminl (long double x, long double y) -{ - return (islessequal (x, y) || isnan (y)) ? x : y; -} -weak_alias (__fminl, fminl) diff --git a/math/s_ldexp.c b/math/s_ldexp.c deleted file mode 100644 index 62e123cd01..0000000000 --- a/math/s_ldexp.c +++ /dev/null @@ -1,37 +0,0 @@ -/* @(#)s_ldexp.c 5.1 93/09/24 */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: s_ldexp.c,v 1.6 1995/05/10 20:47:40 jtc Exp $"; -#endif - -#include <math.h> -#include "math_private.h" -#include <errno.h> - -#ifdef __STDC__ - double __ldexp(double value, int exp) -#else - double __ldexp(value, exp) - double value; int exp; -#endif -{ - if(!__finite(value)||value==0.0) return value; - value = __scalbn(value,exp); - if(!__finite(value)||value==0.0) __set_errno (ERANGE); - return value; -} -weak_alias (__ldexp, ldexp) -#ifdef NO_LONG_DOUBLE -strong_alias (__ldexp, __ldexpl) -weak_alias (__ldexp, ldexpl) -#endif diff --git a/math/s_ldexpf.c b/math/s_ldexpf.c deleted file mode 100644 index 1ea5e09f8f..0000000000 --- a/math/s_ldexpf.c +++ /dev/null @@ -1,37 +0,0 @@ -/* s_ldexpf.c -- float version of s_ldexp.c. - * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: s_ldexpf.c,v 1.3 1995/05/10 20:47:42 jtc Exp $"; -#endif - -#include <math.h> -#include "math_private.h" -#include <errno.h> - -#ifdef __STDC__ - float __ldexpf(float value, int exp) -#else - float __ldexpf(value, exp) - float value; int exp; -#endif -{ - if(!__finitef(value)||value==(float)0.0) return value; - value = __scalbnf(value,exp); - if(!__finitef(value)||value==(float)0.0) __set_errno (ERANGE); - return value; -} -INTDEF(__ldexpf) -weak_alias (__ldexpf, ldexpf) diff --git a/math/s_ldexpl.c b/math/s_ldexpl.c deleted file mode 100644 index df8b29f94d..0000000000 --- a/math/s_ldexpl.c +++ /dev/null @@ -1,37 +0,0 @@ -/* s_ldexpl.c -- long double version of s_ldexp.c. - * Conversion to long double by Ulrich Drepper, - * Cygnus Support, drepper@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: $"; -#endif - -#include <math.h> -#include "math_private.h" -#include <errno.h> - -#ifdef __STDC__ - long double __ldexpl(long double value, int exp) -#else - long double __ldexpl(value, exp) - long double value; int exp; -#endif -{ - if(!__finitel(value)||value==0.0) return value; - value = __scalbnl(value,exp); - if(!__finitel(value)||value==0.0) __set_errno (ERANGE); - return value; -} -weak_alias (__ldexpl, ldexpl) diff --git a/math/s_log1pl.c b/math/s_log1pl.c deleted file mode 100644 index e5db9078bf..0000000000 --- a/math/s_log1pl.c +++ /dev/null @@ -1,15 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> - -long double -__log1pl (long double x) -{ - fputs ("__log1pl not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} -weak_alias (__log1pl, log1pl) - -stub_warning (log1pl) -#include <stub-tag.h> diff --git a/math/s_nan.c b/math/s_nan.c deleted file mode 100644 index 9b2c50558b..0000000000 --- a/math/s_nan.c +++ /dev/null @@ -1,44 +0,0 @@ -/* Return quiet nan. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <math.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <ieee754.h> - - -double -__nan (const char *tagp) -{ - if (tagp[0] != '\0') - { - char buf[6 + strlen (tagp)]; - sprintf (buf, "NAN(%s)", tagp); - return strtod (buf, NULL); - } - - return NAN; -} -weak_alias (__nan, nan) -#ifdef NO_LONG_DOUBLE -strong_alias (__nan, __nanl) -weak_alias (__nan, nanl) -#endif diff --git a/math/s_nanf.c b/math/s_nanf.c deleted file mode 100644 index 2e1b1eb911..0000000000 --- a/math/s_nanf.c +++ /dev/null @@ -1,40 +0,0 @@ -/* Return quiet nan. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <math.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <ieee754.h> - - -float -__nanf (const char *tagp) -{ - if (tagp[0] != '\0') - { - char buf[6 + strlen (tagp)]; - sprintf (buf, "NAN(%s)", tagp); - return strtof (buf, NULL); - } - - return NAN; -} -weak_alias (__nanf, nanf) diff --git a/math/s_nanl.c b/math/s_nanl.c deleted file mode 100644 index 9709b92383..0000000000 --- a/math/s_nanl.c +++ /dev/null @@ -1,40 +0,0 @@ -/* Return quiet nan. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <math.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <ieee754.h> - - -long double -__nanl (const char *tagp) -{ - if (tagp[0] != '\0') - { - char buf[6 + strlen (tagp)]; - sprintf (buf, "NAN(%s)", tagp); - return strtold (buf, NULL); - } - - return NAN; -} -weak_alias (__nanl, nanl) diff --git a/math/s_nextafter.c b/math/s_nextafter.c deleted file mode 100644 index d2af52dda3..0000000000 --- a/math/s_nextafter.c +++ /dev/null @@ -1,100 +0,0 @@ -/* @(#)s_nextafter.c 5.1 93/09/24 */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: s_nextafter.c,v 1.8 1995/05/10 20:47:58 jtc Exp $"; -#endif - -/* IEEE functions - * nextafter(x,y) - * return the next machine floating-point number of x in the - * direction toward y. - * Special cases: - */ - -/* Ugly hack so that the aliasing works. */ -#define __nexttoward __internal___nexttoward -#define nexttoward __internal_nexttoward - -#include <math.h> -#include <math_private.h> -#include <float.h> - -#ifdef __STDC__ - double __nextafter(double x, double y) -#else - double __nextafter(x,y) - double x,y; -#endif -{ - int32_t hx,hy,ix,iy; - u_int32_t lx,ly; - - EXTRACT_WORDS(hx,lx,x); - EXTRACT_WORDS(hy,ly,y); - ix = hx&0x7fffffff; /* |x| */ - iy = hy&0x7fffffff; /* |y| */ - - if(((ix>=0x7ff00000)&&((ix-0x7ff00000)|lx)!=0) || /* x is nan */ - ((iy>=0x7ff00000)&&((iy-0x7ff00000)|ly)!=0)) /* y is nan */ - return x+y; - if(x==y) return y; /* x=y, return y */ - if((ix|lx)==0) { /* x == 0 */ - double u; - INSERT_WORDS(x,hy&0x80000000,1); /* return +-minsubnormal */ - u = math_opt_barrier (x); - u = u*u; - math_force_eval (u); /* raise underflow flag */ - return x; - } - if(hx>=0) { /* x > 0 */ - if(hx>hy||((hx==hy)&&(lx>ly))) { /* x > y, x -= ulp */ - if(lx==0) hx -= 1; - lx -= 1; - } else { /* x < y, x += ulp */ - lx += 1; - if(lx==0) hx += 1; - } - } else { /* x < 0 */ - if(hy>=0||hx>hy||((hx==hy)&&(lx>ly))){/* x < y, x -= ulp */ - if(lx==0) hx -= 1; - lx -= 1; - } else { /* x > y, x += ulp */ - lx += 1; - if(lx==0) hx += 1; - } - } - hy = hx&0x7ff00000; - if(hy>=0x7ff00000) { - x = x+x; /* overflow */ - if (FLT_EVAL_METHOD != 0 && FLT_EVAL_METHOD != 1) - asm ("" : "+m"(x)); - return x; /* overflow */ - } - if(hy<0x00100000) { - double u = x*x; /* underflow */ - math_force_eval (u); /* raise underflow flag */ - } - INSERT_WORDS(x,hx,lx); - return x; -} -weak_alias (__nextafter, nextafter) -#ifdef NO_LONG_DOUBLE -strong_alias (__nextafter, __nextafterl) -weak_alias (__nextafter, nextafterl) -strong_alias (__nextafter, __nexttowardl) -weak_alias (__nexttowardl, nexttowardl) -#undef __nexttoward -strong_alias (__nextafter, __nexttoward) -#undef nexttoward -weak_alias (__nextafter, nexttoward) -#endif diff --git a/math/s_nexttowardf.c b/math/s_nexttowardf.c deleted file mode 100644 index 0494d1a4e9..0000000000 --- a/math/s_nexttowardf.c +++ /dev/null @@ -1,85 +0,0 @@ -/* Single precision version of nexttoward.c. - Conversion to IEEE single float by Jakub Jelinek, jj@ultra.linux.cz. */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -/* IEEE functions - * nexttowardf(x,y) - * return the next machine floating-point number of x in the - * direction toward y. - * This is for machines which use the same binary type for double and - * long double. - * Special cases: - */ - -#include <math.h> -#include <math_private.h> -#include <float.h> - -#ifdef __STDC__ - float __nexttowardf(float x, long double y) -#else - float __nexttowardf(x,y) - float x; - long double y; -#endif -{ - int32_t hx,hy,ix,iy; - u_int32_t ly; - - GET_FLOAT_WORD(hx,x); - EXTRACT_WORDS(hy,ly,y); - ix = hx&0x7fffffff; /* |x| */ - iy = hy&0x7fffffff; /* |y| */ - - if((ix>0x7f800000) || /* x is nan */ - ((iy>=0x7ff00000)&&((iy-0x7ff00000)|ly)!=0)) /* y is nan */ - return x+y; - if((long double) x==y) return y; /* x=y, return y */ - if(ix==0) { /* x == 0 */ - float u; - SET_FLOAT_WORD(x,(u_int32_t)(hy&0x80000000)|1);/* return +-minsub*/ - u = math_opt_barrier (x); - u = u * u; - math_force_eval (u); /* raise underflow flag */ - return x; - } - if(hx>=0) { /* x > 0 */ - if(hy<0||(ix>>23)>(iy>>20)-0x380 - || ((ix>>23)==(iy>>20)-0x380 - && (ix&0x7fffff)>(((hy<<3)|(ly>>29))&0x7fffff))) /* x > y, x -= ulp */ - hx -= 1; - else /* x < y, x += ulp */ - hx += 1; - } else { /* x < 0 */ - if(hy>=0||(ix>>23)>(iy>>20)-0x380 - || ((ix>>23)==(iy>>20)-0x380 - && (ix&0x7fffff)>(((hy<<3)|(ly>>29))&0x7fffff))) /* x < y, x -= ulp */ - hx -= 1; - else /* x > y, x += ulp */ - hx += 1; - } - hy = hx&0x7f800000; - if(hy>=0x7f800000) { - x = x+x; /* overflow */ - if (FLT_EVAL_METHOD != 0) - /* Force conversion to float. */ - asm ("" : "+m"(x)); - return x; - } - if(hy<0x00800000) { - float u = x*x; /* underflow */ - math_force_eval (u); /* raise underflow flag */ - } - SET_FLOAT_WORD(x,hx); - return x; -} -weak_alias (__nexttowardf, nexttowardf) diff --git a/math/s_nexttowardl.c b/math/s_nexttowardl.c deleted file mode 100644 index 73c3610fc1..0000000000 --- a/math/s_nexttowardl.c +++ /dev/null @@ -1 +0,0 @@ -/* This function is the same as nextafterl so we use an alias there. */ diff --git a/math/s_significand.c b/math/s_significand.c deleted file mode 100644 index 4a02dbcba1..0000000000 --- a/math/s_significand.c +++ /dev/null @@ -1,39 +0,0 @@ -/* @(#)s_signif.c 5.1 93/09/24 */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: s_significand.c,v 1.6 1995/05/10 20:48:11 jtc Exp $"; -#endif - -/* - * significand(x) computes just - * scalb(x, (double) -ilogb(x)), - * for exercising the fraction-part(F) IEEE 754-1985 test vector. - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - double __significand(double x) -#else - double __significand(x) - double x; -#endif -{ - return __ieee754_scalb(x,(double) -__ilogb(x)); -} -weak_alias (__significand, significand) -#ifdef NO_LONG_DOUBLE -strong_alias (__significand, __significandl) -weak_alias (__significand, significandl) -#endif diff --git a/math/s_significandf.c b/math/s_significandf.c deleted file mode 100644 index 69de1e6b0e..0000000000 --- a/math/s_significandf.c +++ /dev/null @@ -1,32 +0,0 @@ -/* s_significandf.c -- float version of s_significand.c. - * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: s_significandf.c,v 1.3 1995/05/10 20:48:13 jtc Exp $"; -#endif - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - float __significandf(float x) -#else - float __significandf(x) - float x; -#endif -{ - return __ieee754_scalbf(x,(float) -__ilogbf(x)); -} -weak_alias (__significandf, significandf) diff --git a/math/s_significandl.c b/math/s_significandl.c deleted file mode 100644 index 9fa0e4ff91..0000000000 --- a/math/s_significandl.c +++ /dev/null @@ -1,39 +0,0 @@ -/* s_significandl.c -- long double version of s_significand.c. - * Conversion to long double by Ulrich Drepper, - * Cygnus Support, drepper@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: $"; -#endif - -/* - * significandl(x) computes just - * scalbl(x, (long double) -ilogbl(x)), - * for exercising the fraction-part(F) IEEE 754-1985 test vector. - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - long double __significandl(long double x) -#else - long double __significandl(x) - long double x; -#endif -{ - return __ieee754_scalbl(x,(long double) -ilogbl(x)); -} -weak_alias (__significandl, significandl) diff --git a/math/s_tanhl.c b/math/s_tanhl.c deleted file mode 100644 index bc9a2d7f48..0000000000 --- a/math/s_tanhl.c +++ /dev/null @@ -1,15 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> - -long double -__tanhl(long double x) -{ - fputs ("__tanhl not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -weak_alias (__tanhl, tanhl) -stub_warning (tanhl) -#include <stub-tag.h> diff --git a/math/setfpucw.c b/math/setfpucw.c deleted file mode 100644 index cb50f9f3f1..0000000000 --- a/math/setfpucw.c +++ /dev/null @@ -1,37 +0,0 @@ -/* Set the FPU control word. - Copyright (C) 1996, 1997, 1999 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <math.h> -#include <fpu_control.h> - -void -__setfpucw (fpu_control_t set) -{ - fpu_control_t cw; - - /* Fetch the current control word. */ - _FPU_GETCW (cw); - - /* Preserve the reserved bits, and set the rest as the user - specified (or the default, if the user gave zero). */ - cw &= _FPU_RESERVED; - cw |= set & ~_FPU_RESERVED; - - _FPU_SETCW (cw); -} diff --git a/math/t_sincosl.c b/math/t_sincosl.c deleted file mode 100644 index 6b271e6ff1..0000000000 --- a/math/t_sincosl.c +++ /dev/null @@ -1 +0,0 @@ -/* Empty. Not needed unless ldbl __kernel_* functions use it. */ diff --git a/math/test-misc.c b/math/test-misc.c index 862e11f0c3..fa958d486c 100644 --- a/math/test-misc.c +++ b/math/test-misc.c @@ -1,5 +1,5 @@ /* Miscellaneous tests which don't fit anywhere else. - Copyright (C) 2000, 2001, 2004, 2005, 2007 Free Software Foundation, Inc. + Copyright (C) 2000, 2001 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 @@ -44,6 +44,7 @@ main (void) } } +# if __GNUC__ >= 3 || __GNUC_MINOR__ >= 96 { long double x; long double m; @@ -51,17 +52,17 @@ main (void) int e; int i; -# if LDBL_MANT_DIG == 64 +# if LDBL_MANT_DIG == 64 m = 0xf.fffffffffffffffp-4L; -# elif LDBL_MANT_DIG == 106 +# elif LDBL_MANT_DIG == 106 /* This has to match the mantissa of LDBL_MAX which actually does have a missing bit in the middle. */ m = 0x1.fffffffffffff7ffffffffffff8p-1L; -# elif LDBL_MANT_DIG == 113 +# elif LDBL_MANT_DIG == 113 m = 0x1.ffffffffffffffffffffffffffffp-1L; -# else -# error "Please adjust" -# endif +# else +# error "Please adjust" +# endif for (i = LDBL_MAX_EXP, x = LDBL_MAX; i >= LDBL_MIN_EXP; --i, x /= 2.0L) { @@ -105,8 +106,9 @@ main (void) } } +# endif -# if 0 +#if 0 { int e; long double r = frexpl (LDBL_MIN * LDBL_EPSILON, &e); @@ -124,7 +126,7 @@ main (void) result = 1; } } -# endif +#endif #endif { @@ -1141,99 +1143,5 @@ main (void) } #endif - /* The tests here are very similar to tests earlier in this file, - the important difference is just that there are no intervening - union variables that cause some GCC versions to hide possible - bugs in nextafter* implementation. */ - if (nextafterf (nextafterf (FLT_MIN, FLT_MIN / 2.0), FLT_MIN) != FLT_MIN) - { - puts ("nextafterf FLT_MIN test failed"); - result = 1; - } - if (nextafterf (nextafterf (-FLT_MIN, -FLT_MIN / 2.0), -FLT_MIN) - != -FLT_MIN) - { - puts ("nextafterf -FLT_MIN test failed"); - result = 1; - } - if (nextafter (nextafter (DBL_MIN, DBL_MIN / 2.0), DBL_MIN) != DBL_MIN) - { - puts ("nextafter DBL_MIN test failed"); - result = 1; - } - if (nextafter (nextafter (-DBL_MIN, -DBL_MIN / 2.0), -DBL_MIN) != -DBL_MIN) - { - puts ("nextafter -DBL_MIN test failed"); - result = 1; - } -#ifndef NO_LONG_DOUBLE - if (nextafterl (nextafterl (LDBL_MIN, LDBL_MIN / 2.0), LDBL_MIN) - != LDBL_MIN) - { - puts ("nextafterl LDBL_MIN test failed"); - result = 1; - } - if (nextafterl (nextafterl (-LDBL_MIN, -LDBL_MIN / 2.0), -LDBL_MIN) - != -LDBL_MIN) - { - puts ("nextafterl -LDBL_MIN test failed"); - result = 1; - } -#endif - - volatile float f1 = FLT_MAX; - volatile float f2 = FLT_MAX / 2; - (void) &f1; - (void) &f2; - feclearexcept (FE_ALL_EXCEPT); - f2 += f1; - int fe = fetestexcept (FE_ALL_EXCEPT); - if (fe != (FE_OVERFLOW | FE_INEXACT)) - { - printf ("float overflow test failed: %x\n", fe); - result = 1; - } - - volatile double d1 = DBL_MAX; - volatile double d2 = DBL_MAX / 2; - (void) &d1; - (void) &d2; - feclearexcept (FE_ALL_EXCEPT); - d2 += d1; - fe = fetestexcept (FE_ALL_EXCEPT); - if (fe != (FE_OVERFLOW | FE_INEXACT)) - { - printf ("double overflow test failed: %x\n", fe); - result = 1; - } - -#ifndef NO_LONG_DOUBLE - volatile long double ld1 = LDBL_MAX; - volatile long double ld2 = LDBL_MAX / 2; - (void) &ld1; - (void) &ld2; - feclearexcept (FE_ALL_EXCEPT); - ld2 += ld1; - fe = fetestexcept (FE_ALL_EXCEPT); - if (fe != (FE_OVERFLOW | FE_INEXACT)) - { - printf ("long double overflow test failed: %x\n", fe); - result = 1; - } -#endif - -#if !defined NO_LONG_DOUBLE && LDBL_MANT_DIG == 113 - volatile long double ld3 = 0x1.0000000000010000000100000001p+1; - volatile long double ld4 = 0x1.0000000000000000000000000001p+1; - (void) &ld3; - (void) &ld4; - ld3 -= ld4; - if (ld3 != 0x1.0p-47) - { - printf ("long double subtraction test failed %.28La\n", ld3); - result = 1; - } -#endif - return result; } diff --git a/math/test-tgmath-int.c b/math/test-tgmath-int.c deleted file mode 100644 index 99ebe9f508..0000000000 --- a/math/test-tgmath-int.c +++ /dev/null @@ -1,71 +0,0 @@ -/* Test compilation of tgmath macros. - Copyright (C) 2005 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Andreas Jaeger <aj@suse.de>, 2005. - - 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <math.h> -#include <complex.h> -#include <tgmath.h> -#include <stdio.h> - -static int errors = 0; - -static void -our_error (const char *c) -{ - puts (c); - ++errors; -} - -#define CHECK_RET_CONST_TYPE(func, rettype, name) \ - if (sizeof (func) != sizeof (rettype)) \ - our_error ("Return size of " #name " is " #func" wrong"); - -#define CHECK_RET_CONST_FLOAT(func, name) \ - CHECK_RET_CONST_TYPE (func, float, name) - -#define CHECK_RET_CONST_DOUBLE(func, name) \ - CHECK_RET_CONST_TYPE (func, double, name) - -static int -do_test (void) -{ - int i; - float f; - double d; - - CHECK_RET_CONST_DOUBLE (sin (i), "sin (i)"); - CHECK_RET_CONST_DOUBLE (pow (i, i), "pow (i, i)"); - CHECK_RET_CONST_DOUBLE (pow (i, i), "pow (i, i)"); - CHECK_RET_CONST_DOUBLE (pow (i, f), "pow (i, f)"); - CHECK_RET_CONST_DOUBLE (pow (i, d), "pow (i, d)"); - CHECK_RET_CONST_DOUBLE (pow (f, i), "pow (f, i)"); - CHECK_RET_CONST_DOUBLE (pow (d, i), "pow (d, i)"); - CHECK_RET_CONST_DOUBLE (fma (i, i, i), "fma (i, i, i)"); - CHECK_RET_CONST_DOUBLE (fma (f, i, i), "fma (f, i, i)"); - CHECK_RET_CONST_DOUBLE (fma (i, f, i), "fma (i, f, i)"); - CHECK_RET_CONST_DOUBLE (fma (i, i, f), "fma (i, i, f)"); - CHECK_RET_CONST_DOUBLE (fma (d, i, i), "fma (d, i, i)"); - CHECK_RET_CONST_DOUBLE (fma (i, d, i), "fma (i, d, i)"); - CHECK_RET_CONST_DOUBLE (fma (i, i, d), "fma (i, i, d)"); - - return errors != 0; -} - -#define TEST_FUNCTION do_test () -#include "../test-skeleton.c" diff --git a/math/tgmath.h b/math/tgmath.h index f3d23f6e52..ab2cc929ad 100644 --- a/math/tgmath.h +++ b/math/tgmath.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 +/* Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -98,8 +98,7 @@ __tgmres; })) # define __TGMATH_BINARY_REAL_ONLY(Val1, Val2, Fct) \ - (__extension__ ({ __typeof((__tgmath_real_type (Val1)) 0 \ - + (__tgmath_real_type (Val2)) 0) __tgmres; \ + (__extension__ ({ __tgmath_real_type ((Val1) + (Val2)) __tgmres; \ if ((sizeof (Val1) > sizeof (double) \ || sizeof (Val2) > sizeof (double)) \ && __builtin_classify_type ((Val1) + (Val2)) == 8) \ @@ -114,8 +113,7 @@ __tgmres; })) # define __TGMATH_TERNARY_FIRST_SECOND_REAL_ONLY(Val1, Val2, Val3, Fct) \ - (__extension__ ({ __typeof((__tgmath_real_type (Val1)) 0 \ - + (__tgmath_real_type (Val2)) 0) __tgmres; \ + (__extension__ ({ __tgmath_real_type ((Val1) + (Val2)) __tgmres; \ if ((sizeof (Val1) > sizeof (double) \ || sizeof (Val2) > sizeof (double)) \ && __builtin_classify_type ((Val1) + (Val2)) == 8) \ @@ -130,9 +128,7 @@ __tgmres; })) # define __TGMATH_TERNARY_REAL_ONLY(Val1, Val2, Val3, Fct) \ - (__extension__ ({ __typeof((__tgmath_real_type (Val1)) 0 \ - + (__tgmath_real_type (Val2)) 0 \ - + (__tgmath_real_type (Val3)) 0) __tgmres; \ + (__extension__ ({ __tgmath_real_type ((Val1) + (Val2) + (Val3)) __tgmres;\ if ((sizeof (Val1) > sizeof (double) \ || sizeof (Val2) > sizeof (double) \ || sizeof (Val3) > sizeof (double)) \ @@ -213,8 +209,7 @@ /* XXX This definition has to be changed as soon as the compiler understands the imaginary keyword. */ # define __TGMATH_BINARY_REAL_IMAG(Val1, Val2, Fct, Cfct) \ - (__extension__ ({ __typeof((__tgmath_real_type (Val1)) 0 \ - + (__tgmath_real_type (Val2)) 0) __tgmres; \ + (__extension__ ({ __tgmath_real_type ((Val1) + (Val2)) __tgmres; \ if ((sizeof (__real__ (Val1)) > sizeof (double) \ || sizeof (__real__ (Val2)) > sizeof (double)) \ && __builtin_classify_type (__real__ (Val1) \ diff --git a/math/w_acos.c b/math/w_acos.c deleted file mode 100644 index f4e6e3c910..0000000000 --- a/math/w_acos.c +++ /dev/null @@ -1,48 +0,0 @@ -/* @(#)w_acos.c 5.1 93/09/24 */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_acos.c,v 1.6 1995/05/10 20:48:26 jtc Exp $"; -#endif - -/* - * wrap_acos(x) - */ - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - double __acos(double x) /* wrapper acos */ -#else - double __acos(x) /* wrapper acos */ - double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_acos(x); -#else - double z; - z = __ieee754_acos(x); - if(_LIB_VERSION == _IEEE_ || __isnan(x)) return z; - if(fabs(x)>1.0) { - return __kernel_standard(x,x,1); /* acos(|x|>1) */ - } else - return z; -#endif -} -weak_alias (__acos, acos) -#ifdef NO_LONG_DOUBLE -strong_alias (__acos, __acosl) -weak_alias (__acos, acosl) -#endif diff --git a/math/w_acosf.c b/math/w_acosf.c deleted file mode 100644 index a8998efb84..0000000000 --- a/math/w_acosf.c +++ /dev/null @@ -1,48 +0,0 @@ -/* w_acosf.c -- float version of w_acos.c. - * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_acosf.c,v 1.3 1995/05/10 20:48:29 jtc Exp $"; -#endif - -/* - * wrap_acosf(x) - */ - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - float __acosf(float x) /* wrapper acosf */ -#else - float __acosf(x) /* wrapper acosf */ - float x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_acosf(x); -#else - float z; - z = __ieee754_acosf(x); - if(_LIB_VERSION == _IEEE_ || __isnanf(x)) return z; - if(fabsf(x)>(float)1.0) { - /* acosf(|x|>1) */ - return (float)__kernel_standard((double)x,(double)x,101); - } else - return z; -#endif -} -weak_alias (__acosf, acosf) diff --git a/math/w_acosh.c b/math/w_acosh.c deleted file mode 100644 index e8322ec667..0000000000 --- a/math/w_acosh.c +++ /dev/null @@ -1,47 +0,0 @@ -/* @(#)w_acosh.c 5.1 93/09/24 */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_acosh.c,v 1.6 1995/05/10 20:48:31 jtc Exp $"; -#endif - -/* - * wrapper acosh(x) - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - double __acosh(double x) /* wrapper acosh */ -#else - double __acosh(x) /* wrapper acosh */ - double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_acosh(x); -#else - double z; - z = __ieee754_acosh(x); - if(_LIB_VERSION == _IEEE_ || __isnan(x)) return z; - if(x<1.0) { - return __kernel_standard(x,x,29); /* acosh(x<1) */ - } else - return z; -#endif -} -weak_alias (__acosh, acosh) -#ifdef NO_LONG_DOUBLE -strong_alias (__acosh, __acoshl) -weak_alias (__acosh, acoshl) -#endif diff --git a/math/w_acoshf.c b/math/w_acoshf.c deleted file mode 100644 index 62f94b80e7..0000000000 --- a/math/w_acoshf.c +++ /dev/null @@ -1,48 +0,0 @@ -/* w_acoshf.c -- float version of w_acosh.c. - * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - * - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_acoshf.c,v 1.3 1995/05/10 20:48:33 jtc Exp $"; -#endif - -/* - * wrapper acoshf(x) - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - float __acoshf(float x) /* wrapper acoshf */ -#else - float __acoshf(x) /* wrapper acoshf */ - float x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_acoshf(x); -#else - float z; - z = __ieee754_acoshf(x); - if(_LIB_VERSION == _IEEE_ || __isnanf(x)) return z; - if(x<(float)1.0) { - /* acosh(x<1) */ - return (float)__kernel_standard((double)x,(double)x,129); - } else - return z; -#endif -} -weak_alias (__acoshf, acoshf) diff --git a/math/w_acoshl.c b/math/w_acoshl.c deleted file mode 100644 index ae67911ae5..0000000000 --- a/math/w_acoshl.c +++ /dev/null @@ -1,47 +0,0 @@ -/* w_acoshl.c -- long double version of w_acosh.c. - * Conversion to long double by Ulrich Drepper, - * Cygnus Support, drepper@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: $"; -#endif - -/* - * wrapper acoshl(x) - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - long double __acoshl(long double x) /* wrapper acosh */ -#else - long double __acoshl(x) /* wrapper acosh */ - long double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_acoshl(x); -#else - long double z; - z = __ieee754_acoshl(x); - if(_LIB_VERSION == _IEEE_ || __isnanl(x)) return z; - if(x<1.0) { - return __kernel_standard(x,x,229); /* acoshl(x<1) */ - } else - return z; -#endif -} -weak_alias (__acoshl, acoshl) diff --git a/math/w_acosl.c b/math/w_acosl.c deleted file mode 100644 index 9ab4de899f..0000000000 --- a/math/w_acosl.c +++ /dev/null @@ -1,48 +0,0 @@ -/* w_acosl.c -- long double version of w_acos.c. - * Conversion to long double by Ulrich Drepper, - * Cygnus Support, drepper@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: $"; -#endif - -/* - * wrap_acosl(x) - */ - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - long double __acosl(long double x) /* wrapper acos */ -#else - long double __acosl(x) /* wrapper acos */ - long double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_acosl(x); -#else - long double z; - z = __ieee754_acosl(x); - if(_LIB_VERSION == _IEEE_ || __isnanl(x)) return z; - if(fabsl(x)>1.0) { - return __kernel_standard(x,x,201); /* acosl(|x|>1) */ - } else - return z; -#endif -} -weak_alias (__acosl, acosl) diff --git a/math/w_asin.c b/math/w_asin.c deleted file mode 100644 index d531fbd26a..0000000000 --- a/math/w_asin.c +++ /dev/null @@ -1,49 +0,0 @@ -/* @(#)w_asin.c 5.1 93/09/24 */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_asin.c,v 1.6 1995/05/10 20:48:35 jtc Exp $"; -#endif - -/* - * wrapper asin(x) - */ - - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - double __asin(double x) /* wrapper asin */ -#else - double __asin(x) /* wrapper asin */ - double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_asin(x); -#else - double z; - z = __ieee754_asin(x); - if(_LIB_VERSION == _IEEE_ || __isnan(x)) return z; - if(fabs(x)>1.0) { - return __kernel_standard(x,x,2); /* asin(|x|>1) */ - } else - return z; -#endif -} -weak_alias (__asin, asin) -#ifdef NO_LONG_DOUBLE -strong_alias (__asin, __asinl) -weak_alias (__asin, asinl) -#endif diff --git a/math/w_asinf.c b/math/w_asinf.c deleted file mode 100644 index b19b5c54e3..0000000000 --- a/math/w_asinf.c +++ /dev/null @@ -1,49 +0,0 @@ -/* w_asinf.c -- float version of w_asin.c. - * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_asinf.c,v 1.3 1995/05/10 20:48:37 jtc Exp $"; -#endif - -/* - * wrapper asinf(x) - */ - - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - float __asinf(float x) /* wrapper asinf */ -#else - float __asinf(x) /* wrapper asinf */ - float x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_asinf(x); -#else - float z; - z = __ieee754_asinf(x); - if(_LIB_VERSION == _IEEE_ || __isnanf(x)) return z; - if(fabsf(x)>(float)1.0) { - /* asinf(|x|>1) */ - return (float)__kernel_standard((double)x,(double)x,102); - } else - return z; -#endif -} -weak_alias (__asinf, asinf) diff --git a/math/w_asinl.c b/math/w_asinl.c deleted file mode 100644 index fb5ee35fc0..0000000000 --- a/math/w_asinl.c +++ /dev/null @@ -1,49 +0,0 @@ -/* w_asinl.c -- long double version of w_asin.c. - * Conversion to long double by Ulrich Drepper, - * Cygnus Support, drepper@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: $"; -#endif - -/* - * wrapper asinl(x) - */ - - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - long double __asinl(long double x) /* wrapper asinl */ -#else - long double __asinl(x) /* wrapper asinl */ - long double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_asinl(x); -#else - long double z; - z = __ieee754_asinl(x); - if(_LIB_VERSION == _IEEE_ || __isnanl(x)) return z; - if(fabsl(x)>1.0) { - return __kernel_standard(x,x,202); /* asinl(|x|>1) */ - } else - return z; -#endif -} -weak_alias (__asinl, asinl) diff --git a/math/w_atan2.c b/math/w_atan2.c deleted file mode 100644 index f0a10d4102..0000000000 --- a/math/w_atan2.c +++ /dev/null @@ -1,47 +0,0 @@ -/* @(#)w_atan2.c 5.1 93/09/24 */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_atan2.c,v 1.6 1995/05/10 20:48:39 jtc Exp $"; -#endif - -/* - * wrapper atan2(y,x) - */ - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - double __atan2(double y, double x) /* wrapper atan2 */ -#else - double __atan2(y,x) /* wrapper atan2 */ - double y,x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_atan2(y,x); -#else - double z; - z = __ieee754_atan2(y,x); - if(_LIB_VERSION != _SVID_||__isnan(x)||__isnan(y)) return z; - if(x==0.0&&y==0.0) - return __kernel_standard(y,x,3); /* atan2(+-0,+-0) */ - return z; -#endif -} -weak_alias (__atan2, atan2) -#ifdef NO_LONG_DOUBLE -strong_alias (__atan2, __atan2l) -weak_alias (__atan2, atan2l) -#endif diff --git a/math/w_atan2f.c b/math/w_atan2f.c deleted file mode 100644 index efb08f076b..0000000000 --- a/math/w_atan2f.c +++ /dev/null @@ -1,46 +0,0 @@ -/* w_atan2f.c -- float version of w_atan2.c. - * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_atan2f.c,v 1.3 1995/05/10 20:48:42 jtc Exp $"; -#endif - -/* - * wrapper atan2f(y,x) - */ - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - float __atan2f(float y, float x) /* wrapper atan2f */ -#else - float __atan2f(y,x) /* wrapper atan2 */ - float y,x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_atan2f(y,x); -#else - float z; - z = __ieee754_atan2f(y,x); - if(_LIB_VERSION != _SVID_||__isnanf(x)||__isnanf(y)) return z; - if(x==0.0&&y==0.0) - return __kernel_standard(y,x,103); /* atan2(+-0,+-0) */ - return z; -#endif -} -weak_alias (__atan2f, atan2f) diff --git a/math/w_atan2l.c b/math/w_atan2l.c deleted file mode 100644 index 9672e9615f..0000000000 --- a/math/w_atan2l.c +++ /dev/null @@ -1,47 +0,0 @@ -/* w_atan2l.c -- long double version of w_atan2.c. - * Conversion to long double by Ulrich Drepper, - * Cygnus Support, drepper@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: $"; -#endif - -/* - * wrapper atan2l(y,x) - */ - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - long double __atan2l(long double y, long double x) /* wrapper atan2l */ -#else - long double __atan2l(y,x) /* wrapper atan2l */ - long double y,x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_atan2l(y,x); -#else - long double z; - z = __ieee754_atan2l(y,x); - if(_LIB_VERSION != _SVID_||__isnanl(x)||__isnanl(y)) return z; - if(x==0.0&&y==0.0) - return __kernel_standard(y,x,203); /* atan2(+-0,+-0) */ - return z; -#endif -} -weak_alias (__atan2l, atan2l) diff --git a/math/w_atanh.c b/math/w_atanh.c deleted file mode 100644 index b81f65c311..0000000000 --- a/math/w_atanh.c +++ /dev/null @@ -1,52 +0,0 @@ -/* @(#)w_atanh.c 5.1 93/09/24 */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_atanh.c,v 1.6 1995/05/10 20:48:43 jtc Exp $"; -#endif - -/* - * wrapper atanh(x) - */ - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - double __atanh(double x) /* wrapper atanh */ -#else - double __atanh(x) /* wrapper atanh */ - double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_atanh(x); -#else - double z,y; - z = __ieee754_atanh(x); - if(_LIB_VERSION == _IEEE_ || __isnan(x)) return z; - y = fabs(x); - if(y>=1.0) { - if(y>1.0) - return __kernel_standard(x,x,30); /* atanh(|x|>1) */ - else - return __kernel_standard(x,x,31); /* atanh(|x|==1) */ - } else - return z; -#endif -} -weak_alias (__atanh, atanh) -#ifdef NO_LONG_DOUBLE -strong_alias (__atanh, __atanhl) -weak_alias (__atanh, atanhl) -#endif diff --git a/math/w_atanhf.c b/math/w_atanhf.c deleted file mode 100644 index 52a144c05a..0000000000 --- a/math/w_atanhf.c +++ /dev/null @@ -1,53 +0,0 @@ -/* w_atanhf.c -- float version of w_atanh.c. - * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_atanhf.c,v 1.3 1995/05/10 20:48:45 jtc Exp $"; -#endif - -/* - * wrapper atanhf(x) - */ - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - float __atanhf(float x) /* wrapper atanhf */ -#else - float __atanhf(x) /* wrapper atanhf */ - float x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_atanhf(x); -#else - float z,y; - z = __ieee754_atanhf(x); - if(_LIB_VERSION == _IEEE_ || __isnanf(x)) return z; - y = fabsf(x); - if(y>=(float)1.0) { - if(y>(float)1.0) - /* atanhf(|x|>1) */ - return (float)__kernel_standard((double)x,(double)x,130); - else - /* atanhf(|x|==1) */ - return (float)__kernel_standard((double)x,(double)x,131); - } else - return z; -#endif -} -weak_alias (__atanhf, atanhf) diff --git a/math/w_atanhl.c b/math/w_atanhl.c deleted file mode 100644 index 5ce53b847d..0000000000 --- a/math/w_atanhl.c +++ /dev/null @@ -1,52 +0,0 @@ -/* w_atanhl.c -- long double version of w_atanh.c. - * Conversion to long double by Ulrich Drepper, - * Cygnus Support, drepper@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: $"; -#endif - -/* - * wrapper atanhl(x) - */ - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - long double __atanhl(long double x) /* wrapper atanhl */ -#else - long double __atanhl(x) /* wrapper atanhl */ - long double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_atanhl(x); -#else - long double z,y; - z = __ieee754_atanhl(x); - if(_LIB_VERSION == _IEEE_ || __isnanl(x)) return z; - y = fabsl(x); - if(y>=1.0) { - if(y>1.0) - return __kernel_standard(x,x,230); /* atanhl(|x|>1) */ - else - return __kernel_standard(x,x,231); /* atanhl(|x|==1) */ - } else - return z; -#endif -} -weak_alias (__atanhl, atanhl) diff --git a/math/w_cosh.c b/math/w_cosh.c deleted file mode 100644 index 033a034059..0000000000 --- a/math/w_cosh.c +++ /dev/null @@ -1,47 +0,0 @@ -/* @(#)w_cosh.c 5.1 93/09/24 */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_cosh.c,v 1.6 1995/05/10 20:48:47 jtc Exp $"; -#endif - -/* - * wrapper cosh(x) - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - double __cosh(double x) /* wrapper cosh */ -#else - double __cosh(x) /* wrapper cosh */ - double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_cosh(x); -#else - double z; - z = __ieee754_cosh(x); - if(_LIB_VERSION == _IEEE_ || __isnan(x)) return z; - if(!__finite(z) && __finite(x)) { - return __kernel_standard(x,x,5); /* cosh overflow */ - } else - return z; -#endif -} -weak_alias (__cosh, cosh) -#ifdef NO_LONG_DOUBLE -strong_alias (__cosh, __coshl) -weak_alias (__cosh, coshl) -#endif diff --git a/math/w_coshf.c b/math/w_coshf.c deleted file mode 100644 index 8e24ca9adc..0000000000 --- a/math/w_coshf.c +++ /dev/null @@ -1,47 +0,0 @@ -/* w_coshf.c -- float version of w_cosh.c. - * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_coshf.c,v 1.3 1995/05/10 20:48:49 jtc Exp $"; -#endif - -/* - * wrapper coshf(x) - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - float __coshf(float x) /* wrapper coshf */ -#else - float __coshf(x) /* wrapper coshf */ - float x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_coshf(x); -#else - float z; - z = __ieee754_coshf(x); - if(_LIB_VERSION == _IEEE_ || __isnanf(x)) return z; - if(!__finite(z) && __finite(x)) { - /* cosh overflow */ - return (float)__kernel_standard((double)x,(double)x,105); - } else - return z; -#endif -} -weak_alias (__coshf, coshf) diff --git a/math/w_coshl.c b/math/w_coshl.c deleted file mode 100644 index 5f4623a81a..0000000000 --- a/math/w_coshl.c +++ /dev/null @@ -1,47 +0,0 @@ -/* w_acoshl.c -- long double version of w_acosh.c. - * Conversion to long double by Ulrich Drepper, - * Cygnus Support, drepper@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: $"; -#endif - -/* - * wrapper coshl(x) - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - long double __coshl(long double x) /* wrapper coshl */ -#else - long double __coshl(x) /* wrapper coshl */ - long double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_coshl(x); -#else - long double z; - z = __ieee754_coshl(x); - if(_LIB_VERSION == _IEEE_ || __isnanl(x)) return z; - if(!__finite(z) && __finite(x)) { - return __kernel_standard(x,x,205); /* cosh overflow */ - } else - return z; -#endif -} -weak_alias (__coshl, coshl) diff --git a/math/w_drem.c b/math/w_drem.c deleted file mode 100644 index 9e2b1e7472..0000000000 --- a/math/w_drem.c +++ /dev/null @@ -1,20 +0,0 @@ -/* - * drem() wrapper for remainder(). - * - * Written by J.T. Conklin, <jtc@wimsey.com> - * Placed into the Public Domain, 1994. - */ - -#include <math.h> - -double -__drem(x, y) - double x, y; -{ - return __remainder(x, y); -} -weak_alias (__drem, drem) -#ifdef NO_LONG_DOUBLE -strong_alias (__drem, __dreml) -weak_alias (__drem, dreml) -#endif diff --git a/math/w_dremf.c b/math/w_dremf.c deleted file mode 100644 index c3d391d634..0000000000 --- a/math/w_dremf.c +++ /dev/null @@ -1,17 +0,0 @@ -/* - * dremf() wrapper for remainderf(). - * - * Written by J.T. Conklin, <jtc@wimsey.com> - * Placed into the Public Domain, 1994. - */ - -#include <math.h> -#include "math_private.h" - -float -__dremf(x, y) - float x, y; -{ - return __remainderf(x, y); -} -weak_alias (__dremf, dremf) diff --git a/math/w_dreml.c b/math/w_dreml.c deleted file mode 100644 index aa73eedc49..0000000000 --- a/math/w_dreml.c +++ /dev/null @@ -1,18 +0,0 @@ -/* - * dreml() wrapper for remainderl(). - * - * Written by J.T. Conklin, <jtc@wimsey.com> - * Conversion to long double by Ulrich Drepper, - * Cygnus Support, drepper@cygnus.com. - * Placed into the Public Domain, 1994. - */ - -#include <math.h> - -long double -__dreml(x, y) - long double x, y; -{ - return __remainderl(x, y); -} -weak_alias (__dreml, dreml) diff --git a/math/w_exp10.c b/math/w_exp10.c deleted file mode 100644 index 9447d8fa2a..0000000000 --- a/math/w_exp10.c +++ /dev/null @@ -1,51 +0,0 @@ -/* @(#)w_exp10.c - * Conversion to exp10 by Ulrich Drepper <drepper@cygnus.com>. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -/* - * wrapper exp10(x) - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - double __exp10(double x) /* wrapper exp10 */ -#else - double __exp10(x) /* wrapper exp10 */ - double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_exp10(x); -#else - double z; - z = __ieee754_exp10(x); - if(_LIB_VERSION == _IEEE_) return z; - if(!__finite(z) && __finite(x)) { - /* exp10 overflow (46) if x > 0, underflow (47) if x < 0. */ - return __kernel_standard(x,x,46+!!__signbit(x)); - } - return z; -#endif -} -weak_alias (__exp10, exp10) -strong_alias (__exp10, __pow10) -weak_alias (__pow10, pow10) -#ifdef NO_LONG_DOUBLE -strong_alias (__exp10, __exp10l) -weak_alias (__exp10, exp10l) -strong_alias (__exp10l, __pow10l) -weak_alias (__pow10l, pow10l) -#endif diff --git a/math/w_exp10f.c b/math/w_exp10f.c deleted file mode 100644 index 78e71be069..0000000000 --- a/math/w_exp10f.c +++ /dev/null @@ -1,46 +0,0 @@ -/* w_exp10f.c -- float version of w_exp10.c. - * Conversion to exp10 by Ulrich Drepper <drepper@cygnus.com>. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -/* - * wrapper expf10(x) - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - float __exp10f(float x) /* wrapper exp10f */ -#else - float __exp10f(x) /* wrapper exp10f */ - float x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_exp10f(x); -#else - float z; - z = __ieee754_exp10f(x); - if(_LIB_VERSION == _IEEE_) return z; - if(!__finitef(z) && __finitef(x)) { - /* exp10f overflow (146) if x > 0, underflow (147) if x < 0. */ - return (float)__kernel_standard((double) x, (double) x, - 146+!!__signbitf(x)); - } - return z; -#endif -} -weak_alias (__exp10f, exp10f) -strong_alias (__exp10f, __pow10f) -weak_alias (__pow10f, pow10f) diff --git a/math/w_exp10l.c b/math/w_exp10l.c deleted file mode 100644 index 368ed77304..0000000000 --- a/math/w_exp10l.c +++ /dev/null @@ -1,46 +0,0 @@ -/* w_exp10l.c -- long double version of w_exp10.c. - * Conversion to long double by Ulrich Drepper, - * Cygnus Support, drepper@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -/* - * wrapper exp10l(x) - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - long double __exp10l(long double x) /* wrapper exp10 */ -#else - long double __exp10l(x) /* wrapper exp10 */ - long double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_exp10l(x); -#else - long double z; - z = __ieee754_exp10l(x); - if(_LIB_VERSION == _IEEE_) return z; - if(!__finitel(z) && __finitel(x)) { - /* exp10 overflow (246) if x > 0, underflow (247) if x < 0. */ - return __kernel_standard(x,x,246+__signbitl(x)); - } - return z; -#endif -} -weak_alias (__exp10l, exp10l) -strong_alias (__exp10l, __pow10l) -weak_alias (__pow10l, pow10l) diff --git a/math/w_exp2.c b/math/w_exp2.c deleted file mode 100644 index 446e5ea91c..0000000000 --- a/math/w_exp2.c +++ /dev/null @@ -1,36 +0,0 @@ -/* - * wrapper exp2(x) - */ - -#include <float.h> -#include <math.h> -#include "math_private.h" - -static const double o_threshold= (double) DBL_MAX_EXP; -static const double u_threshold= (double) (DBL_MIN_EXP - DBL_MANT_DIG - 1); - -double -__exp2 (double x) /* wrapper exp2 */ -{ -#ifdef _IEEE_LIBM - return __ieee754_exp2 (x); -#else - double z; - z = __ieee754_exp2 (x); - if (_LIB_VERSION != _IEEE_ && __finite (x)) - { - if (x > o_threshold) - /* exp2 overflow */ - return __kernel_standard (x, x, 44); - else if (x <= u_threshold) - /* exp2 underflow */ - return __kernel_standard (x, x, 45); - } - return z; -#endif -} -weak_alias (__exp2, exp2) -#ifdef NO_LONG_DOUBLE -strong_alias (__exp2, __exp2l) -weak_alias (__exp2, exp2l) -#endif diff --git a/math/w_exp2f.c b/math/w_exp2f.c deleted file mode 100644 index 9120c88b60..0000000000 --- a/math/w_exp2f.c +++ /dev/null @@ -1,32 +0,0 @@ -/* - * wrapper exp2f(x) - */ - -#include <float.h> -#include <math.h> -#include "math_private.h" - -static const float o_threshold= (float) FLT_MAX_EXP; -static const float u_threshold= (float) (FLT_MIN_EXP - FLT_MANT_DIG - 1); - -float -__exp2f (float x) /* wrapper exp2f */ -{ -#ifdef _IEEE_LIBM - return __ieee754_exp2f (x); -#else - float z; - z = __ieee754_exp2f (x); - if (_LIB_VERSION != _IEEE_ && __finitef (x)) - { - if (x > o_threshold) - /* exp2 overflow */ - return (float) __kernel_standard ((double) x, (double) x, 144); - else if (x <= u_threshold) - /* exp2 underflow */ - return (float) __kernel_standard ((double) x, (double) x, 145); - } - return z; -#endif -} -weak_alias (__exp2f, exp2f) diff --git a/math/w_exp2l.c b/math/w_exp2l.c deleted file mode 100644 index fea5425ac4..0000000000 --- a/math/w_exp2l.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * wrapper exp2l(x) - */ - -#include <float.h> -#include <math.h> -#include "math_private.h" - -static const long double o_threshold = (long double) LDBL_MAX_EXP; -static const long double u_threshold - = (long double) (LDBL_MIN_EXP - LDBL_MANT_DIG - 1); - -long double -__exp2l (long double x) /* wrapper exp2l */ -{ -#ifdef _IEEE_LIBM - return __ieee754_exp2l (x); -#else - long double z; - z = __ieee754_exp2l (x); - if (_LIB_VERSION != _IEEE_ && __finitel (x)) - { - if (x > o_threshold) - return __kernel_standard (x, x, 244); /* exp2l overflow */ - else if (x <= u_threshold) - return __kernel_standard (x, x, 245); /* exp2l underflow */ - } - return z; -#endif -} -weak_alias (__exp2l, exp2l) diff --git a/math/w_expl.c b/math/w_expl.c deleted file mode 100644 index 70096a820c..0000000000 --- a/math/w_expl.c +++ /dev/null @@ -1,13 +0,0 @@ -#include <math.h> -#include <stdio.h> -#include <errno.h> - -long double -__expl(long double x) -{ - fputs ("__expl not implemented\n", stderr); - __set_errno (ENOSYS); - return 0.0; -} - -weak_alias (__expl, expl) diff --git a/math/w_fmod.c b/math/w_fmod.c deleted file mode 100644 index 43a1d8ef5c..0000000000 --- a/math/w_fmod.c +++ /dev/null @@ -1,48 +0,0 @@ -/* @(#)w_fmod.c 5.1 93/09/24 */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_fmod.c,v 1.6 1995/05/10 20:48:55 jtc Exp $"; -#endif - -/* - * wrapper fmod(x,y) - */ - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - double __fmod(double x, double y) /* wrapper fmod */ -#else - double __fmod(x,y) /* wrapper fmod */ - double x,y; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_fmod(x,y); -#else - double z; - z = __ieee754_fmod(x,y); - if(_LIB_VERSION == _IEEE_ ||__isnan(y)||__isnan(x)) return z; - if(y==0.0) { - return __kernel_standard(x,y,27); /* fmod(x,0) */ - } else - return z; -#endif -} -weak_alias (__fmod, fmod) -#ifdef NO_LONG_DOUBLE -strong_alias (__fmod, __fmodl) -weak_alias (__fmod, fmodl) -#endif diff --git a/math/w_fmodf.c b/math/w_fmodf.c deleted file mode 100644 index 2bd133f2d7..0000000000 --- a/math/w_fmodf.c +++ /dev/null @@ -1,48 +0,0 @@ -/* w_fmodf.c -- float version of w_fmod.c. - * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_fmodf.c,v 1.3 1995/05/10 20:48:57 jtc Exp $"; -#endif - -/* - * wrapper fmodf(x,y) - */ - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - float __fmodf(float x, float y) /* wrapper fmodf */ -#else - float __fmodf(x,y) /* wrapper fmodf */ - float x,y; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_fmodf(x,y); -#else - float z; - z = __ieee754_fmodf(x,y); - if(_LIB_VERSION == _IEEE_ ||__isnanf(y)||__isnanf(x)) return z; - if(y==(float)0.0) { - /* fmodf(x,0) */ - return (float)__kernel_standard((double)x,(double)y,127); - } else - return z; -#endif -} -weak_alias (__fmodf, fmodf) diff --git a/math/w_fmodl.c b/math/w_fmodl.c deleted file mode 100644 index 7b9a297cfd..0000000000 --- a/math/w_fmodl.c +++ /dev/null @@ -1,48 +0,0 @@ -/* w_fmodl.c -- long double version of w_fmod.c. - * Conversion to long double by Ulrich Drepper, - * Cygnus Support, drepper@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: $"; -#endif - -/* - * wrapper fmodl(x,y) - */ - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - long double __fmodl(long double x, long double y)/* wrapper fmodl */ -#else - long double __fmodl(x,y) /* wrapper fmodl */ - long double x,y; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_fmodl(x,y); -#else - long double z; - z = __ieee754_fmodl(x,y); - if(_LIB_VERSION == _IEEE_ ||__isnanl(y)||__isnanl(x)) return z; - if(y==0.0) { - return __kernel_standard(x,y,227); /* fmod(x,0) */ - } else - return z; -#endif -} -weak_alias (__fmodl, fmodl) diff --git a/math/w_hypot.c b/math/w_hypot.c deleted file mode 100644 index ab929f78ad..0000000000 --- a/math/w_hypot.c +++ /dev/null @@ -1,48 +0,0 @@ -/* @(#)w_hypot.c 5.1 93/09/24 */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_hypot.c,v 1.6 1995/05/10 20:49:07 jtc Exp $"; -#endif - -/* - * wrapper hypot(x,y) - */ - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - double __hypot(double x, double y)/* wrapper hypot */ -#else - double __hypot(x,y) /* wrapper hypot */ - double x,y; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_hypot(x,y); -#else - double z; - z = __ieee754_hypot(x,y); - if(_LIB_VERSION == _IEEE_) return z; - if((!__finite(z))&&__finite(x)&&__finite(y)) - return __kernel_standard(x,y,4); /* hypot overflow */ - else - return z; -#endif -} -weak_alias (__hypot, hypot) -#ifdef NO_LONG_DOUBLE -strong_alias (__hypot, __hypotl) -weak_alias (__hypot, hypotl) -#endif diff --git a/math/w_hypotf.c b/math/w_hypotf.c deleted file mode 100644 index b6be39e39f..0000000000 --- a/math/w_hypotf.c +++ /dev/null @@ -1,48 +0,0 @@ -/* w_hypotf.c -- float version of w_hypot.c. - * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_hypotf.c,v 1.3 1995/05/10 20:49:09 jtc Exp $"; -#endif - -/* - * wrapper hypotf(x,y) - */ - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - float __hypotf(float x, float y) /* wrapper hypotf */ -#else - float __hypotf(x,y) /* wrapper hypotf */ - float x,y; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_hypotf(x,y); -#else - float z; - z = __ieee754_hypotf(x,y); - if(_LIB_VERSION == _IEEE_) return z; - if((!__finitef(z))&&__finitef(x)&&__finitef(y)) - /* hypot overflow */ - return (float)__kernel_standard((double)x,(double)y,104); - else - return z; -#endif -} -weak_alias (__hypotf, hypotf) diff --git a/math/w_hypotl.c b/math/w_hypotl.c deleted file mode 100644 index 916afbd417..0000000000 --- a/math/w_hypotl.c +++ /dev/null @@ -1,48 +0,0 @@ -/* w_hypotl.c -- long double version of w_hypot.c. - * Conversion to long double by Ulrich Drepper, - * Cygnus Support, drepper@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: $"; -#endif - -/* - * wrapper hypotl(x,y) - */ - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - long double __hypotl(long double x, long double y)/* wrapper hypotl */ -#else - long double __hypotl(x,y) /* wrapper hypotl */ - long double x,y; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_hypotl(x,y); -#else - long double z; - z = __ieee754_hypotl(x,y); - if(_LIB_VERSION == _IEEE_) return z; - if((!__finitel(z))&&__finitel(x)&&__finitel(y)) - return __kernel_standard(x,y,204); /* hypot overflow */ - else - return z; -#endif -} -weak_alias (__hypotl, hypotl) diff --git a/math/w_j0.c b/math/w_j0.c deleted file mode 100644 index 5ab3544aa7..0000000000 --- a/math/w_j0.c +++ /dev/null @@ -1,76 +0,0 @@ -/* @(#)w_j0.c 5.1 93/09/24 */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_j0.c,v 1.6 1995/05/10 20:49:11 jtc Exp $"; -#endif - -/* - * wrapper j0(double x), y0(double x) - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - double j0(double x) /* wrapper j0 */ -#else - double j0(x) /* wrapper j0 */ - double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_j0(x); -#else - double z = __ieee754_j0(x); - if(_LIB_VERSION == _IEEE_ || __isnan(x)) return z; - if(fabs(x)>X_TLOSS) { - return __kernel_standard(x,x,34); /* j0(|x|>X_TLOSS) */ - } else - return z; -#endif -} -#ifdef NO_LONG_DOUBLE -strong_alias (j0, j0l) -#endif - - -#ifdef __STDC__ - double y0(double x) /* wrapper y0 */ -#else - double y0(x) /* wrapper y0 */ - double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_y0(x); -#else - double z; - z = __ieee754_y0(x); - if(_LIB_VERSION == _IEEE_ || __isnan(x) ) return z; - if(x <= 0.0){ - if(x==0.0) - /* d= -one/(x-x); */ - return __kernel_standard(x,x,8); - else - /* d = zero/(x-x); */ - return __kernel_standard(x,x,9); - } - if(x>X_TLOSS) { - return __kernel_standard(x,x,35); /* y0(x>X_TLOSS) */ - } else - return z; -#endif -} -#ifdef NO_LONG_DOUBLE -strong_alias (y0, y0l) -#endif diff --git a/math/w_j0f.c b/math/w_j0f.c deleted file mode 100644 index bb2b82f060..0000000000 --- a/math/w_j0f.c +++ /dev/null @@ -1,74 +0,0 @@ -/* w_j0f.c -- float version of w_j0.c. - * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_j0f.c,v 1.3 1995/05/10 20:49:13 jtc Exp $"; -#endif - -/* - * wrapper j0f(float x), y0f(float x) - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - float j0f(float x) /* wrapper j0f */ -#else - float j0f(x) /* wrapper j0f */ - float x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_j0f(x); -#else - float z = __ieee754_j0f(x); - if(_LIB_VERSION == _IEEE_ || __isnanf(x)) return z; - if(fabsf(x)>(float)X_TLOSS) { - /* j0f(|x|>X_TLOSS) */ - return (float)__kernel_standard((double)x,(double)x,134); - } else - return z; -#endif -} - -#ifdef __STDC__ - float y0f(float x) /* wrapper y0f */ -#else - float y0f(x) /* wrapper y0f */ - float x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_y0f(x); -#else - float z; - z = __ieee754_y0f(x); - if(_LIB_VERSION == _IEEE_ || __isnanf(x) ) return z; - if(x <= (float)0.0){ - if(x==(float)0.0) - /* d= -one/(x-x); */ - return (float)__kernel_standard((double)x,(double)x,108); - else - /* d = zero/(x-x); */ - return (float)__kernel_standard((double)x,(double)x,109); - } - if(x>(float)X_TLOSS) { - /* y0(x>X_TLOSS) */ - return (float)__kernel_standard((double)x,(double)x,135); - } else - return z; -#endif -} diff --git a/math/w_j0l.c b/math/w_j0l.c deleted file mode 100644 index 1ec6e9e0c2..0000000000 --- a/math/w_j0l.c +++ /dev/null @@ -1,76 +0,0 @@ -/* w_j0l.c -- long double version of w_j0.c. - * Conversion to long double by Ulrich Drepper, - * Cygnus Support, drepper@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: $"; -#endif - -/* - * wrapper j0l(long double x), y0l(long double x) - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - long double __j0l(long double x) /* wrapper j0l */ -#else - long double __j0l(x) /* wrapper j0 */ - long double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_j0l(x); -#else - long double z = __ieee754_j0l(x); - if(_LIB_VERSION == _IEEE_ || __isnanl(x)) return z; - if(fabsl(x)>X_TLOSS) { - return __kernel_standard(x,x,234); /* j0(|x|>X_TLOSS) */ - } else - return z; -#endif -} -weak_alias (__j0l, j0l) - -#ifdef __STDC__ - long double __y0l(long double x) /* wrapper y0l */ -#else - long double __y0l(x) /* wrapper y0 */ - long double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_y0l(x); -#else - long double z; - z = __ieee754_y0l(x); - if(_LIB_VERSION == _IEEE_ || __isnanl(x) ) return z; - if(x <= 0.0){ - if(x==0.0) - /* d= -one/(x-x); */ - return __kernel_standard(x,x,208); - else - /* d = zero/(x-x); */ - return __kernel_standard(x,x,209); - } - if(x>X_TLOSS) { - return __kernel_standard(x,x,235); /* y0(x>X_TLOSS) */ - } else - return z; -#endif -} - -weak_alias (__y0l, y0l) diff --git a/math/w_j1.c b/math/w_j1.c deleted file mode 100644 index db8c4ce333..0000000000 --- a/math/w_j1.c +++ /dev/null @@ -1,77 +0,0 @@ -/* @(#)w_j1.c 5.1 93/09/24 */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_j1.c,v 1.6 1995/05/10 20:49:15 jtc Exp $"; -#endif - -/* - * wrapper of j1,y1 - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - double j1(double x) /* wrapper j1 */ -#else - double j1(x) /* wrapper j1 */ - double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_j1(x); -#else - double z; - z = __ieee754_j1(x); - if(_LIB_VERSION == _IEEE_ || __isnan(x) ) return z; - if(fabs(x)>X_TLOSS) { - return __kernel_standard(x,x,36); /* j1(|x|>X_TLOSS) */ - } else - return z; -#endif -} -#ifdef NO_LONG_DOUBLE -strong_alias (j1, j1l) -#endif - - -#ifdef __STDC__ - double y1(double x) /* wrapper y1 */ -#else - double y1(x) /* wrapper y1 */ - double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_y1(x); -#else - double z; - z = __ieee754_y1(x); - if(_LIB_VERSION == _IEEE_ || __isnan(x) ) return z; - if(x <= 0.0){ - if(x==0.0) - /* d= -one/(x-x); */ - return __kernel_standard(x,x,10); - else - /* d = zero/(x-x); */ - return __kernel_standard(x,x,11); - } - if(x>X_TLOSS) { - return __kernel_standard(x,x,37); /* y1(x>X_TLOSS) */ - } else - return z; -#endif -} -#ifdef NO_LONG_DOUBLE -strong_alias (y1, y1l) -#endif diff --git a/math/w_j1f.c b/math/w_j1f.c deleted file mode 100644 index 35b186206e..0000000000 --- a/math/w_j1f.c +++ /dev/null @@ -1,75 +0,0 @@ -/* w_j1f.c -- float version of w_j1.c. - * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_j1f.c,v 1.3 1995/05/10 20:49:17 jtc Exp $"; -#endif - -/* - * wrapper of j1f,y1f - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - float j1f(float x) /* wrapper j1f */ -#else - float j1f(x) /* wrapper j1f */ - float x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_j1f(x); -#else - float z; - z = __ieee754_j1f(x); - if(_LIB_VERSION == _IEEE_ || __isnanf(x) ) return z; - if(fabsf(x)>(float)X_TLOSS) { - /* j1(|x|>X_TLOSS) */ - return (float)__kernel_standard((double)x,(double)x,136); - } else - return z; -#endif -} - -#ifdef __STDC__ - float y1f(float x) /* wrapper y1f */ -#else - float y1f(x) /* wrapper y1f */ - float x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_y1f(x); -#else - float z; - z = __ieee754_y1f(x); - if(_LIB_VERSION == _IEEE_ || __isnanf(x) ) return z; - if(x <= (float)0.0){ - if(x==(float)0.0) - /* d= -one/(x-x); */ - return (float)__kernel_standard((double)x,(double)x,110); - else - /* d = zero/(x-x); */ - return (float)__kernel_standard((double)x,(double)x,111); - } - if(x>(float)X_TLOSS) { - /* y1(x>X_TLOSS) */ - return (float)__kernel_standard((double)x,(double)x,137); - } else - return z; -#endif -} diff --git a/math/w_j1l.c b/math/w_j1l.c deleted file mode 100644 index 7bd31ad995..0000000000 --- a/math/w_j1l.c +++ /dev/null @@ -1,76 +0,0 @@ -/* w_j1l.c -- long double version of w_j1.c. - * Conversion to long double by Ulrich Drepper, - * Cygnus Support, drepper@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: $"; -#endif - -/* - * wrapper of j1l,y1l - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - long double __j1l(long double x) /* wrapper j1l */ -#else - long double __j1l(x) /* wrapper j1l */ - long double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_j1l(x); -#else - long double z; - z = __ieee754_j1l(x); - if(_LIB_VERSION == _IEEE_ || __isnanl(x) ) return z; - if(fabsl(x)>X_TLOSS) { - return __kernel_standard(x,x,236); /* j1(|x|>X_TLOSS) */ - } else - return z; -#endif -} -weak_alias (__j1l, j1l) - -#ifdef __STDC__ - long double __y1l(long double x) /* wrapper y1l */ -#else - long double __y1l(x) /* wrapper y1l */ - long double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_y1l(x); -#else - long double z; - z = __ieee754_y1l(x); - if(_LIB_VERSION == _IEEE_ || __isnanl(x) ) return z; - if(x <= 0.0){ - if(x==0.0) - /* d= -one/(x-x); */ - return __kernel_standard(x,x,210); - else - /* d = zero/(x-x); */ - return __kernel_standard(x,x,211); - } - if(x>X_TLOSS) { - return __kernel_standard(x,x,237); /* y1(x>X_TLOSS) */ - } else - return z; -#endif -} -weak_alias (__y1l, y1l) diff --git a/math/w_jn.c b/math/w_jn.c deleted file mode 100644 index 3a28443dcf..0000000000 --- a/math/w_jn.c +++ /dev/null @@ -1,99 +0,0 @@ -/* @(#)w_jn.c 5.1 93/09/24 */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_jn.c,v 1.6 1995/05/10 20:49:19 jtc Exp $"; -#endif - -/* - * wrapper jn(int n, double x), yn(int n, double x) - * floating point Bessel's function of the 1st and 2nd kind - * of order n - * - * Special cases: - * y0(0)=y1(0)=yn(n,0) = -inf with division by zero signal; - * y0(-ve)=y1(-ve)=yn(n,-ve) are NaN with invalid signal. - * Note 2. About jn(n,x), yn(n,x) - * For n=0, j0(x) is called, - * for n=1, j1(x) is called, - * for n<x, forward recursion us used starting - * from values of j0(x) and j1(x). - * for n>x, a continued fraction approximation to - * j(n,x)/j(n-1,x) is evaluated and then backward - * recursion is used starting from a supposed value - * for j(n,x). The resulting value of j(0,x) is - * compared with the actual value to correct the - * supposed value of j(n,x). - * - * yn(n,x) is similar in all respects, except - * that forward recursion is used for all - * values of n>1. - * - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - double jn(int n, double x) /* wrapper jn */ -#else - double jn(n,x) /* wrapper jn */ - double x; int n; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_jn(n,x); -#else - double z; - z = __ieee754_jn(n,x); - if(_LIB_VERSION == _IEEE_ || __isnan(x) ) return z; - if(fabs(x)>X_TLOSS) { - return __kernel_standard((double)n,x,38); /* jn(|x|>X_TLOSS,n) */ - } else - return z; -#endif -} -#ifdef NO_LONG_DOUBLE -strong_alias (jn, jnl) -#endif - - -#ifdef __STDC__ - double yn(int n, double x) /* wrapper yn */ -#else - double yn(n,x) /* wrapper yn */ - double x; int n; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_yn(n,x); -#else - double z; - z = __ieee754_yn(n,x); - if(_LIB_VERSION == _IEEE_ || __isnan(x) ) return z; - if(x <= 0.0){ - if(x==0.0) - /* d= -one/(x-x); */ - return __kernel_standard((double)n,x,12); - else - /* d = zero/(x-x); */ - return __kernel_standard((double)n,x,13); - } - if(x>X_TLOSS) { - return __kernel_standard((double)n,x,39); /* yn(x>X_TLOSS,n) */ - } else - return z; -#endif -} -#ifdef NO_LONG_DOUBLE -strong_alias (yn, ynl) -#endif diff --git a/math/w_jnf.c b/math/w_jnf.c deleted file mode 100644 index 628701d7fa..0000000000 --- a/math/w_jnf.c +++ /dev/null @@ -1,71 +0,0 @@ -/* w_jnf.c -- float version of w_jn.c. - * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_jnf.c,v 1.3 1995/05/10 20:49:21 jtc Exp $"; -#endif - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - float jnf(int n, float x) /* wrapper jnf */ -#else - float jnf(n,x) /* wrapper jnf */ - float x; int n; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_jnf(n,x); -#else - float z; - z = __ieee754_jnf(n,x); - if(_LIB_VERSION == _IEEE_ || __isnanf(x) ) return z; - if(fabsf(x)>(float)X_TLOSS) { - /* jn(|x|>X_TLOSS,n) */ - return (float)__kernel_standard((double)n,(double)x,138); - } else - return z; -#endif -} - -#ifdef __STDC__ - float ynf(int n, float x) /* wrapper ynf */ -#else - float ynf(n,x) /* wrapper ynf */ - float x; int n; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_ynf(n,x); -#else - float z; - z = __ieee754_ynf(n,x); - if(_LIB_VERSION == _IEEE_ || __isnanf(x) ) return z; - if(x <= (float)0.0){ - if(x==(float)0.0) - /* d= -one/(x-x); */ - return (float)__kernel_standard((double)n,(double)x,112); - else - /* d = zero/(x-x); */ - return (float)__kernel_standard((double)n,(double)x,113); - } - if(x>(float)X_TLOSS) { - /* yn(x>X_TLOSS,n) */ - return (float)__kernel_standard((double)n,(double)x,139); - } else - return z; -#endif -} diff --git a/math/w_jnl.c b/math/w_jnl.c deleted file mode 100644 index 4bb4d6b620..0000000000 --- a/math/w_jnl.c +++ /dev/null @@ -1,98 +0,0 @@ -/* w_jnl.c -- long double version of w_jn.c. - * Conversion to long double by Ulrich Drepper, - * Cygnus Support, drepper@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: $"; -#endif - -/* - * wrapper jn(int n, double x), yn(int n, double x) - * floating point Bessel's function of the 1st and 2nd kind - * of order n - * - * Special cases: - * y0(0)=y1(0)=yn(n,0) = -inf with division by zero signal; - * y0(-ve)=y1(-ve)=yn(n,-ve) are NaN with invalid signal. - * Note 2. About jn(n,x), yn(n,x) - * For n=0, j0(x) is called, - * for n=1, j1(x) is called, - * for n<x, forward recursion us used starting - * from values of j0(x) and j1(x). - * for n>x, a continued fraction approximation to - * j(n,x)/j(n-1,x) is evaluated and then backward - * recursion is used starting from a supposed value - * for j(n,x). The resulting value of j(0,x) is - * compared with the actual value to correct the - * supposed value of j(n,x). - * - * yn(n,x) is similar in all respects, except - * that forward recursion is used for all - * values of n>1. - * - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - long double __jnl(int n, long double x) /* wrapper jnl */ -#else - long double __jnl(n,x) /* wrapper jnl */ - long double x; int n; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_jnl(n,x); -#else - long double z; - z = __ieee754_jnl(n,x); - if(_LIB_VERSION == _IEEE_ || __isnanl(x) ) return z; - if(fabsl(x)>X_TLOSS) { - return __kernel_standard((double)n,x,238); /* jn(|x|>X_TLOSS,n) */ - } else - return z; -#endif -} -weak_alias (__jnl, jnl) - -#ifdef __STDC__ - long double __ynl(int n, long double x) /* wrapper ynl */ -#else - long double __ynl(n,x) /* wrapper ynl */ - long double x; int n; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_ynl(n,x); -#else - long double z; - z = __ieee754_ynl(n,x); - if(_LIB_VERSION == _IEEE_ || __isnanl(x) ) return z; - if(x <= 0.0){ - if(x==0.0) - /* d= -one/(x-x); */ - return __kernel_standard((double)n,x,212); - else - /* d = zero/(x-x); */ - return __kernel_standard((double)n,x,213); - } - if(x>X_TLOSS) { - return __kernel_standard((double)n,x,239); /* yn(x>X_TLOSS,n) */ - } else - return z; -#endif -} -weak_alias (__ynl, ynl) diff --git a/math/w_lgamma.c b/math/w_lgamma.c deleted file mode 100644 index ab75f75997..0000000000 --- a/math/w_lgamma.c +++ /dev/null @@ -1,60 +0,0 @@ -/* @(#)w_lgamma.c 5.1 93/09/24 */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_lgamma.c,v 1.6 1995/05/10 20:49:24 jtc Exp $"; -#endif - -/* double lgamma(double x) - * Return the logarithm of the Gamma function of x. - * - * Method: call __ieee754_lgamma_r - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - double __lgamma(double x) -#else - double __lgamma(x) - double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_lgamma_r(x,&signgam); -#else - double y; - int local_signgam = 0; - y = __ieee754_lgamma_r(x,&local_signgam); - if (_LIB_VERSION != _ISOC_) - /* ISO C99 does not define the global variable. */ - signgam = local_signgam; - if(_LIB_VERSION == _IEEE_) return y; - if(!__finite(y)&&__finite(x)) { - if(__floor(x)==x&&x<=0.0) - return __kernel_standard(x,x,15); /* lgamma pole */ - else - return __kernel_standard(x,x,14); /* lgamma overflow */ - } else - return y; -#endif -} -weak_alias (__lgamma, lgamma) -strong_alias (__lgamma, __gamma) -weak_alias (__gamma, gamma) -#ifdef NO_LONG_DOUBLE -strong_alias (__lgamma, __lgammal) -weak_alias (__lgamma, lgammal) -strong_alias (__gamma, __gammal) -weak_alias (__gamma, gammal) -#endif diff --git a/math/w_lgamma_r.c b/math/w_lgamma_r.c deleted file mode 100644 index 17a7d013e9..0000000000 --- a/math/w_lgamma_r.c +++ /dev/null @@ -1,51 +0,0 @@ -/* @(#)wr_lgamma.c 5.1 93/09/24 */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_lgamma_r.c,v 1.6 1995/05/10 20:49:27 jtc Exp $"; -#endif - -/* - * wrapper double lgamma_r(double x, int *signgamp) - */ - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - double __lgamma_r(double x, int *signgamp) /* wrapper lgamma_r */ -#else - double __lgamma_r(x,signgamp) /* wrapper lgamma_r */ - double x; int *signgamp; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_lgamma_r(x,signgamp); -#else - double y; - y = __ieee754_lgamma_r(x,signgamp); - if(_LIB_VERSION == _IEEE_) return y; - if(!__finite(y)&&__finite(x)) { - if(__floor(x)==x&&x<=0.0) - return __kernel_standard(x,x,15); /* lgamma pole */ - else - return __kernel_standard(x,x,14); /* lgamma overflow */ - } else - return y; -#endif -} -weak_alias (__lgamma_r, lgamma_r) -#ifdef NO_LONG_DOUBLE -strong_alias (__lgamma_r, __lgammal_r) -weak_alias (__lgamma_r, lgammal_r) -#endif diff --git a/math/w_lgammaf.c b/math/w_lgammaf.c deleted file mode 100644 index 7c3c058d75..0000000000 --- a/math/w_lgammaf.c +++ /dev/null @@ -1,53 +0,0 @@ -/* w_lgammaf.c -- float version of w_lgamma.c. - * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_lgammaf.c,v 1.3 1995/05/10 20:49:30 jtc Exp $"; -#endif - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - float __lgammaf(float x) -#else - float __lgammaf(x) - float x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_lgammaf_r(x,&signgam); -#else - float y; - int local_signgam = 0; - y = __ieee754_lgammaf_r(x,&local_signgam); - if (_LIB_VERSION != _ISOC_) - /* ISO C99 does not define the global variable. */ - signgam = local_signgam; - if(_LIB_VERSION == _IEEE_) return y; - if(!__finitef(y)&&__finitef(x)) { - if(__floorf(x)==x&&x<=(float)0.0) - /* lgamma pole */ - return (float)__kernel_standard((double)x,(double)x,115); - else - /* lgamma overflow */ - return (float)__kernel_standard((double)x,(double)x,114); - } else - return y; -#endif -} -weak_alias (__lgammaf, lgammaf) -strong_alias (__lgammaf, __gammaf) -weak_alias (__gammaf, gammaf) diff --git a/math/w_lgammaf_r.c b/math/w_lgammaf_r.c deleted file mode 100644 index a32c325638..0000000000 --- a/math/w_lgammaf_r.c +++ /dev/null @@ -1,52 +0,0 @@ -/* w_lgammaf_r.c -- float version of w_lgamma_r.c. - * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_lgammaf_r.c,v 1.3 1995/05/10 20:49:32 jtc Exp $"; -#endif - -/* - * wrapper float lgammaf_r(float x, int *signgamp) - */ - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - float __lgammaf_r(float x, int *signgamp) /* wrapper lgammaf_r */ -#else - float __lgammaf_r(x,signgamp) /* wrapper lgammaf_r */ - float x; int *signgamp; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_lgammaf_r(x,signgamp); -#else - float y; - y = __ieee754_lgammaf_r(x,signgamp); - if(_LIB_VERSION == _IEEE_) return y; - if(!__finitef(y)&&__finitef(x)) { - if(__floorf(x)==x&&x<=(float)0.0) - /* lgamma pole */ - return (float)__kernel_standard((double)x,(double)x,115); - else - /* lgamma overflow */ - return (float)__kernel_standard((double)x,(double)x,114); - } else - return y; -#endif -} -weak_alias (__lgammaf_r, lgammaf_r) diff --git a/math/w_lgammal.c b/math/w_lgammal.c deleted file mode 100644 index f250e50388..0000000000 --- a/math/w_lgammal.c +++ /dev/null @@ -1,58 +0,0 @@ -/* w_lgammal.c -- long double version of w_lgamma.c. - * Conversion to long double by Ulrich Drepper, - * Cygnus Support, drepper@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: $"; -#endif - -/* long double lgammal(long double x) - * Return the logarithm of the Gamma function of x. - * - * Method: call __ieee754_lgammal_r - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - long double __lgammal(long double x) -#else - long double __lgammal(x) - long double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_lgammal_r(x,&signgam); -#else - long double y; - int local_signgam = 0; - y = __ieee754_lgammal_r(x,&local_signgam); - if (_LIB_VERSION != _ISOC_) - /* ISO C99 does not define the global variable. */ - signgam = local_signgam; - if(_LIB_VERSION == _IEEE_) return y; - if(!__finitel(y)&&__finitel(x)) { - if(__floorl(x)==x&&x<=0.0) - return __kernel_standard(x,x,215); /* lgamma pole */ - else - return __kernel_standard(x,x,214); /* lgamma overflow */ - } else - return y; -#endif -} -weak_alias (__lgammal, lgammal) -strong_alias (__lgammal, __gammal) -weak_alias (__gammal, gammal) diff --git a/math/w_lgammal_r.c b/math/w_lgammal_r.c deleted file mode 100644 index 2dfea8a465..0000000000 --- a/math/w_lgammal_r.c +++ /dev/null @@ -1,52 +0,0 @@ -/* w_lgammal_r.c -- long double version of w_lgamma_r.c. - * Conversion to long double by Ulrich Drepper, - * Cygnus Support, drepper@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: $"; -#endif - -/* - * wrapper long double lgammal_r(long double x, int *signgamp) - */ - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - long double __lgammal_r(long double x, int *signgamp) - /* wrapper lgamma_r */ -#else - long double __lgammal_r(x,signgamp) /* wrapper lgamma_r */ - long double x; int *signgamp; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_lgammal_r(x,signgamp); -#else - long double y; - y = __ieee754_lgammal_r(x,signgamp); - if(_LIB_VERSION == _IEEE_) return y; - if(!__finitel(y)&&__finitel(x)) { - if(__floorl(x)==x&&x<=0.0) - return __kernel_standard(x,x,215); /* lgamma pole */ - else - return __kernel_standard(x,x,214); /* lgamma overflow */ - } else - return y; -#endif -} -weak_alias (__lgammal_r, lgammal_r) diff --git a/math/w_log.c b/math/w_log.c deleted file mode 100644 index 6f6f74fd14..0000000000 --- a/math/w_log.c +++ /dev/null @@ -1,48 +0,0 @@ -/* @(#)w_log.c 5.1 93/09/24 */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_log.c,v 1.6 1995/05/10 20:49:33 jtc Exp $"; -#endif - -/* - * wrapper log(x) - */ - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - double __log(double x) /* wrapper log */ -#else - double __log(x) /* wrapper log */ - double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_log(x); -#else - double z; - z = __ieee754_log(x); - if(_LIB_VERSION == _IEEE_ || __isnan(x) || x > 0.0) return z; - if(x==0.0) - return __kernel_standard(x,x,16); /* log(0) */ - else - return __kernel_standard(x,x,17); /* log(x<0) */ -#endif -} -weak_alias (__log, log) -#ifdef NO_LONG_DOUBLE -strong_alias (__log, __logl) -weak_alias (__log, logl) -#endif diff --git a/math/w_log10.c b/math/w_log10.c deleted file mode 100644 index 9425db3ddf..0000000000 --- a/math/w_log10.c +++ /dev/null @@ -1,51 +0,0 @@ -/* @(#)w_log10.c 5.1 93/09/24 */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_log10.c,v 1.6 1995/05/10 20:49:35 jtc Exp $"; -#endif - -/* - * wrapper log10(X) - */ - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - double __log10(double x) /* wrapper log10 */ -#else - double __log10(x) /* wrapper log10 */ - double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_log10(x); -#else - double z; - z = __ieee754_log10(x); - if(_LIB_VERSION == _IEEE_ || __isnan(x)) return z; - if(x<=0.0) { - if(x==0.0) - return __kernel_standard(x,x,18); /* log10(0) */ - else - return __kernel_standard(x,x,19); /* log10(x<0) */ - } else - return z; -#endif -} -weak_alias (__log10, log10) -#ifdef NO_LONG_DOUBLE -strong_alias (__log10, __log10l) -weak_alias (__log10, log10l) -#endif diff --git a/math/w_log10f.c b/math/w_log10f.c deleted file mode 100644 index c63fcd1ec2..0000000000 --- a/math/w_log10f.c +++ /dev/null @@ -1,52 +0,0 @@ -/* w_log10f.c -- float version of w_log10.c. - * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_log10f.c,v 1.3 1995/05/10 20:49:37 jtc Exp $"; -#endif - -/* - * wrapper log10f(X) - */ - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - float __log10f(float x) /* wrapper log10f */ -#else - float __log10f(x) /* wrapper log10f */ - float x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_log10f(x); -#else - float z; - z = __ieee754_log10f(x); - if(_LIB_VERSION == _IEEE_ || __isnanf(x)) return z; - if(x<=(float)0.0) { - if(x==(float)0.0) - /* log10(0) */ - return (float)__kernel_standard((double)x,(double)x,118); - else - /* log10(x<0) */ - return (float)__kernel_standard((double)x,(double)x,119); - } else - return z; -#endif -} -weak_alias (__log10f, log10f) diff --git a/math/w_log10l.c b/math/w_log10l.c deleted file mode 100644 index 25c051d375..0000000000 --- a/math/w_log10l.c +++ /dev/null @@ -1,51 +0,0 @@ -/* w_log10l.c -- long double version of w_log10.c. - * Conversion to long double by Ulrich Drepper, - * Cygnus Support, drepper@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: $"; -#endif - -/* - * wrapper log10l(X) - */ - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - long double __log10l(long double x) /* wrapper log10l */ -#else - long double __log10l(x) /* wrapper log10l */ - long double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_log10l(x); -#else - long double z; - z = __ieee754_log10l(x); - if(_LIB_VERSION == _IEEE_ || __isnanl(x)) return z; - if(x<=0.0) { - if(x==0.0) - return __kernel_standard(x,x,218); /* log10(0) */ - else - return __kernel_standard(x,x,219); /* log10(x<0) */ - } else - return z; -#endif -} -weak_alias (__log10l, log10l) diff --git a/math/w_log2.c b/math/w_log2.c deleted file mode 100644 index d56a6ee663..0000000000 --- a/math/w_log2.c +++ /dev/null @@ -1,32 +0,0 @@ -/* - * wrapper log2(X) - */ - -#include <math.h> -#include "math_private.h" - -double -__log2 (double x) /* wrapper log2 */ -{ -#ifdef _IEEE_LIBM - return __ieee754_log2 (x); -#else - double z; - z = __ieee754_log2 (x); - if (_LIB_VERSION == _IEEE_ || __isnan (x)) return z; - if (x <= 0.0) - { - if (x == 0.0) - return __kernel_standard (x, x, 48); /* log2 (0) */ - else - return __kernel_standard (x, x, 49); /* log2 (x < 0) */ - } - else - return z; -#endif -} -weak_alias (__log2, log2) -#ifdef NO_LONG_DOUBLE -strong_alias (__log2, __log2l) -weak_alias (__log2, log2l) -#endif diff --git a/math/w_log2f.c b/math/w_log2f.c deleted file mode 100644 index ec8d297161..0000000000 --- a/math/w_log2f.c +++ /dev/null @@ -1,30 +0,0 @@ -/* - * wrapper log2(X) - */ - -#include <math.h> -#include "math_private.h" - -float -__log2f (float x) /* wrapper log2f */ -{ -#ifdef _IEEE_LIBM - return __ieee754_log2f (x); -#else - float z; - z = __ieee754_log2f (x); - if (_LIB_VERSION == _IEEE_ || __isnanf (x)) return z; - if (x <= 0.0f) - { - if (x == 0.0f) - /* log2f (0) */ - return __kernel_standard ((double) x, (double) x, 148); - else - /* log2f (x < 0) */ - return __kernel_standard ((double) x, (double) x, 149); - } - else - return z; -#endif -} -weak_alias (__log2f, log2f) diff --git a/math/w_log2l.c b/math/w_log2l.c deleted file mode 100644 index b1d8706f2a..0000000000 --- a/math/w_log2l.c +++ /dev/null @@ -1,28 +0,0 @@ -/* - * wrapper log2l(X) - */ - -#include <math.h> -#include "math_private.h" - -long double -__log2l (long double x) /* wrapper log2l */ -{ -#ifdef _IEEE_LIBM - return __ieee754_log2l (x); -#else - long double z; - z = __ieee754_log2l (x); - if (_LIB_VERSION == _IEEE_ || __isnanl (x)) return z; - if (x <= 0.0) - { - if (x == 0.0) - return __kernel_standard (x, x, 248); /* log2l (0) */ - else - return __kernel_standard (x, x, 249); /* log2l (x < 0) */ - } - else - return z; -#endif -} -weak_alias (__log2l, log2l) diff --git a/math/w_logf.c b/math/w_logf.c deleted file mode 100644 index 46d9749114..0000000000 --- a/math/w_logf.c +++ /dev/null @@ -1,49 +0,0 @@ -/* w_logf.c -- float version of w_log.c. - * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_logf.c,v 1.3 1995/05/10 20:49:40 jtc Exp $"; -#endif - -/* - * wrapper logf(x) - */ - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - float __logf(float x) /* wrapper logf */ -#else - float __logf(x) /* wrapper logf */ - float x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_logf(x); -#else - float z; - z = __ieee754_logf(x); - if(_LIB_VERSION == _IEEE_ || __isnanf(x) || x > (float)0.0) return z; - if(x==(float)0.0) - /* logf(0) */ - return (float)__kernel_standard((double)x,(double)x,116); - else - /* logf(x<0) */ - return (float)__kernel_standard((double)x,(double)x,117); -#endif -} -weak_alias (__logf, logf) diff --git a/math/w_logl.c b/math/w_logl.c deleted file mode 100644 index 5a38f20038..0000000000 --- a/math/w_logl.c +++ /dev/null @@ -1,48 +0,0 @@ -/* w_logl.c -- long double version of w_log.c. - * Conversion to long double by Ulrich Drepper, - * Cygnus Support, drepper@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: $"; -#endif - -/* - * wrapper logl(x) - */ - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - long double __logl(long double x) /* wrapper logl */ -#else - long double __logl(x) /* wrapper logl */ - long double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_logl(x); -#else - long double z; - z = __ieee754_logl(x); - if(_LIB_VERSION == _IEEE_ || __isnanl(x) || x > 0.0) return z; - if(x==0.0) - return __kernel_standard(x,x,216); /* log(0) */ - else - return __kernel_standard(x,x,217); /* log(x<0) */ -#endif -} -weak_alias (__logl, logl) diff --git a/math/w_pow.c b/math/w_pow.c deleted file mode 100644 index 707cffcc43..0000000000 --- a/math/w_pow.c +++ /dev/null @@ -1,70 +0,0 @@ - - -/* @(#)w_pow.c 5.2 93/10/01 */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -/* - * wrapper pow(x,y) return x**y - */ - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - double __pow(double x, double y) /* wrapper pow */ -#else - double __pow(x,y) /* wrapper pow */ - double x,y; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_pow(x,y); -#else - double z; - z=__ieee754_pow(x,y); - if(_LIB_VERSION == _IEEE_|| __isnan(y)) return z; - if(__isnan(x)) { - if(y==0.0) - return __kernel_standard(x,y,42); /* pow(NaN,0.0) */ - else - return z; - } - if(x==0.0) { - if(y==0.0) - return __kernel_standard(x,y,20); /* pow(0.0,0.0) */ - if(__finite(y)&&y<0.0) { - if (signbit (x) && signbit (z)) - return __kernel_standard(x,y,23); /* pow(-0.0,negative) */ - else - return __kernel_standard(x,y,43); /* pow(+0.0,negative) */ - } - return z; - } - if(!__finite(z)) { - if(__finite(x)&&__finite(y)) { - if(__isnan(z)) - return __kernel_standard(x,y,24); /* pow neg**non-int */ - else - return __kernel_standard(x,y,21); /* pow overflow */ - } - } - if(z==0.0&&__finite(x)&&__finite(y)) - return __kernel_standard(x,y,22); /* pow underflow */ - return z; -#endif -} -weak_alias (__pow, pow) -#ifdef NO_LONG_DOUBLE -strong_alias (__pow, __powl) -weak_alias (__pow, powl) -#endif diff --git a/math/w_powf.c b/math/w_powf.c deleted file mode 100644 index 2480fe559e..0000000000 --- a/math/w_powf.c +++ /dev/null @@ -1,77 +0,0 @@ -/* w_powf.c -- float version of w_pow.c. - * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_powf.c,v 1.3 1995/05/10 20:49:41 jtc Exp $"; -#endif - -/* - * wrapper powf(x,y) return x**y - */ - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - float __powf(float x, float y) /* wrapper powf */ -#else - float __powf(x,y) /* wrapper powf */ - float x,y; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_powf(x,y); -#else - float z; - z=__ieee754_powf(x,y); - if(_LIB_VERSION == _IEEE_|| __isnanf(y)) return z; - if(__isnanf(x)) { - if(y==(float)0.0) - /* powf(NaN,0.0) */ - return (float)__kernel_standard((double)x,(double)y,142); - else - return z; - } - if(x==(float)0.0) { - if(y==(float)0.0) - /* powf(0.0,0.0) */ - return (float)__kernel_standard((double)x,(double)y,120); - if(__finitef(y)&&y<(float)0.0) { - if (signbit (x) && signbit (z)) - /* powf(0.0,negative) */ - return (float)__kernel_standard((double)x,(double)y,123); - else - return (float)__kernel_standard((double)x,(double)y,143); - } - return z; - } - if(!__finitef(z)) { - if(__finitef(x)&&__finitef(y)) { - if(__isnanf(z)) - /* powf neg**non-int */ - return (float)__kernel_standard((double)x,(double)y,124); - else - /* powf overflow */ - return (float)__kernel_standard((double)x,(double)y,121); - } - } - if(z==(float)0.0&&__finitef(x)&&__finitef(y)) - /* powf underflow */ - return (float)__kernel_standard((double)x,(double)y,122); - return z; -#endif -} -weak_alias (__powf, powf) diff --git a/math/w_powl.c b/math/w_powl.c deleted file mode 100644 index d8be7b7b03..0000000000 --- a/math/w_powl.c +++ /dev/null @@ -1,68 +0,0 @@ -/* w_powl.c -- long double version of w_pow.c. - * Conversion to long double by Ulrich Drepper, - * Cygnus Support, drepper@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -/* - * wrapper powl(x,y) return x**y - */ - -#include <math.h> -#include "math_private.h" - - -#ifdef __STDC__ - long double __powl(long double x, long double y)/* wrapper powl */ -#else - long double __powl(x,y) /* wrapper powl */ - long double x,y; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_powl(x,y); -#else - long double z; - z=__ieee754_powl(x,y); - if(_LIB_VERSION == _IEEE_|| __isnanl(y)) return z; - if(__isnanl(x)) { - if(y==0.0) - return __kernel_standard(x,y,242); /* pow(NaN,0.0) */ - else - return z; - } - if(x==0.0) { - if(y==0.0) - return __kernel_standard(x,y,220); /* pow(0.0,0.0) */ - if(__finitel(y)&&y<0.0) { - if (signbit (x) && signbit (z)) - return __kernel_standard(x,y,223); /* pow(-0.0,negative) */ - else - return __kernel_standard(x,y,243); /* pow(+0.0,negative) */ - } - return z; - } - if(!__finitel(z)) { - if(__finitel(x)&&__finitel(y)) { - if(__isnanl(z)) - return __kernel_standard(x,y,224); /* pow neg**non-int */ - else - return __kernel_standard(x,y,221); /* pow overflow */ - } - } - if(z==0.0&&__finitel(x)&&__finitel(y)) - return __kernel_standard(x,y,222); /* pow underflow */ - return z; -#endif -} -weak_alias (__powl, powl) diff --git a/math/w_remainder.c b/math/w_remainder.c deleted file mode 100644 index 9d7a7c5383..0000000000 --- a/math/w_remainder.c +++ /dev/null @@ -1,47 +0,0 @@ -/* @(#)w_remainder.c 5.1 93/09/24 */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_remainder.c,v 1.6 1995/05/10 20:49:44 jtc Exp $"; -#endif - -/* - * wrapper remainder(x,p) - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - double __remainder(double x, double y) /* wrapper remainder */ -#else - double __remainder(x,y) /* wrapper remainder */ - double x,y; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_remainder(x,y); -#else - double z; - z = __ieee754_remainder(x,y); - if(_LIB_VERSION == _IEEE_ || __isnan(y)) return z; - if(y==0.0) - return __kernel_standard(x,y,28); /* remainder(x,0) */ - else - return z; -#endif -} -weak_alias (__remainder, remainder) -#ifdef NO_LONG_DOUBLE -strong_alias (__remainder, __remainderl) -weak_alias (__remainder, remainderl) -#endif diff --git a/math/w_remainderf.c b/math/w_remainderf.c deleted file mode 100644 index 486e626c28..0000000000 --- a/math/w_remainderf.c +++ /dev/null @@ -1,47 +0,0 @@ -/* w_remainderf.c -- float version of w_remainder.c. - * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_remainderf.c,v 1.3 1995/05/10 20:49:46 jtc Exp $"; -#endif - -/* - * wrapper remainderf(x,p) - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - float __remainderf(float x, float y) /* wrapper remainder */ -#else - float __remainderf(x,y) /* wrapper remainder */ - float x,y; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_remainderf(x,y); -#else - float z; - z = __ieee754_remainderf(x,y); - if(_LIB_VERSION == _IEEE_ || __isnanf(y)) return z; - if(y==(float)0.0) - /* remainder(x,0) */ - return (float)__kernel_standard((double)x,(double)y,128); - else - return z; -#endif -} -weak_alias (__remainderf, remainderf) diff --git a/math/w_remainderl.c b/math/w_remainderl.c deleted file mode 100644 index 7635fb9363..0000000000 --- a/math/w_remainderl.c +++ /dev/null @@ -1,48 +0,0 @@ -/* w_remainderl.c -- long double version of w_remainder.c. - * Conversion to long double by Ulrich Drepper, - * Cygnus Support, drepper@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: $"; -#endif - -/* - * wrapper remainderl(x,p) - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - long double __remainderl(long double x, long double y) - /* wrapper remainderl */ -#else - long double __remainderl(x,y) /* wrapper remainder */ - long double x,y; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_remainderl(x,y); -#else - long double z; - z = __ieee754_remainderl(x,y); - if(_LIB_VERSION == _IEEE_ || __isnanl(y)) return z; - if(y==0.0) - return __kernel_standard(x,y,228); /* remainder(x,0) */ - else - return z; -#endif -} -weak_alias (__remainderl, remainderl) diff --git a/math/w_scalb.c b/math/w_scalb.c deleted file mode 100644 index 0086c2adfd..0000000000 --- a/math/w_scalb.c +++ /dev/null @@ -1,65 +0,0 @@ -/* @(#)w_scalb.c 5.1 93/09/24 */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_scalb.c,v 1.6 1995/05/10 20:49:48 jtc Exp $"; -#endif - -/* - * wrapper scalb(double x, double fn) is provide for - * passing various standard test suite. One - * should use scalbn() instead. - */ - -#include <math.h> -#include "math_private.h" - -#include <errno.h> - -#ifdef __STDC__ -#ifdef _SCALB_INT - double __scalb(double x, int fn) /* wrapper scalb */ -#else - double __scalb(double x, double fn) /* wrapper scalb */ -#endif -#else - double __scalb(x,fn) /* wrapper scalb */ -#ifdef _SCALB_INT - double x; int fn; -#else - double x,fn; -#endif -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_scalb(x,fn); -#else - double z; - z = __ieee754_scalb(x,fn); - if(_LIB_VERSION != _SVID_) return z; - if(!(__finite(z)||__isnan(z))&&__finite(x)) { - return __kernel_standard(x,(double)fn,32); /* scalb overflow */ - } - if(z==0.0&&z!=x) { - return __kernel_standard(x,(double)fn,33); /* scalb underflow */ - } -#ifndef _SCALB_INT - if(!__finite(fn)) __set_errno (ERANGE); -#endif - return z; -#endif -} -weak_alias (__scalb, scalb) -#ifdef NO_LONG_DOUBLE -strong_alias (__scalb, __scalbl) -weak_alias (__scalb, scalbl) -#endif diff --git a/math/w_scalbf.c b/math/w_scalbf.c deleted file mode 100644 index 60cb5670ed..0000000000 --- a/math/w_scalbf.c +++ /dev/null @@ -1,66 +0,0 @@ -/* w_scalbf.c -- float version of w_scalb.c. - * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_scalbf.c,v 1.3 1995/05/10 20:49:50 jtc Exp $"; -#endif - -/* - * wrapper scalbf(float x, float fn) is provide for - * passing various standard test suite. One - * should use scalbn() instead. - */ - -#include <math.h> -#include "math_private.h" - -#include <errno.h> - -#ifdef __STDC__ -#ifdef _SCALB_INT - float __scalbf(float x, int fn) /* wrapper scalbf */ -#else - float __scalbf(float x, float fn) /* wrapper scalbf */ -#endif -#else - float __scalbf(x,fn) /* wrapper scalbf */ -#ifdef _SCALB_INT - float x; int fn; -#else - float x,fn; -#endif -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_scalbf(x,fn); -#else - float z; - z = __ieee754_scalbf(x,fn); - if(_LIB_VERSION != _SVID_) return z; - if(!(__finitef(z)||__isnanf(z))&&__finitef(x)) { - /* scalbf overflow */ - return (float)__kernel_standard((double)x,(double)fn,132); - } - if(z==(float)0.0&&z!=x) { - /* scalbf underflow */ - return (float)__kernel_standard((double)x,(double)fn,133); - } -#ifndef _SCALB_INT - if(!__finitef(fn)) __set_errno (ERANGE); -#endif - return z; -#endif -} -weak_alias (__scalbf, scalbf) diff --git a/math/w_scalbl.c b/math/w_scalbl.c deleted file mode 100644 index c8a45d460d..0000000000 --- a/math/w_scalbl.c +++ /dev/null @@ -1,65 +0,0 @@ -/* w_scalbl.c -- long double version of w_scalb.c. - * Conversion to long double by Ulrich Drepper, - * Cygnus Support, drepper@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: $"; -#endif - -/* - * wrapper scalbl(long double x, long double fn) is provide for - * passing various standard test suite. One - * should use scalbnl() instead. - */ - -#include <math.h> -#include "math_private.h" - -#include <errno.h> - -#ifdef __STDC__ -#ifdef _SCALB_INT - long double __scalbl(long double x, int fn) /* wrapper scalbl */ -#else - long double __scalbl(long double x, long double fn)/* wrapper scalbl */ -#endif -#else - long double __scalbl(x,fn) /* wrapper scalbl */ -#ifdef _SCALB_INT - long double x; int fn; -#else - long double x,fn; -#endif -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_scalbl(x,fn); -#else - long double z; - z = __ieee754_scalbl(x,fn); - if(_LIB_VERSION != _SVID_) return z; - if(!(__finitel(z)||__isnanl(z))&&__finitel(x)) { - return __kernel_standard(x,(double)fn,232); /* scalb overflow */ - } - if(z==0.0&&z!=x) { - return __kernel_standard(x,(double)fn,233); /* scalb underflow */ - } -#ifndef _SCALB_INT - if(!__finitel(fn)) __set_errno (ERANGE); -#endif - return z; -#endif -} -weak_alias (__scalbl, scalbl) diff --git a/math/w_sinh.c b/math/w_sinh.c deleted file mode 100644 index 5bde8a2ddd..0000000000 --- a/math/w_sinh.c +++ /dev/null @@ -1,47 +0,0 @@ -/* @(#)w_sinh.c 5.1 93/09/24 */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_sinh.c,v 1.6 1995/05/10 20:49:51 jtc Exp $"; -#endif - -/* - * wrapper sinh(x) - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - double __sinh(double x) /* wrapper sinh */ -#else - double __sinh(x) /* wrapper sinh */ - double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_sinh(x); -#else - double z; - z = __ieee754_sinh(x); - if(_LIB_VERSION == _IEEE_) return z; - if(!__finite(z)&&__finite(x)) { - return __kernel_standard(x,x,25); /* sinh overflow */ - } else - return z; -#endif -} -weak_alias (__sinh, sinh) -#ifdef NO_LONG_DOUBLE -strong_alias (__sinh, __sinhl) -weak_alias (__sinh, sinhl) -#endif diff --git a/math/w_sinhf.c b/math/w_sinhf.c deleted file mode 100644 index c29c46620f..0000000000 --- a/math/w_sinhf.c +++ /dev/null @@ -1,47 +0,0 @@ -/* w_sinhf.c -- float version of w_sinh.c. - * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_sinhf.c,v 1.3 1995/05/10 20:49:54 jtc Exp $"; -#endif - -/* - * wrapper sinhf(x) - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - float __sinhf(float x) /* wrapper sinhf */ -#else - float __sinhf(x) /* wrapper sinhf */ - float x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_sinhf(x); -#else - float z; - z = __ieee754_sinhf(x); - if(_LIB_VERSION == _IEEE_) return z; - if(!__finitef(z)&&__finitef(x)) { - /* sinhf overflow */ - return (float)__kernel_standard((double)x,(double)x,125); - } else - return z; -#endif -} -weak_alias (__sinhf, sinhf) diff --git a/math/w_sinhl.c b/math/w_sinhl.c deleted file mode 100644 index 19eb774d64..0000000000 --- a/math/w_sinhl.c +++ /dev/null @@ -1,47 +0,0 @@ -/* w_sinhl.c -- long double version of w_sinh.c. - * Conversion to long double by Ulrich Drepper, - * Cygnus Support, drepper@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: $"; -#endif - -/* - * wrapper sinhl(x) - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - long double __sinhl(long double x) /* wrapper sinhl */ -#else - long double __sinhl(x) /* wrapper sinhl */ - long double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_sinhl(x); -#else - long double z; - z = __ieee754_sinhl(x); - if(_LIB_VERSION == _IEEE_) return z; - if(!__finitel(z)&&__finitel(x)) { - return __kernel_standard(x,x,225); /* sinh overflow */ - } else - return z; -#endif -} -weak_alias (__sinhl, sinhl) diff --git a/math/w_sqrt.c b/math/w_sqrt.c deleted file mode 100644 index 41ab1d18b2..0000000000 --- a/math/w_sqrt.c +++ /dev/null @@ -1,47 +0,0 @@ -/* @(#)w_sqrt.c 5.1 93/09/24 */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_sqrt.c,v 1.6 1995/05/10 20:49:55 jtc Exp $"; -#endif - -/* - * wrapper sqrt(x) - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - double __sqrt(double x) /* wrapper sqrt */ -#else - double __sqrt(x) /* wrapper sqrt */ - double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_sqrt(x); -#else - double z; - z = __ieee754_sqrt(x); - if(_LIB_VERSION == _IEEE_ || __isnan(x)) return z; - if(x<0.0) { - return __kernel_standard(x,x,26); /* sqrt(negative) */ - } else - return z; -#endif -} -weak_alias (__sqrt, sqrt) -#ifdef NO_LONG_DOUBLE -strong_alias (__sqrt, __sqrtl) -weak_alias (__sqrt, sqrtl) -#endif diff --git a/math/w_sqrtf.c b/math/w_sqrtf.c deleted file mode 100644 index 21beb550f4..0000000000 --- a/math/w_sqrtf.c +++ /dev/null @@ -1,47 +0,0 @@ -/* w_sqrtf.c -- float version of w_sqrt.c. - * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_sqrtf.c,v 1.3 1995/05/10 20:49:59 jtc Exp $"; -#endif - -/* - * wrapper sqrtf(x) - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - float __sqrtf(float x) /* wrapper sqrtf */ -#else - float sqrt(x) /* wrapper sqrtf */ - float x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_sqrtf(x); -#else - float z; - z = __ieee754_sqrtf(x); - if(_LIB_VERSION == _IEEE_ || __isnanf(x)) return z; - if(x<(float)0.0) { - /* sqrtf(negative) */ - return (float)__kernel_standard((double)x,(double)x,126); - } else - return z; -#endif -} -weak_alias (__sqrtf, sqrtf) diff --git a/math/w_sqrtl.c b/math/w_sqrtl.c deleted file mode 100644 index 0b03eebe1d..0000000000 --- a/math/w_sqrtl.c +++ /dev/null @@ -1,47 +0,0 @@ -/* w_sqrtl.c -- long double version of w_sqrt.c. - * Conversion to long double by Ulrich Drepper, - * Cygnus Support, drepper@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: $"; -#endif - -/* - * wrapper sqrtl(x) - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - long double __sqrtl(long double x) /* wrapper sqrtl */ -#else - long double __sqrtl(x) /* wrapper sqrtl */ - long double x; -#endif -{ -#ifdef _IEEE_LIBM - return __ieee754_sqrtl(x); -#else - long double z; - z = __ieee754_sqrtl(x); - if(_LIB_VERSION == _IEEE_ || __isnanl(x)) return z; - if(x<0.0) { - return __kernel_standard(x,x,226); /* sqrt(negative) */ - } else - return z; -#endif -} -weak_alias (__sqrtl, sqrtl) diff --git a/math/w_tgamma.c b/math/w_tgamma.c deleted file mode 100644 index 3ce6e77b49..0000000000 --- a/math/w_tgamma.c +++ /dev/null @@ -1,56 +0,0 @@ -/* @(#)w_gamma.c 5.1 93/09/24 */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_gamma.c,v 1.7 1995/11/20 22:06:43 jtc Exp $"; -#endif - -/* double gamma(double x) - * Return the logarithm of the Gamma function of x or the Gamma function of x, - * depending on the library mode. - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - double __tgamma(double x) -#else - double __tgamma(x) - double x; -#endif -{ - double y; - int local_signgam; - y = __ieee754_gamma_r(x,&local_signgam); - if (local_signgam < 0) y = -y; -#ifdef _IEEE_LIBM - return y; -#else - if(_LIB_VERSION == _IEEE_) return y; - - if(!__finite(y)&&__finite(x)) { - if (x == 0.0) - return __kernel_standard(x,x,50); /* tgamma pole */ - else if(__floor(x)==x&&x<0.0) - return __kernel_standard(x,x,41); /* tgamma domain */ - else - return __kernel_standard(x,x,40); /* tgamma overflow */ - } - return y; -#endif -} -weak_alias (__tgamma, tgamma) -#ifdef NO_LONG_DOUBLE -strong_alias (__tgamma, __tgammal) -weak_alias (__tgamma, tgammal) -#endif diff --git a/math/w_tgammaf.c b/math/w_tgammaf.c deleted file mode 100644 index d3698059e7..0000000000 --- a/math/w_tgammaf.c +++ /dev/null @@ -1,53 +0,0 @@ -/* w_gammaf.c -- float version of w_gamma.c. - * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: w_gammaf.c,v 1.4 1995/11/20 22:06:48 jtc Exp $"; -#endif - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - float __tgammaf(float x) -#else - float __tgammaf(x) - float x; -#endif -{ - float y; - int local_signgam; - y = __ieee754_gammaf_r(x,&local_signgam); - if (local_signgam < 0) y = -y; -#ifdef _IEEE_LIBM - return y; -#else - if(_LIB_VERSION == _IEEE_) return y; - - if(!__finitef(y)&&__finitef(x)) { - if (x == (float)0.0) - /* tgammaf pole */ - return (float)__kernel_standard((double)x,(double)x,150); - else if(__floorf(x)==x&&x<(float)0.0) - /* tgammaf domain */ - return (float)__kernel_standard((double)x,(double)x,141); - else - /* tgammaf overflow */ - return (float)__kernel_standard((double)x,(double)x,140); - } - return y; -#endif -} -weak_alias (__tgammaf, tgammaf) diff --git a/math/w_tgammal.c b/math/w_tgammal.c deleted file mode 100644 index 75970a34d4..0000000000 --- a/math/w_tgammal.c +++ /dev/null @@ -1,55 +0,0 @@ -/* w_gammal.c -- long double version of w_gamma.c. - * Conversion to long double by Ulrich Drepper, - * Cygnus Support, drepper@cygnus.com. - */ - -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: $"; -#endif - -/* long double gammal(double x) - * Return the Gamma function of x. - */ - -#include <math.h> -#include "math_private.h" - -#ifdef __STDC__ - long double __tgammal(long double x) -#else - long double __tgammal(x) - long double x; -#endif -{ - long double y; - int local_signgam; - y = __ieee754_gammal_r(x,&local_signgam); - if (local_signgam < 0) y = -y; -#ifdef _IEEE_LIBM - return y; -#else - if(_LIB_VERSION == _IEEE_) return y; - - if(!__finitel(y)&&__finitel(x)) { - if(x==0.0) - return __kernel_standard(x,x,250); /* tgamma pole */ - else if(__floorl(x)==x&&x<0.0) - return __kernel_standard(x,x,241); /* tgamma domain */ - else - return __kernel_standard(x,x,240); /* tgamma overflow */ - } - return y; -#endif -} -weak_alias (__tgammal, tgammal) |