aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/ieee754/flt-32
AgeCommit message (Collapse)Author
2013-06-06Fix leading whitespaces.Ondrej Bilka
2013-06-05Remove trailing whitespace.Joseph Myers
2013-05-19Fix nearbyint scheduling of arithmetic past fesetenv (bug 15490).Joseph Myers
2013-05-08Improve tgamma accuracy (bugs 2546, 2560, 5159, 15426).Joseph Myers
2013-04-02New <math.h> macro named issignaling to check for a signaling NaN (sNaN).Thomas Schwinge
It is based on draft TS 18661 and currently enabled as a GNU extension.
2013-01-02Update copyright notices with scripts/update-copyrights.Joseph Myers
2012-11-18Correct tinyness handling in long-double and float y0/y1.David S. Miller
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-07Fix spurious underflows from pow with results close to 1 (bug 14811).Joseph Myers
2012-09-25Add optimized sincosf for SSE2 for x86 and x86-64Liubov Dmitrieva
2012-09-03Add optimized sinf and cosf routines for x86 and x86-64Liubov Dmitrieva
* 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-07-25Set up errno properly for yn.Marek Polacek
2012-07-06Fix tanf underflow close to pi/4 (bug 14154).Joseph Myers
2012-07-03Fix float range reduction problems (bug 14283).Joseph Myers
2012-05-26Optimize handling of denormals in logb/logbf/logblAndreas Schwab
2012-05-25Fix acosf underflow (bug 14153).Joseph Myers
2012-05-10Fix for logb/logbf/logbl (bugs 13954/13955/13956)Adhemerval Zanella
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-05Fix missing exceptions from exp (bugs 13787, 13922, 14036).Joseph Myers
2012-04-18Remove useless __ilogb*_finite aliasesAndreas Schwab
2012-04-17Fix ilogb exception and errno (bug 6794)Adhemerval Zanella
[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-03-19Create and use SET_RESTORE_ROUND{,_NOEX,_53BIT}{,F,L}.Richard Henderson
2012-03-19Make inline __isnan, __isinf_ns, __finite generic.Richard Henderson
For code generation to stay identical on x86_64, this requires that we define the fp word manipulation macros before including the generic header.
2012-03-13Fix hypotf overflow/underflow by using double precision instead of scaling.David S. Miller
[BZ #13840] * sysdeps/ieee754/flt-32/e_hypotf.c (__ieee754_hypotf): Rewrite to use double-precision for the calculation instead of scaling.
2012-03-09Use <> for math.h and math_private.h everywhere.Richard Henderson
Entire tree edited via find | grep | sed.
2012-03-02Fix scalbn, scalbln integer overflow.Joseph Myers
2012-03-01Improve erfc accuracy.Joseph Myers
2012-02-22Fix nearbyintf rounding.Joseph Myers
2012-02-22Fix rintf rounding.Joseph Myers
2012-02-19Use non-signaling floating-point comparisons in math functions.Aurelien Jarno
2012-02-09Replace FSF snail mail address with URLs.Paul Eggert
2012-01-27Remove __STDC__ conditionals from libm.Joseph Myers
2012-01-11Optimize scalblnUlrich Drepper
2012-01-10Optimize s_modfUlrich Drepper
2012-01-10Optimize ldexp and scalbnUlrich Drepper
2011-10-26Fix uses of math_force_evalAndreas Schwab
2011-10-25Use math_force_eval in more placesUlrich Drepper
2011-10-22Optimization to some complex math functionsUlrich Drepper
Also, change last reference to __sqrt into __sqrt to easily.
2011-10-18Use new internal libc_fe* interfaces in more functionsUlrich Drepper
2011-10-16Use rounds{s,d} for x86 rint, ceil, floorUlrich Drepper
2011-10-15Optimize expUlrich Drepper
Add __exp*_finite optimizations and rewrite some wrappers.
2011-10-12Optimize libmUlrich Drepper
libm is now somewhat integrated with gcc's -ffinite-math-only option and lots of the wrapper functions have been optimized.
2011-10-08Fix some nit warnings.Roland McGrath
2011-10-08Optimize use of isnan, isinf, finiteUlrich Drepper
2011-09-09Fix jn precisionPetr Baudis
2009-10-19Correct errno handling in expm1.Andreas Schwab
2009-04-27* sysdeps/ieee754/dbl-64/s_expm1.c: Set errno for overflow.Ulrich Drepper
* sysdeps/ieee754/flt-32/s_expm1f.c: Likewise. * sysdeps/x86_64/fpu/s_expm1l.S: Likewise.
2009-04-26* sysdeps/i386/fpu/s_tan.S: Set errno for ±Inf.Ulrich Drepper
* 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* sysdeps/i386/fpu/s_cos.S: Set errno for ±Inf.Ulrich Drepper
* 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.
2008-05-11[BZ #3406]Ulrich Drepper
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.
2007-10-06[BZ #4407]Ulrich Drepper
* sysdeps/ieee754/dbl-64/e_lgamma_r.c: Fix *signgamp for -0.0. * sysdeps/ieee754/flt-32/e_lgammaf_r.c: Likewise. * sysdeps/ieee754/ldbl-96/e_lgammal_r.c: Likewise. * math/libm-test.inc: Add test for this case. Half the patch by Christian Iseli <christian.iseli@licr.org>.
2007-04-16[BZ #3306]Ulrich Drepper
2007-03-27 Jakub Jelinek <jakub@redhat.com> [BZ #3306] * math/math_private.h (math_opt_barrier, math_force_eval): Define. * sysdeps/i386/fpu/math_private.h: New file. * sysdeps/x86_64/fpu/math_private.h: New file. * math/s_nexttowardf.c (__nexttowardf): Use math_opt_barrier and math_force_eval macros. Use "+m" constraint on asm rather than "=m" and "m". * math/s_nextafter.c (__nextafter): Likewise. * sysdeps/ieee754/ldbl-128ibm/s_nexttoward.c (__nexttoward): Likewise. * sysdeps/ieee754/flt-32/s_nextafterf.c (__nextafterf): Likewise. * sysdeps/ieee754/ldbl-128/s_nexttoward.c (__nexttoward): Likewise. * sysdeps/ieee754/ldbl-96/s_nexttoward.c (__nexttoward): Likewise. * sysdeps/i386/fpu/s_nextafterl.c (__nextafterl): Use math_opt_barrier and math_force_eval macros. * sysdeps/ieee754/ldbl-128/s_nextafterl.c (__nextafterl): Likewise. * sysdeps/ieee754/ldbl-96/s_nextafterl.c (__nextafterl): Likewise. * sysdeps/i386/fpu/s_nexttoward.c: Include float.h. (__nexttoward): Use math_opt_barrier and math_force_eval macros. Use "+m" constraint on asm rather than "=m" and "m". Only use asm to force double result if FLT_EVAL_METHOD is 2. * sysdeps/i386/fpu/s_nexttowardf.c: Include float.h. (__nexttowardf): Use math_opt_barrier and math_force_eval macros. Use "+m" constraint on asm rather than "=m" and "m". Only use asm to force double result if FLT_EVAL_METHOD is not 0. * sysdeps/ieee754/ldbl-128ibm/s_nexttowardf.c: Include float.h. (__nexttowardf): Use math_opt_barrier and math_force_eval macros. If FLT_EVAL_METHOD is not 0, force x to float using asm. * sysdeps/ieee754/ldbl-opt/s_nexttowardfd.c: Include float.h. (__nldbl_nexttowardf): Use math_opt_barrier and math_force_eval macros. If FLT_EVAL_METHOD is not 0, force x to float using asm. * sysdeps/ieee754/ldbl-96/s_nexttowardf.c: Include float.h. (__nexttowardf): Use math_opt_barrier and math_force_eval macros. If FLT_EVAL_METHOD is not 0, force x to float using asm. * math/bug-nextafter.c (zero, inf): New variables. (main): Add new tests. * math/bug-nexttoward.c (zero, inf): New variables. (main): Add new tests.