Ulrich Drepper
0ac5ae2335
Optimize libm
...
libm is now somewhat integrated with gcc's -ffinite-math-only option
and lots of the wrapper functions have been optimized.
2011-10-12 11:27:51 -04:00
Andreas Schwab
12cc2fcdb4
Implement __isinf_nsl for IBM long double
2011-10-10 21:39:59 +02:00
Roland McGrath
c658d255e9
Fix some nit warnings.
2011-10-08 15:25:08 -07:00
Ulrich Drepper
7edb55ce06
Optimize use of isnan, isinf, finite
2011-10-08 10:18:26 -04:00
Ulrich Drepper
88738eb6e9
finite for 64-bit platforms
2011-09-15 23:01:56 -04:00
Ulrich Drepper
8682f8b0e4
Optimize logb code for 64-bit machines
2011-09-12 16:21:24 -04:00
Petr Baudis
1248c1c415
Fix jn precision
2011-09-09 22:16:10 -04:00
Paul Pluzhnikov
7f5517aa52
Fix lround() loses precision
2011-09-08 23:37:32 -04:00
Ulrich Drepper
3d4837df4a
Check for finite/infinity parms in IBM Long Double 128 fmal( )
...
This patch addresses some IBM Long Double 128 fmal () test-ldouble.out
and test-ildoubl.out failures. If the ‘x’ and ‘y’ parameters are
finite values and ‘z’ is infinity, the result of fmal () should be ‘z’
not NaN.
Conflicts:
ChangeLog
2011-09-07 22:17:33 -04:00
Jakub Jelinek
85188888f6
Fix up __kernel_rem_pio2 for FLT_EVAL_METHOD != 0 architectures
2011-08-04 15:40:16 -04:00
Jakub Jelinek
3bf8d1b10c
ldbl-128 fmal compile fix
2010-11-22 15:38:35 -05:00
Luis Machado
da93d21475
Fix comparison in sqrtl for IBM long double 128.
2010-11-10 16:15:05 -05:00
Jakub Jelinek
7c08a05c5f
IEEE quad fmal fixes
2010-10-18 07:29:50 -04:00
Jakub Jelinek
3e692e0518
Implement fmal, some fma bugfixes
2010-10-15 15:26:06 -04:00
Jakub Jelinek
f3f7372de1
Fix some more dbl-64/s_fma.c issue
2010-10-15 15:25:14 -04:00
Jakub Jelinek
5e908464b9
Implement accurate fma.
2010-10-13 22:27:03 -04:00
Jakub Jelinek
9ff8d36f27
Correct implementation of fmaf.
2010-10-11 09:27:05 -04:00
Ulrich Drepper
88e236a627
Fix cproj implmentation.
2010-04-08 15:32:51 -07:00
Jakub Jelinek
64f388285e
sysdeps/ieee754/ldbl-128/ fixes
2010-01-16 17:55:37 -08:00
Joseph S. Myers
3ad3a4d059
Readd definition of __expl in ldbl-128
2009-10-28 11:14:56 +01:00
Andreas Schwab
b7805d0ba8
Correct errno handling in expm1.
2009-10-19 21:23:15 -07:00
Roland McGrath
7967983fd4
configure tweaks, support $libc_add_on_config_subdirs
2009-09-15 14:14:42 -07:00
Ulrich Drepper
2df4be8c35
Add isinf optimized for 64-bit.
2009-08-26 00:51:45 -07:00
Ulrich Drepper
15e7f0a44d
Optimized isnan for 64-bit machines.
2009-08-26 00:12:58 -07:00
Ulrich Drepper
deb13bcda9
Make llround an alias for lround on 64-bit machines.
2009-08-25 23:53:23 -07:00
Ulrich Drepper
77a1e0873f
Optimized nearbyint for 64-bit.
2009-08-25 23:26:16 -07:00
Ulrich Drepper
e6fd9b2490
Optimized rint implementation for x86-64.
2009-08-25 22:44:34 -07:00
Ulrich Drepper
8405789520
Add 64-bit optimized s_round.
2009-08-25 17:28:50 -07:00
Ulrich Drepper
65b14bcee2
Optimize out duplicated scalbln code for x86-64.
2009-08-25 16:46:34 -07:00
Ulrich Drepper
5001998a12
Add 64-bit optimized scalbln.
2009-08-25 15:42:41 -07:00
Ulrich Drepper
d5cb714bb8
Add 64-bit optimized version lround.
2009-08-25 14:12:41 -07:00
Ulrich Drepper
8392ff2dc7
64-bit optimized implementation of trunc.
2009-08-25 12:02:13 -07:00
Ulrich Drepper
cf00cc00bc
Add ceil implementation for 64-bit machines.
...
On 64-bit machines we should not split doubles into two 32 bit
integer and handle the words separately. We have wide registers.
This patch implements a 64-bit ceil version. Ideally all other
functions will be converted over time.
2009-08-24 18:05:48 -07:00
Ulrich Drepper
7f3394bdf3
Fix errno for boundary conditions in 128-bit long double.
...
Similar to the changes which went already in for the other formats,
follow POSIX rules for errno.
2009-05-29 12:00:22 -07:00
Andreas Schwab
38ae768d88
Fix errno for IBM long double.
...
After the last addition to the math test suite PPC routines haven't
been adjusted so far.
2009-05-22 08:35:15 -07:00
Ulrich Drepper
f0e3c47fd6
* sysdeps/ieee754/dbl-64/s_expm1.c: Set errno for overflow.
...
* sysdeps/ieee754/flt-32/s_expm1f.c: Likewise.
* sysdeps/x86_64/fpu/s_expm1l.S: Likewise.
2009-04-27 05:31:37 +00:00
Ulrich Drepper
49768bb93e
* sysdeps/ieee754/k_standard.c (__kernel_standard): Pole errors in
...
atanh should set ERANGE.
2009-04-27 04:01:16 +00:00
Ulrich Drepper
82a1a4dae1
* sysdeps/ieee754/dbl-64/s_tan.c (tan): Fix -Wsequence-point warnings.
2009-04-26 15:03:11 +00:00
Ulrich Drepper
337c270829
* sysdeps/i386/fpu/s_tan.S: Set errno for ±Inf.
...
* sysdeps/i386/fpu/s_tanf.S: Likewise.
* sysdeps/i386/fpu/s_tanl.S: Likewise.
* sysdeps/ieee754/dbl-64/s_tan.c: Likewise.
* sysdeps/ieee754/flt-32/s_tanf.c: Likewise.
* sysdeps/x86_64/fpu/s_tanl.S: Likewise.
* math/libm-test.inc: Add tests for errno after tan calls with
±Inf.
2009-04-26 05:42:49 +00:00
Ulrich Drepper
002a604fd6
* sysdeps/ieee754/k_standard.c (__kernel_standard): Use correct
...
errno value vor pow(+-0,neg).
* math/libm-test.inc (pow_test): Add tests for errno value for
pole errors.
2009-04-26 04:46:54 +00:00
Ulrich Drepper
0c59a1963e
* sysdeps/i386/fpu/s_cos.S: Set errno for ±Inf.
...
* sysdeps/i386/fpu/s_cosf.S: Likewise.
* sysdeps/i386/fpu/s_cosl.S: Likewise.
* sysdeps/i386/fpu/s_sin.S: Likewise.
* sysdeps/i386/fpu/s_sinf.S: Likewise.
* sysdeps/i386/fpu/s_sinl.S: Likewise.
* sysdeps/ieee754/dbl-64/s_sin.c: Likewise.
* sysdeps/ieee754/flt-32/s_cosf.c: Likewise.
* sysdeps/ieee754/flt-32/s_sinf.c: Likewise.
* sysdeps/ieee754/ldbl-96/s_cosl.c: Likewise.
* sysdeps/ieee754/ldbl-96/s_sinl.c: Likewise.
* sysdeps/x86_64/fpu/s_cosl.S: Likewise.
* sysdeps/x86_64/fpu/s_sinl.S: Likewise.
* math/libm-test.inc: Add tests for errno after sin/cos calls with
±Inf.
2009-04-26 01:04:54 +00:00
Ulrich Drepper
e971e76d8d
* sysdeps/ieee754/k_standard.c (__kernel_standard): Pole errors
...
for lgamma should se errno to ERANGE, not EDOM.
* math/libm-test.inc (lgamma_test): Check errno for pole errors.
2009-04-25 08:12:24 +00:00
Ulrich Drepper
a7eb802f11
[BZ #3406 ]
...
2008-02-11 Joseph Myers <joseph@codesourcery.com>
[BZ #3406 ]
* sysdeps/ieee754/flt-32/w_expf.c (o_threshold): Correct value.
* math/libm-test.inc (exp_test): Test 88.72269439697265625.
2008-05-11 17:49:25 +00:00
Ulrich Drepper
c5ee217f09
* sysdeps/ieee754/ldbl-128/e_j0l.c (__ieee751_j0l): Use __finitel.
...
(__ieee754_y0l): Likewise.
* sysdeps/ieee754/ldbl-128/e_j1l.c (__ieee754_j1l): Likewise.
(__ieee754_y1l): Likewise.
* sysdeps/ieee754/ldbl-128/s_expm1l.c (__expm1l): Use __ldexpl.
* sysdeps/ieee754/ldbl-128/s_log1pl.c: Kill bogus prototypes for
frexpl and ldexpl. math_private.h provides them and the latter
is not even used.
(__log1pl): Use __frexpl.
2008-05-10 23:36:40 +00:00
Ulrich Drepper
3b6d574e01
* sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c (__nearbyintl): Use
...
__nextafter instead of nextafter to avoid local PLT.
2008-04-12 03:49:11 +00:00
Ulrich Drepper
246ec41199
* sysdeps/powerpc/fpu/fenv_libc.h: Add libm_hidden_proto for
...
__fe_nomask_env.
* sysdeps/powerpc/fpu/fe_nomask.c: Add libm_hidden_def.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c: Likewise.
* sysdeps/powerpc/bits/fenv.h: Make safe for C++.
* sysdeps/unix/sysv/linux/powerpc/bits/mathinline.h: New file.
* sysdeps/powerpc/fpu/fegetexcept.c (__fegetexcept): Rename
function from fegetexcept and make old name weak alias.
* include/fenv.h: Declare __fegetexcept.
* sysdeps/powerpc/fpu/fedisblxcpt.c: Use __fegetexcept instead of
fegetexcept.
* sysdeps/powerpc/fpu/feenablxcpt.c: Likewise.
* sysdeps/powerpc/fpu/fraiseexcpt.c (__feraiseexcept): Avoid call
to fetestexcept.
* sysdeps/ieee754/ldbl-128ibm/s_log1pl.c (__log1pl): Use __frexpl
instead of frexpl to avoid local PLT.
* math/s_significandl.c (__significandl): Use __ilogbl instead of
ilogbl to avoid local PLT.
* sysdeps/ieee754/ldbl-128ibm/s_expm1l.c (__expm1l): Use __ldexpl
instead of ldexpl to avoid local PLT.
* sysdeps/ieee754/ldbl-128ibm/e_expl.c (__ieee754_expl): Use
__roundl not roundl to avoid local PLT.
* sysdeps/ieee754/ldbl-128/e_j0l.c: Use function names which avoid
local PLTs. Use __sincosl instead of separate sinl and cosl
calls.
* sysdeps/ieee754/ldbl-128/e_j1l.c: Likewise.
2008-04-12 00:51:34 +00:00
Ulrich Drepper
facd1d8ef3
[BZ #4407 ]
...
2008-02-12 Pete Eberlein <eberlein@us.ibm.com>
[BZ #4407 ]
* sysdeps/ieee754/ldbl-128/e_lgammal_r.c (__ieee754_lgammal_r):
Preserve sign in signgamp when x is zero.
2008-04-10 04:58:03 +00:00
Ulrich Drepper
af0498dc95
[BZ #5857 ]
...
2008-03-09 Andreas Jaeger <aj@suse.de>
[BZ #5857 ]
* sysdeps/ieee754/dbl-64/s_rint.c (__rint): Handle j0==18.
* sysdeps/ieee754/dbl-64/s_nearbyint.c (__nearbyint): Likewise.
Patch by Mark Elliott <mark.h.elliott@lmco.com>.
* math/libm-test.inc (nearbyint_test): Add new test cases from #5857 .
(rint_test): Likewise.
2008-03-24 19:57:55 +00:00
Andreas Jaeger
b45ee712d5
[BZ #5753 ]
...
* sysdeps/ia64/ieee754.h: Use protected namespace
__BIG_ENDIAN/__LITTLE_ENDIAN.
* sysdeps/ieee754/ieee754.h: Likewise.
Patch by Aurelien Jarno <aurelien@aurel32.net>.
2008-03-10 06:21:21 +00:00
Ulrich Drepper
dff3751503
* include/stdio.h (__asprintf_chk, __dprintf_chk,
...
__obstack_printf_chk): New prototypes.
(__vasprintf_chk, __vdprintf_chk,
__obstack_vprintf_chk): Likewise.
Add libc_hidden_proto.
* libio/obprintf.c
(_IO_obstack_jumps): No longer static, add attribute_hidden.
* libio/bits/stdio-ldbl.h (__asprintf_chk, __dprintf_chk,
__obstack_printf_chk, __vasprintf_chk, __vdprintf_chk,
__obstack_vprintf_chk): Add __LDBL_REDIR_DECL.
* libio/bits/stdio2.h (__asprintf_chk, __dprintf_chk,
__obstack_printf_chk, __vasprintf_chk, __vdprintf_chk,
__obstack_vprintf_chk): New prototypes.
(asprintf, __asprintf, dprintf, obstack_printf, vasprintf, vdprintf,
obstack_vprintf): New inlines.
* debug/dprintf_chk.c: New file.
* debug/vdprintf_chk.c: New file.
* debug/asprintf_chk.c: New file.
* debug/vasprintf_chk.c: New file.
* debug/obprintf_chk.c: New file.
* debug/tst-chk1.c (do_test): Add asprintf and obstack_printf tests.
* debug/Versions (__asprintf_chk, __dprintf_chk, __obstack_printf_chk,
__vasprintf_chk, __vdprintf_chk, __obstack_vprintf_chk): Export
@@GLIBC_2.8.
* debug/Makefile: Build asprintf_chk, vasprintf_chk, dprintf_chk,
vdprintf_chk and obprintf_chk, set CFLAGS for them.
* sysdeps/ieee754/ldbl-opt/nldbl-compat.c (__nldbl___vasprintf_chk,
__nldbl___vdprintf_chk, __nldbl___obstack_vprintf_chk): Add
libc_hidden_proto.
* sysdeps/ieee754/ldbl-opt/nldbl-compat.h (__nldbl___vasprintf_chk,
__nldbl___vdprintf_chk, __nldbl___obstack_vprintf_chk): New prototypes.
* sysdeps/ieee754/ldbl-opt/Versions (__nldbl___asprintf_chk,
__nldbl___vasprintf_chk, __nldbl___dprintf_chk, __nldbl___vdprintf_chk,
__nldbl___obstack_printf_chk, __nldbl___obstack_vprintf_chk): Export
@@GLIBC_2.8.
* sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add asprintf_chk,
vasprintf_chk, dprintf_chk, vdprintf_chk, obstack_printf_chk and
obstack_vprintf_chk.
* sysdeps/ieee754/ldbl-opt/nldbl-obstack_vprintf_chk.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-dprintf_chk.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-obstack_printf_chk.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-asprintf_chk.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-vdprintf_chk.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-vasprintf_chk.c: New file.
2008-03-05 07:05:13 +00:00