Joseph Myers
081988778f
Convert TEST_c_c tests from code to data.
2013-05-12 17:38:26 +00:00
Joseph Myers
601a3a5fd5
Convert TEST_ff_f tests from code to data.
2013-05-12 13:17:09 +00:00
Joseph Myers
8329e4da35
Make fma and nextafter tests use max_value instead of fltmax.
2013-05-11 11:10:31 +00:00
Joseph Myers
74c574788d
Convert TEST_f_f tests from code to data.
2013-05-11 11:09:30 +00:00
Joseph Myers
51df539d98
Start converting libm tests from code to data.
2013-05-10 16:45:04 +00:00
Joseph Myers
ab2b94613d
Fix tgamma errno setting on domain error (bug 6809).
2013-05-10 11:35:11 +00:00
Joseph Myers
0d3e777af2
Use M_SQRT1_2l instead of local M_SQRT_2_2 in libm-test.inc.
2013-05-09 14:33:30 +00:00
Joseph Myers
24f5606614
Use M_PI_34l consistently in libm-test.inc.
2013-05-09 14:13:10 +00:00
Joseph Myers
faa7f8119f
Use decimal constants in defining M_* in libm-test.inc.
2013-05-09 12:24:44 +00:00
Joseph Myers
a0d9f9d745
Factor out initializers for libm-test.inc constants.
2013-05-08 16:10:44 +00:00
Joseph Myers
ae08db3ba0
Use correct TEST_* macros for jn, ldexp and yn tests.
2013-05-08 16:09:54 +00:00
Joseph Myers
f44bf14a9c
Move some libm-test logic for running tests from gen-libm-test.pl to libm-test.inc.
2013-05-08 12:02:22 +00:00
Joseph Myers
d8cd06db62
Improve tgamma accuracy (bugs 2546, 2560, 5159, 15426).
2013-05-08 11:58:18 +00:00
Joseph Myers
9ea3513c91
Initialize x in frexp, modf, remqou tests.
2013-05-06 20:23:40 +00:00
Joseph Myers
5bf96de5ef
Consistently use TEST_f_f1 in gamma tests.
2013-05-06 20:23:01 +00:00
Adhemerval Zanella
16e616a72f
PowerPC: fix hypot/hypof FP exceptions
...
This patch fixes hypot/hypotf spurious floating-point exceptions
generate by internal operations.
2013-05-06 14:40:17 -05:00
Joseph Myers
b7dab1e4d7
Remove unused libm-test expected-failure mechanism.
2013-05-04 16:45:15 +00:00
Joseph Myers
a7548d41a7
Use static initializers for constant variables in libm-test.inc.
2013-05-04 13:08:34 +00:00
Joseph Myers
c31a5b1e8f
Consistently use TEST_f_f1 in lgamma tests.
2013-05-03 19:05:37 +00:00
Joseph Myers
d5dc2af390
Don't use IGNORE_ZERO_INF_SIGN in hypot tests.
2013-05-03 19:04:52 +00:00
Joseph Myers
10de07f5fd
Fix catan, catanh spurious underflows (bug 15423).
2013-05-01 10:07:00 +00:00
Joseph Myers
caf84319c1
Fix catan, catanh inaccuracy from atan2 denominators near 0 (bug 15416).
2013-04-30 11:27:35 +00:00
Joseph Myers
f2da779309
Integrate errno testing better in libm-test.inc.
2013-04-29 20:36:48 +00:00
Joseph Myers
4d14f4499d
Add missing semicolons to libm-test.inc tests.
2013-04-29 13:48:19 +00:00
Joseph Myers
5b4217d71f
Fix catan, catanh spurious overflows (bug 15409).
2013-04-27 14:57:41 +00:00
Joseph Myers
9457fd952c
Fix catan, catanh missing underflows (bug 15406).
2013-04-26 19:26:22 +00:00
Joseph Myers
f0302940e7
Fix csin, csinh, ccos, ccosh missing underflows (bug 15405).
2013-04-26 19:25:19 +00:00
Carlos O'Donell
418601aa84
math: Use accurate answers for cos and sincos.
...
Use the most accurate hex literals possible for the answers to the
cos and sincos tests that vary according to the error in the rounding
of PI/2.
---
2013-04-24 Carlos O'Donell <carlos@redhat.com>
* math/libm-test.inc (cos_test): Use accurate hex constants.
(sincost_test): Likewise.
2013-04-24 16:29:33 -04:00
Joseph Myers
5e22180060
Add catan, catanh tests at +/- 1 and +/- i.
2013-04-24 20:14:15 +00:00
Joseph Myers
77f143fdb4
Use suffixed floating-point constants in float and long double catan/catanh.
2013-04-24 18:59:37 +00:00
Joseph Myers
2f38fbfe09
Fix catan, catanh inaccuracy through use of log (bug 15394).
2013-04-24 18:49:13 +00:00
Carlos O'Donell
aba5e333d4
libm-test.inc: Fix tests where cos(PI/2) != 0.
...
The value of PI is never exactly PI in any floating point representation,
and the value of PI/2 is never PI/2. It is wrong to expect cos(M_PI_2l)
to return 0, instead it will return an answer that is non-zero because
M_PI_2l doesn't round to exactly PI/2 in the type used.
That is to say that the correct answer is to do the following:
* Take PI or PI/2.
* Round to the floating point representation.
* Take the rounded value and compute an infinite precision cos or sin.
* Use the rounded result of the infinite precision cos or sin as the
answer to the test.
I used printf to do the type rounding, and Wolfram's Alpha to do the
infinite precision cos calculations.
The following changes bring x86-64 and x86 to 1/2 ulp for two tests.
It shows that the x86 cos implementation is quite good, and that
our test are flawed.
Unfortunately given that the rounding errors are type dependent we
need to fix this for each type. No regressions on x86-64 or x86.
---
2013-04-11 Carlos O'Donell <carlos@redhat.com>
* math/libm-test.inc (cos_test): Fix PI/2 test.
(sincos_test): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Regenerate.
* sysdeps/i386/fpu/libm-test-ulps: Regenerate.
2013-04-11 08:52:18 -04:00
Siddhesh Poyarekar
01dc6df938
Don't use run-via-rtld-prefix for anything other than tests
...
run-via-rtld-prefix checks whether the program to be run is a static
test and skips if it is. This is fine, except that it assumes that
the program to be run is the second $^, which is true only for tests.
This change creates an rtld-prefix, which is simply the dynamic linker
prefix with the necessary arguments and uses that in the non-test
targets.
2013-04-11 09:37:50 +05:30
Carlos O'Donell
085b2d41a4
README.libm-test: Use testrun.sh to run libm test.
...
Document the use of the convenience testrun.sh script for
running the libm test.
---
2013-04-06 Carlos O'Donell <carlos@redhat.com>
* math/README.libm-test (How can I generate "libm-test-ulps"?):
Use testrun.sh to run libm tests.
2013-04-06 17:13:19 -04:00
Carlos O'Donell
26510bdda1
New Makefile target `regen-ulps'.
...
The wiki "Regeneration" page has this to say about update ULPs.
"The libm-test-ulps files are semiautomatically updated. To
update an ulps baseline, run each of the failing tests (test-float,
test-double, etc.) with -u; this will generate a file called ULPs;
concatenate each of those files with the existing libm-test-ulps
file, after removing any entries for particularly huge numbers of
ulps that you do not want to mark as expected. Then run
gen-libm-test.pl -n -u FILE where FILE is the concatenated file
produced in the previous step. This generates a file called
NewUlps which is the new sorted version of libm-test-ulps."
The same information is listed in math/README.libm-test, and is a
lot of manual work that you often want to run over-and-over again
while working on a particular test.
The `regen-ulps' convenience target does this automatically for
developers.
We strictly assume the source tree is readonly and add a
new --output-dir option to libm-test.inc to allow for writing
out ULPs to $(objpfx).
When run the new target does the following:
* Starts with the baseline ULPs file.
* Runs each of the libm math tests with -u.
* Adds new changes seen with -u to the baseline.
* Sorts and prepares the test output with gen-libm-test.pl.
* Leaves math/NewUlps in your build tree to copy to your source
tree, cleanup, and checkin.
The math test documentation in math/README.libm-test is updated
document the new Makefile target.
---
2013-04-06 Carlos O'Donell <carlos@redhat.com>
* Makefile.in (regen-ulps): New target.
* math/Makefile [ifneq (no,$(PERL)]: Declare regen-ulps with .PHONY.
[ifneq (no,$(PERL)] (run-regen-ulps): New variable.
[ifneq (no,$(PERL)] (regen-ulps): New target.
[ifeq (no,$(PERL)] (regen-ulps): New target.
* math/libm-test.inc (ulps_file_name): Define.
(output_dir): New variable.
(options): Add "output-dir" option.
(parse_opt): Handle 'o' case.
(main): If output_dir is non-NULL use it as a prefix
otherwise use "".
* math/README.libm-test: Update `How can I generate "libm-test-ulps"?'
2013-04-06 16:22:47 -04:00
Thomas Schwinge
a1cbf437a5
[BZ #14686 , #15336 ] Fix standard compliance. Don't use hard-coded qNaN values.
2013-04-05 22:34:52 +02:00
Joseph Myers
05e166c887
Fix missing underflow from cexp (bug 14478).
2013-04-03 16:51:46 +00:00
Joseph Myers
52ce486045
Fix cacosh inaccuracy and spurious exceptions (bug 15327).
2013-04-02 22:54:00 +00:00
Thomas Schwinge
572676160d
New <math.h> macro named issignaling to check for a signaling NaN (sNaN).
...
It is based on draft TS 18661 and currently enabled as a GNU extension.
2013-04-02 13:51:02 +02:00
Joseph Myers
ccc8cadf75
Fix casinh inaccuracy for imaginary part < 1.0, real part small (bug 10357).
2013-03-30 13:31:53 +00:00
Joseph Myers
3a7182a14b
Fix casinh inaccuracy near i, imaginary part > 1 (bug 15307).
2013-03-27 14:38:44 +00:00
Adhemerval Zanella
e42a38dd9d
BZ#13889: expl (709.75) wrongly overflows for ldbl-128ibm
...
The patch increase the high value to check if expl overflows. Current
high mark value is not really correct, the algorithm accepts high values.
It also adds a correct wrapper function to check for overflow and underflow.
2013-03-22 12:39:10 -03:00
Thomas Schwinge
bdef0be784
libm-test: Properly wrap blocks consisting of several statements.
2013-03-21 16:07:48 +01:00
Thomas Schwinge
5aa4a1a1fd
On 32-bit x86, disable certain tests involving sNaN values.
...
Follow-up to commit 495ded2c8c
.
2013-03-21 16:05:29 +01:00
Joseph Myers
98c48fe5cc
Fix Bessel function spurious overflows for ldbl-128 / ldbl-128ibm (bug 15285).
2013-03-21 13:57:21 +00:00
Joseph Myers
0a1b2ae6f6
Fix casinh inaccuracy for argument with imaginary part 1 (bug 15287).
2013-03-21 10:27:10 +00:00
Joseph Myers
6b18bea625
Fix types of constants in k_casinh*.c.
2013-03-19 22:38:25 +00:00
Joseph Myers
d2f9799e7c
Fix y1l spurious overflows for ldbl-96 (bug 15283).
2013-03-16 17:51:48 +00:00
Joseph Myers
2a185d32e8
Fix spurious underflow exceptions for Bessel functions for ldbl-128 / ldbl-128ibm (bug 14155).
2013-03-16 17:50:28 +00:00
Thomas Schwinge
6cbec759de
Move "-sNaN" value into a separate variable.
2013-03-16 13:59:52 +01:00
Thomas Schwinge
af00a34d08
* math/libm-test.inc (ldexp_test): Add missing START/END markers.
2013-03-15 19:13:53 +01:00
Thomas Schwinge
495ded2c8c
Promote a math test for sNaN handling to the top-level.
2013-03-15 19:12:10 +01:00
Thomas Schwinge
777b0332c0
Use GCC's builtins for generating NaNs.
2013-03-15 19:10:20 +01:00
Thomas Schwinge
64d063b800
Add one test, removed a duplicated one, add a few comments about missing tests.
2013-03-15 19:08:04 +01:00
Thomas Schwinge
67e971f18f
Better distinguish between NaN/qNaN/sNaN.
2013-03-15 19:06:02 +01:00
Thomas Schwinge
64487e1264
Enable tests for x86_64, too, which currently are enabled only for x86.
2013-03-15 19:02:18 +01:00
Thomas Schwinge
e015e27b90
Fix copy'n'pastos.
2013-03-15 19:00:23 +01:00
Joseph Myers
41c7328e85
Fix spurious underflow exceptions for Bessel functions for double (bug 14155).
2013-03-14 17:47:30 +00:00
Siddhesh Poyarekar
e4f223248e
Fix some testsuite build warning fixes in libm
2013-02-19 21:20:44 +05:30
Joseph Myers
daaa7713e9
Remove bounded-pointers build system support.
2013-02-15 15:07:54 +00:00
Joseph Myers
e97ed6ddbe
Remove bp-sym.h and BP_SYM uses from C code.
2013-02-14 13:12:02 +00:00
Joseph Myers
8cf28c5ebe
Fix casinh spurious underflows away from [-i,i] (bug 15062).
2013-01-31 22:55:29 +00:00
Joseph Myers
728d7b43fc
Fix cacos real-part inaccuracy for result real part near 0 (bug 15023).
2013-01-17 20:25:51 +00:00
David S. Miller
32fcb36dbf
Add 64-bit VIS3 optimized GMP routines for sparc.
...
* math/Makefile: Recognize gmp-sysdep_routines.
* sysdeps/sparc/sparc64/multiarch/Makefile: Add VIS3 optimized GMP routines
to sysdeps.
* sysdeps/sparc/sparc64/multiarch/add_n-vis3.S: New file.
* sysdeps/sparc/sparc64/multiarch/add_n.S: New file.
* sysdeps/sparc/sparc64/multiarch/addmul_1-vis3.S: New file.
* sysdeps/sparc/sparc64/multiarch/addmul_1.S: New file.
* sysdeps/sparc/sparc64/multiarch/mul_1-vis3.S: New file.
* sysdeps/sparc/sparc64/multiarch/mul_1.S: New file.
* sysdeps/sparc/sparc64/multiarch/sub_n-vis3.S: New file.
* sysdeps/sparc/sparc64/multiarch/sub_n.S: New file.
* sysdeps/sparc/sparc64/multiarch/submul_1-vis3.S: New file.
* sysdeps/sparc/sparc64/multiarch/submul_1.S: New file.
2013-01-11 23:39:02 -08:00
Joseph Myers
828beb132d
Use __extension__ with long long in installed headers.
2013-01-10 20:19:45 +00:00
Andreas Schwab
8790af5f9f
Revert "CFLAGS-test-tgmath2.c"
...
This reverts commit 3167bfc62b
.
2013-01-10 10:44:04 +01:00
Andreas Schwab
3167bfc62b
CFLAGS-test-tgmath2.c
2013-01-10 09:59:58 +01:00
Joseph Myers
a9708fed77
Fix casinh, casin overflow (bug 14996).
2013-01-07 14:59:53 +00:00
Joseph Myers
cdc1c96fba
Fix casinh, casin inaccuracy from cancellation (bug 14994).
2013-01-04 13:25:17 +00:00
Joseph Myers
568035b787
Update copyright notices with scripts/update-copyrights.
2013-01-02 19:05:09 +00:00
Mike Frysinger
9c89fca6e0
math: use existing nonnull attribute define
...
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-12-30 13:00:13 -05:00
Joseph Myers
1bead169c3
Fix powl inaccuracy for x86_64 and x86 (bug 13881).
2012-11-28 13:40:54 +00:00
Joseph Myers
7184dcdf26
Disable some fma tests for ldbl-128ibm.
2012-11-22 19:57:58 +00:00
Joseph Myers
0a42601f27
Fix ldbl-128ibm atanl spurious underflows (bug 14871).
2012-11-22 19:56:47 +00:00
Joseph Myers
1468ded38e
Fix ldbl-128ibm hypotl internal underflows (bug 14869).
2012-11-22 14:58:41 +00:00
Joseph Myers
8e27e3cc45
Fix ldbl-128ibm hypotl inaccuracy for arguments with large ratio (bug 14868).
2012-11-22 14:57:22 +00:00
Joseph Myers
c9c0279bcb
Mark some clog / clog10 underflows as expected for IBM long double.
2012-11-22 14:56:14 +00:00
David S. Miller
6d33cc9d9b
Fix spurious underflows in ldbl-128 atan implementation.
...
With help from Joseph Myers.
* sysdeps/ieee754/ldbl-128/s_atanl.c (__atanl): Handle tiny and
very large arguments properly.
* math/libm-test.inc (atan_test): New tests.
(atan2_test): New tests.
* sysdeps/sparc/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2012-11-19 15:31:24 -08:00
David S. Miller
05b227bdae
Correct tinyness handling in long-double and float y0/y1.
...
With help from Joseph Myers.
* sysdeps/ieee754/flt-32/e_j0f.c (__ieee754_y0f): Adjust tinyness
cutoff to 2**-13.
* sysdeps/ieee754/flt-32/e_j1f.c (__ieee754_y1f): Adjust tinyness
cutoff to 2**-25.
* sysdeps/ieee754/ldbl-128/e_j0l.c (U0): New constant.
( __ieee754_y0l): Avoid arithmetic underflow when 'x' is very
small.
* sysdeps/ieee754/ldbl-128/e_j1l.c (__ieee754_y1l): Likewise.
* math/libm-test.inc (y0_test): New tests.
(y1_test): New tests.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
* sysdeps/sparc/fpu/libm-test-ulps: Update.
2012-11-18 12:33:53 -08:00
Marcus Shawcroft
2fd8978571
Fix buffer overflow in libm-test.inc check_complex()
2012-11-15 18:02:03 +00:00
Joseph Myers
60e235ee2a
Fix spurious underflows from pow with results close to 1 (bug 14811).
2012-11-07 13:03:31 +00:00
Joseph Myers
82477c28f4
Fix fma underflows with small x * y (bug 14793).
2012-11-06 14:12:54 +00:00
Joseph Myers
a0c2940d67
Fix fma overflow results outside round-to-nearest mode (bug 14797).
2012-11-04 19:26:02 +00:00
Thomas Schwinge
b830319d49
[BZ #157 ] Remove include/stub-tag.h for good.
2012-11-04 19:59:40 +01:00
Joseph Myers
5b5b04d628
Make fma use of Dekker and Knuth algorithms use round-to-nearest (bug 14796).
2012-11-03 19:48:53 +00:00
Joseph Myers
0155d5b26e
Make math.h FP_* macros usable in #if (bug 3439).
2012-11-02 22:11:21 +00:00
Joseph Myers
473611b22d
Fix fma (a, b, c) for small a * b (bugs 14784, 14785).
2012-11-01 16:47:26 +00:00
Joseph Myers
16a0e2ec87
Fix ldbl-128ibm atan2l for x near 1.
2012-10-31 20:44:59 +00:00
Joseph Myers
ef82f4da79
Fix fma underflow exceptions in after-rounding edge cases.
2012-10-31 13:01:17 +00:00
Joseph Myers
8627a2329c
Fix fma missing underflows and bad results for some subnormal results (bugs 14152, 14783).
2012-10-30 13:54:50 +00:00
Markus Trippelsdorf
d077f65fc8
Comment on slow compilation of math/test-tgmath2.c
...
The math/test-tgmath2.c testcase uses very long lines
(>3 million), so it may take a while to compile it.
See: http://llvm.org/bugs/show_bug.cgi?id=14106 and
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54402
2012-10-18 16:03:49 -04:00
Joseph Myers
f9b9d9c945
Don't call feclearexcept in gamma function tests.
2012-10-17 23:42:32 +00:00
Joseph Myers
0e8e0c1c93
Make libm-test.inc test comparison macros.
2012-10-09 23:34:12 +00:00
Joseph Myers
ef1bb3618c
Improve libm test coverage of classification macros / functions.
2012-10-08 22:22:23 +00:00
Joseph Myers
28234b077e
Improve libm-test.inc comment.
2012-10-05 17:06:23 +00:00
Joseph Myers
bec749fda1
Fix sign of inexact zero return from fma (bug 14645).
2012-10-01 08:30:06 +00:00
Joseph Myers
8ec5b01346
Fix sign of exact zero return from fma (bug 14638).
2012-09-29 18:31:54 +00:00
Joseph Myers
d032e0d29b
Fix inaccuracy of clog, clog10 near |z| = 1 (bug 13629).
2012-09-25 19:43:49 +00:00
Liubov Dmitrieva
6d3bf19931
Fix wrong ussage of sincos for subnormal arguments
2012-09-25 20:41:17 +02:00
Liubov Dmitrieva
4ffffbd272
Add optimized sinf and cosf routines for x86 and x86-64
...
* sysdeps/i386/i686/fpu/multiarch/Makefile (sysdep_routines):
Add s_sinf-sse2, s_conf-sse2.
* sysdeps/i386/i686/fpu/multiarch/s_sinf-sse2.S: New file.
* sysdeps/i386/i686/fpu/multiarch/s_cosf-sse2.S: New file.
* sysdeps/i386/i686/fpu/multiarch/s_sinf.c: New file.
* sysdeps/i386/i686/fpu/multiarch/s_cosf.c: New file.
* sysdeps/ieee754/flt-32/s_sinf.c (SINF, SINF_FUNC): Add macros
for using routine as __sinf_ia32.
Use macro for function declaration and weak_alias.
* sysdeps/ieee754/flt-32/s_cosf.c (COSF, COSF_FUNC): Add macros
for using routine as __cosf_ia32.
Use macro for function declaration and weak_alias.
* sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.S: Fix Copyright.
* sysdeps/i386/i686/fpu/multiarch/e_expf.c: Fix Copyright.
* sysdeps/x86_64/fpu/s_sinf.S: New file.
* sysdeps/x86_64/fpu/s_cosf.S: New file.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
* math/libm-test.inc (cos_test): Add more test cases.
(sin_test): Likewise.
(sincos_test): Likewise.
2012-09-03 15:32:13 +02:00
Joseph Myers
d0419dbfbd
Improve clog, clog10 handling of values with real or imaginary part slightly above 1 (bug 13629).
2012-07-31 14:21:19 +00:00
Joseph Myers
da865e95bc
Improve clog, clog10 handling of values with real or imaginary part 1 (bug 13629).
2012-07-26 11:31:35 +00:00
Marek Polacek
354691b7b5
Set up errno properly for yn.
2012-07-25 12:59:36 +02:00
Thomas Schwinge
c23c33b01e
Add missing includes.
...
Follow-up to commits 38de94a5ef
,
76da726532
.
2012-07-22 22:25:14 +02:00
Marek Polacek
541428fecf
Fix ynl return value with LDBL_MIN.
2012-07-12 16:34:47 +02:00
Joseph Myers
638a572eb0
Fix clog, clog10 spurious underflow exceptions (bug 14337).
2012-07-09 11:06:34 +00:00
Joseph Myers
9ad63c23ea
Fix tanf underflow close to pi/4 (bug 14154).
2012-07-06 21:19:38 +00:00
Joseph Myers
f17ac40d7c
Fix expm1 spurious underflow exceptions (bug 6778).
2012-07-06 11:17:41 +00:00
Joseph Myers
cdfe2c5eb3
Fix csqrt underflow (bugs 14157, 14331).
2012-07-05 11:02:13 +00:00
Joseph Myers
ca61cf32d9
Fix ctan, ctanh of subnormals in round-upwards mode (bug 14328).
2012-07-04 09:55:26 +00:00
Joseph Myers
7a845b2c23
Fix float range reduction problems (bug 14283).
2012-07-03 17:11:41 +00:00
Joseph Myers
e2283f38fe
Add cosh tests for bug 14273.
2012-07-03 17:06:55 +00:00
Joseph Myers
10285c2113
Fix pow (0.0, -Inf) (bug 14241).
2012-06-15 11:27:51 +00:00
Joseph Myers
75fa192131
Allow more spurious underflow exceptions from csqrt and Bessel functions.
2012-06-14 14:35:24 +00:00
Joseph Myers
c5bfe3d5ba
Fix fmod for subnormals (bug 14048).
2012-06-01 19:05:46 +00:00
Joseph Myers
2d10d547c1
Use more decimal places for long double constants in math.h.
2012-05-31 21:25:48 +00:00
Marek Polacek
d81dcb3569
Fix fma test for underflow.
2012-05-26 13:49:49 +02:00
Joseph Myers
b65504975c
Fix acosf underflow (bug 14153).
2012-05-25 11:07:07 +00:00
Joseph Myers
7a25eb06bf
Add tests for underflow exception bugs 10846, 14036.
2012-05-24 15:36:54 +00:00
Joseph Myers
795405f956
Don't include exceptions in libm-test-ulps test names.
2012-05-24 12:14:03 +00:00
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
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
f5f312ebe0
Fix whitespace
2011-05-18 19:52:42 -04:00
H.J. Lu
8db736347c
Fix typo in x86-64 powl
2011-05-18 19:50:48 -04:00
Erich Ritz
0e012e8734
Fix typo in comment.
2010-11-01 14:50:24 -04: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
a7b420eadc
Fix whitespaces.
2010-04-08 16:09:15 -07:00
Ulrich Drepper
88e236a627
Fix cproj implmentation.
2010-04-08 15:32:51 -07:00
David S. Miller
2e9337f58a
(INSERT_WORDS64): Fix argument order.
2010-03-03 05:58:09 -08:00
Andreas Schwab
7eb22e757e
Avoid PLT call to fegetenv on s390
2010-02-09 22:34:17 -08:00
Jakub Jelinek
98363ded87
Fix range checks in coshl.
2009-10-27 13:46:08 -07:00
Joseph Myers
e9f145cba8
Fix generic fdiml.
2009-08-25 15:48:06 -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
f0c281e072
Fix overflow handling in fdim.
2009-08-24 12:06:55 -07:00
Ulrich Drepper
7b943af6cf
Define math_errhandling is possible.
2009-08-24 10:33:57 -07:00
Ulrich Drepper
78c4ef475d
Add support for x86-64 fma instruction.
...
Use it to implement fma and fmaf, if possible.
2009-07-29 15:26:06 -07:00
Andreas Schwab
ff6ff38db2
Remove redundant .gitignore files.
2009-05-16 10:18:34 +02:00
Ulrich Drepper
bbc5d74dd0
Add test for range error in expm1.
2009-05-15 19:53:09 -07:00
Jim Meyering
2e180a2622
rename each .cvsignore file to .gitignore
2009-05-15 18:13:37 +02: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
7095366d1e
* math/w_fmod.c: Also handle x=±Inf as error.
...
* math/w_fmodf.c: Likewise.
* math/w_fmodl.c: Likewise.
* math/libm-test.inc (fmod_test): Add tests for errno after calls for
x=±Inf or y=0.
2009-04-26 03:43:02 +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
acd44dbc7a
2008-10-24 Joseph Myers <joseph@codesourcery.com>
...
Ulrich Drepper <drepper@redhat.com>
* math/tgmath.h (__floating_type): Use __builtin_classify_type in
definition for GCC 3.1 and later.
2008-11-01 02:28:57 +00:00
Ulrich Drepper
8fb0af98d8
Work around braindead IBM128 long double format.
2008-05-22 19:59:10 +00:00