Commit Graph

579 Commits

Author SHA1 Message Date
Joseph Myers 80bad0ccae Test underflow exceptions in libm-test.inc. 2012-05-24 11:26:36 +00:00
Joseph Myers e0b16cc25c Fix ccos, csin, ccosh, csinh overflows (bug 14123). 2012-05-19 15:35:29 +00:00
Chris Metcalf 0af797def3 math: support platforms with limited FP rounding or exception support
For some tests, just claim that fetestexcept() always returns true,
so the rest of the test can be compiled.

For libm-test, provide known bogus values for unsupported rounding
modes, so fesetround() will return failure.

Elsewhere, just add some #ifdefs to avoid code that uses particular
FP exceptions if the exceptions aren't supported.
2012-05-17 08:50:41 -04:00
Roland McGrath 38de94a5ef Add a missing #include. 2012-05-10 15:57:24 -07:00
Adhemerval Zanella 89c9aa491a Fix for logb/logbf/logbl (bugs 13954/13955/13956)
POSIX 2008 states that if the input for 'logb[f|l]' is a subnormal number
it should be treated as if it were normalized.  This means the
implementation should calculate the log2 of the mantissa and add it to the
subnormal exponent (-126 for float and -1022 for double and IBM long
double).  This patch takes care of that.
2012-05-10 15:11:55 -05:00
Joseph Myers 495fd99f3a Fix x86/x86_64 expm1l inaccuracy and exceptions (bugs 13885, 13923). 2012-05-07 19:13:08 +00:00
Joseph Myers d8b82cad1b Fix exp10 inaccuracy and exceptions (bugs 13884, 13914). 2012-05-06 18:23:44 +00:00
Joseph Myers 6c23e11c4d Fix libm-test.inc ulps calculation for subnormals (bug 14064). 2012-05-06 18:20:21 +00:00
Joseph Myers 5779f134a0 Disable one hypot test for inline double testing. 2012-05-05 19:38:31 +00:00
Joseph Myers 41498f4db1 Fix missing exceptions from exp (bugs 13787, 13922, 14036). 2012-05-05 19:37:39 +00:00
Andreas Jaeger 0be196adda Use -frounding-math for math testsuite
We should tell GCC that we manipulate the rounding mode and
therefore add -frounding-math to these files that call fesetround.
2012-05-02 16:33:18 +02:00
Joseph Myers 7cb029ee6e Fix nexttoward bugs (bugs 2550, 2570). 2012-05-01 15:37:43 +00:00
Joseph Myers adfbc8ac9e Fix x86 acos near 1 (bug 13942). 2012-04-30 18:56:39 +00:00
Joseph Myers 5ba3cc691c Fix acos (-1) in round-downwards mode on x86 (bug 14034). 2012-04-30 09:38:06 +00:00
Joseph Myers 9568c0c225 Fix exp10 spurious overflows (bug 13924). 2012-04-30 09:37:01 +00:00
Andreas Schwab ded5180a3b Don't use long double *_finite functions if no long double math 2012-04-28 22:21:53 +02:00
Ryan S. Arnold 60c8fca7ab Remove spurious '.' in math/libm-test.inc comment. 2012-04-27 12:36:46 -05:00
Ryan S. Arnold a462cb6332 New test to expose erroneous negative sign on logb(1) (bug 887). 2012-04-27 10:47:39 -05:00
Joseph Myers 6ad3493e22 Fix fenv.h fallback returns (bug 14027). 2012-04-27 13:54:09 +00:00
Adhemerval Zanella 94e02fc410 Correct powerpc64 s_floorl edge cases (bug 13886).
[BZ #13886]
Remove powerpc64/fpu/s_floorl.  Use fully correct ldbl-128bim/s_floorl.c.
2012-04-24 14:21:45 -05:00
Adhemerval Zanella 76da726532 Fix ilogb exception and errno (bug 6794)
[BZ #6794]
Following Joseph comments about bug 6794, here is a proposed fix. It turned out
to be a large fix mainly because I had to move some file along to follow libm
files/names conventions.

Basically I have added wrappers (w_ilogb.c, w_ilogbf.c, w_ilogbl.c) that now calls
the symbol '__ieee754_ilogb'. The wrappers checks for '__ieee754_ilogb' output and
set the errno and raise exceptions as expected.

The '__ieee754_ilogb' is implemented in sysdeps. I have moved the 's_ilogb[f|l]' files
to e_ilogb[f|l] and renamed the '__ilogb[f|l]' to '__ieee754_ilogb[f|l]'.

I also found out a bug in i386 and x86-64 assembly coded ilogb implementation where
it raises a FE_DIVBYZERO when argument is '0.0'. I corrected this issue as well.

Finally I added the errno and FE_INVALID tests for 0.0, NaN and +-InF argument. Tested
on i386, x86-64, ppc32 and ppc64.
2012-04-17 22:12:53 +02:00
Joseph Myers 8f9a2faee0 Fix spurious overflow exceptions from x86/x86_64 powl (bug 13872). 2012-04-09 22:32:45 +00:00
Joseph Myers bcc8d6617b Fix ctan, ctanh overflow (bug 11521). 2012-04-09 22:31:35 +00:00
Joseph Myers d7dd945398 Fix missing overflow exceptions from pow (bug 13873). 2012-04-09 09:43:18 +00:00
Joseph Myers c483f6b4a4 Fix x86 pow inaccuracy for large integer exponents (bug 706). 2012-04-09 09:42:05 +00:00
Joseph Myers d2de7579f2 Do not allow overflow exception on exp underflow test (bug 13705). 2012-04-08 22:46:49 +00:00
Joseph Myers d6270972f7 Fix pow of negative numbers to integer exponents (bugs 369, 2678, 3866). 2012-03-28 14:57:58 +00:00
Joseph Myers 41bf21a1e7 Avoid overflows from long double functions using __kernel_standard. 2012-03-28 09:32:12 +00:00
Joseph Myers 7c69cd143b Fix cexp overflow (bug 13892). 2012-03-22 19:38:09 +00:00
Joseph Myers 48e44791e4 Fix exp2l inaccuracy (bug 13824). 2012-03-22 12:55:19 +00:00
Joseph Myers 1a4ac776eb Remove inaccurate x86 cexp implementations (bug 13883). 2012-03-21 15:28:05 +00:00
Joseph Myers 0cb7efc517 Fix missing exp2 overflow exception (bug 13871). 2012-03-21 12:17:26 +00:00
Joseph Myers 2460d3aa21 Fix pow of zero and infinity to large powers. 2012-03-21 12:16:00 +00:00
Joseph Myers c135cc1b5f Test for overflow exceptions in libm-test.inc. 2012-03-20 10:58:04 +00:00
Joseph Myers 1897ad4432 Fix clog overflow/underflow (bug 13629). 2012-03-19 20:14:26 +00:00
Joseph Myers 7726d6a95d Fix atan2 spurious exceptions (bug 11451). 2012-03-19 20:11:09 +00:00
Joseph Myers c36e1d2369 Disable Bessel function TLOSS errors in POSIX mode. 2012-03-16 20:08:02 +00:00
Joseph Myers 11b90b9f50 Fix tan, tanl for large inputs. 2012-03-16 20:05:37 +00:00
Joseph Myers 8848d99dce Implement ldbl-96 sinl / cosl / sincosl (bug 13851). 2012-03-16 12:30:05 +00:00
Andreas Jaeger ea40808acd Use 40 digits in tests 2012-03-15 18:02:02 +01:00
Andreas Jaeger ee010c9e95 * sysdeps/i386/fpu/s_tanf.S: Delete so that i386 uses the
ieee754/flt-32 implementation for tan.
* math/libm-test.inc (tan_test): Add tests for large input.
* sysdeps/i386/fpu/libm-test-ulps: Update.
2012-03-15 17:34:24 +01:00
Andreas Jaeger 8c0247db32 [BZ #13852]
* sysdeps/i386/fpu/e_rem_pio2f.c: Delete so that i386 uses the
	ieee754/flt-32 implementation.
	* sysdeps/i386/fpu/k_rem_pio2f.c: Likewise.
	* sysdeps/i386/fpu/s_cosf.S: Likewise.
	* sysdeps/i386/fpu/s_sincosf.S: Likewise.
	* sysdeps/i386/fpu/s_sinf.S: Likewise.

	* math/libm-test.inc (cos_test): Enable some large input tests for
	float as well
	(sin_test): Likewise.
	(sincos_test): Likewise.
	* sysdeps/i386/fpu/libm-test-ulps: Update.
2012-03-15 17:23:43 +01:00
Andreas Jaeger 81c6415384 [BZ #13658]
* math/libm-test.inc (cos_test): Add more test cases.
(sin_test): Likewise.
(sincos_test): Likewise.
2012-03-15 16:25:57 +01:00
Andreas Jaeger 7bbfa5c6ec [BZ #13837]
* math/libm-test.inc (cos_test): Add a test case for large input
value.
(sin_test): Likewise.
(sincos_test): Likewise.
2012-03-15 14:34:34 +01:00
Andreas Jaeger ad6e0564b8 Cleanup formatting. 2012-03-15 14:14:39 +01:00
Andreas Jaeger 356a10ee3e Merge branch 'master' into bug13658-branch 2012-03-14 16:36:17 +01:00
Joseph Myers e456826d7a Fix csqrt overflow/underflow (bug 13841). 2012-03-14 11:53:32 +00:00
Joseph Myers aa4a2ae1db Add tests for hypot overflow/underflow. 2012-03-14 01:12:05 +00:00
Richard Henderson 5f0a5daeee Move math/math_private.h to sysdeps/generic/math_private.h.
This reverts commit 60d6f5a6f5.
2012-03-09 16:12:17 -08:00
Andreas Jaeger a20026128c Add further tests 2012-03-08 10:44:32 +01:00
Joseph Myers d1d3431a3a Fix signs of zeros from casinh, cacosh etc. (bug 10716). 2012-03-07 15:15:19 +00:00
Andreas Jaeger b35fe25ed9 [BZ #13658]
* sysdeps/x86_64/fpu/s_sincos.S: Delete.

	* math/libm-test.inc (sincos_test): Add test for large input.
2012-03-07 14:51:39 +01:00
Ulrich Drepper a4300c7a4d Remove distribute variable from Makefiles 2012-03-07 05:17:13 -05:00
Joseph Myers b7cd39e8f8 Fix pow in non-default rounding modes (bug 3976). 2012-03-05 12:22:46 +00:00
Joseph Myers ca811b2256 Test cosh, sinh in non-default rounding modes (bug 3976). 2012-03-05 12:20:24 +00:00
Marek Polacek bc957d531c Remove oldish __GNUC_PREREQ. 2012-03-03 22:57:00 +01:00
Joseph Myers 804360ed83 Fix sin, cos, tan in non-default rounding modes (bug 3976). 2012-03-02 20:51:39 +00:00
Joseph Myers a6d06d7b86 Fix scalbn, scalbln integer overflow. 2012-03-02 15:32:56 +00:00
Joseph Myers 28afd92dbd Fix exp in non-default rounding modes (bug 3976). 2012-03-02 15:12:53 +00:00
Joseph Myers 7b1902cb3e Improve erfc accuracy. 2012-03-01 21:15:38 +00:00
Joseph Myers 0fcad3e243 Add test for bug 5794 (incorrect expm1 overflow). 2012-02-29 20:49:20 +00:00
Joseph Myers 169d7f11ad Move misplaced llround test and add lround test from bug 2561. 2012-02-29 01:55:42 +00:00
Joseph Myers 6cbeae4719 Fix nearbyintf rounding. 2012-02-22 13:03:40 +00:00
Joseph Myers fe45ce09f3 Fix rintf rounding. 2012-02-22 13:01:20 +00:00
Aurelien Jarno 92221550d7 Use non-signaling floating-point comparisons in math functions. 2012-02-19 11:20:18 +01:00
Paul Eggert 59ba27a63a Replace FSF snail mail address with URLs. 2012-02-09 23:18:22 +00:00
Marek Polacek 148cf100de Add tst-CMPLX2 test. 2012-02-07 20:47:46 +01:00
Andreas Schwab cfdc0dd7fa Fix loss of precision in jn tests 2012-02-07 15:20:37 +01:00
Joseph Myers 65dc3b7504 Include <stdio.h> in math/tst-CMPLX.c. 2012-02-03 00:13:15 +00:00
Ulrich Drepper 56f6f6a240 Use -msse2avx option for x86-64 libm functions 2012-01-28 14:48:46 -05:00
Joseph Myers 8db2188281 Remove __STDC__ conditionals from libm. 2012-01-27 17:29:45 +00:00
Joseph Myers 7071ad79db Remove __STDC__ conditionals from installed headers. 2012-01-26 20:49:22 +00:00
Ulrich Drepper e58ef0f204 Add const attribute to fmin and fmax 2012-01-10 21:10:28 -05:00
Ulrich Drepper a47a831ad8 Optimize ldexp and scalbn 2012-01-10 20:52:29 -05:00
Ulrich Drepper 1d5a644a55 Add test for CMPLX macros 2012-01-08 16:02:45 -05:00
Ulrich Drepper 8784a6db91 Fix typo in CMPLXL 2012-01-08 15:55:52 -05:00
Ulrich Drepper ac097f5cd0 Define CMPLX, CMPLXF, CMPLXL 2012-01-08 10:07:26 -05:00
Ulrich Drepper 2119dcfacc Static linking is always needed 2012-01-08 09:52:29 -05:00
Ulrich Drepper a784e50247 Remove pre-ISO C support
No more __const.
2012-01-07 23:57:22 -05:00
Ulrich Drepper e3a851a21b Use Kahan's formula in cacosh 2011-12-21 22:08:12 -05:00
Richard B. Kreckel b27e24b874 Fix sign errr in some cacosh results 2011-12-21 21:01:29 -05:00
Marek Polacek 8ef4f244ff Avoid warnings in __*_finite math function declarations with C++ 2011-12-17 20:23:16 -05:00
Adhemerval Zanella a1267ba1c6 Optimized nearbyint for PPC 2011-12-17 14:59:47 -05:00
Andreas Schwab 998832a466 Always provide declarations of long double math functions when !_LIBC 2011-11-04 15:16:11 +01:00
Ulrich Drepper cb95113e30 Fix accuracy problem in generic sin 2011-10-29 14:08:56 -04:00
Andreas Schwab f6ce9294b0 Make math_force_eval accept non-addressable arguments 2011-10-26 11:44:08 +02:00
Ulrich Drepper af968f62f2 Optimize accurate 64-bit routines for FMA4 on x86-64 2011-10-24 20:19:17 -04:00
Ulrich Drepper dbc36f153e Merge branch 'master' of ssh://sourceware.org/git/glibc 2011-10-22 13:18:08 -04:00
Ulrich Drepper 77425c63e7 Add branch predictions to complex math code 2011-10-22 13:17:30 -04:00
Andreas Schwab ee2aafe08e Fix compilation due to __nan defines 2011-10-22 14:03:26 +02:00
Ulrich Drepper bc62c2fb15 Optimization to some complex math functions
Also, change last reference to __sqrt into __sqrt to easily.
2011-10-22 00:32:39 -04:00
Ulrich Drepper d9a8d0abcc Use new internal libc_fe* interfaces in more functions 2011-10-18 15:11:31 -04:00
Ulrich Drepper 4855e3ddf5 Provide combined internal feholdexcept/fesetround interface 2011-10-18 09:59:04 -04:00
Ulrich Drepper d38f1dba00 Start optimizing the use of the fenv interfaces in libm itself 2011-10-18 09:00:46 -04:00
Ulrich Drepper bcf01e6d80 Optimize exp
Add __exp*_finite optimizations and rewrite some wrappers.
2011-10-15 20:22:59 -04:00
Andreas Jaeger 556a200797 Add parameter annotation to modf 2011-10-15 10:08:07 -04:00
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
Ulrich Drepper 7edb55ce06 Optimize use of isnan, isinf, finite 2011-10-08 10:18:26 -04:00
Ulrich Drepper 9277c06437 Use private math_private.h in files in math/ 2011-10-08 05:16:04 -04:00
Andreas Jaeger bf5824458c Fix remainder (NaN, 0) 2011-10-07 15:14:06 -04:00