musl/src/math
Szabolcs Nagy 121e3a38a1 math: erf and erfc cleanup
common part of erf and erfc was put in a separate function which
saved some space and the new code is using unsigned arithmetics

erfcf had a bug: for some inputs in [7.95,8] the result had
more than 60ulp error: in expf(-z*z - 0.5625f) the argument
must be exact but not enough lowbits of z were zeroed,
-SET_FLOAT_WORD(z, ix&0xfffff000);
+SET_FLOAT_WORD(z, ix&0xffffe000);
fixed the issue
2013-01-07 23:54:13 +01:00
..
i386 math: x86_64 version of expl, fixed some comments in the i386 version 2012-12-16 17:30:29 +01:00
x86_64 math: x86_64 version of expl, fixed some comments in the i386 version 2012-12-16 17:30:29 +01:00
__cos.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
__cosdf.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
__cosl.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
__expo2.c clean up __expo2.c, use a slightly better k constant 2012-03-13 16:38:22 +01:00
__expo2f.c clean up __expo2.c, use a slightly better k constant 2012-03-13 16:38:22 +01:00
__fpclassify.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
__fpclassifyf.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
__fpclassifyl.c support ld80 pseudo-denormal invalid bit patterns; treat them as nan 2012-06-20 15:15:10 -04:00
__invtrigl.c math: clean up inverse trigonometric functions 2012-12-11 23:56:59 +01:00
__invtrigl.h math: clean up inverse trigonometric functions 2012-12-11 23:56:59 +01:00
__log1p.h first commit of the new libm! 2012-03-13 01:17:53 -04:00
__log1pf.h math cleanup: use 1.0f instead of (float)1.0 2012-03-13 20:24:23 +01:00
__polevll.c fix loads of missing const in new libm, and some global vars (?!) in powl 2012-03-18 01:58:28 -04:00
__rem_pio2_large.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
__rem_pio2.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
__rem_pio2f.c math: fix comment in __rem_pio2f.c 2012-12-12 01:28:22 +01:00
__rem_pio2l.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
__signbit.c remove a fixme comment 2012-03-20 20:08:35 +01:00
__signbitf.c remove a fixme comment 2012-03-20 20:08:35 +01:00
__signbitl.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
__sin.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
__sindf.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
__sinl.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
__tan.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
__tandf.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
__tanl.c minor fix in __tanl (get sign properly) 2012-03-19 19:14:32 +01:00
acos.c math: use 0x1p-120f and 0x1p120f for tiny and huge values 2012-12-16 20:28:43 +01:00
acosf.c math: clean up inverse trigonometric functions 2012-12-11 23:56:59 +01:00
acosh.c math: rewrite inverse hyperbolic functions to be simpler/smaller 2012-12-11 23:06:20 +01:00
acoshf.c math: rewrite inverse hyperbolic functions to be simpler/smaller 2012-12-11 23:06:20 +01:00
acoshl.c math: rewrite inverse hyperbolic functions to be simpler/smaller 2012-12-11 23:06:20 +01:00
acosl.c math: use 0x1p-120f and 0x1p120f for tiny and huge values 2012-12-16 20:28:43 +01:00
asin.c math: use 0x1p-120f and 0x1p120f for tiny and huge values 2012-12-16 20:28:43 +01:00
asinf.c math: clean up inverse trigonometric functions 2012-12-11 23:56:59 +01:00
asinh.c math: use 0x1p-120f and 0x1p120f for tiny and huge values 2012-12-16 20:28:43 +01:00
asinhf.c math: rewrite inverse hyperbolic functions to be simpler/smaller 2012-12-11 23:06:20 +01:00
asinhl.c math: use 0x1p-120f and 0x1p120f for tiny and huge values 2012-12-16 20:28:43 +01:00
asinl.c math: use 0x1p-120f and 0x1p120f for tiny and huge values 2012-12-16 20:28:43 +01:00
atan2.c math: ld80 invtrig cleanups 2012-11-14 01:01:38 +01:00
atan2f.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
atan2l.c math: use 0x1p-120f and 0x1p120f for tiny and huge values 2012-12-16 20:28:43 +01:00
atan.c math: use 0x1p-120f and 0x1p120f for tiny and huge values 2012-12-16 20:28:43 +01:00
atanf.c math: clean up inverse trigonometric functions 2012-12-11 23:56:59 +01:00
atanh.c math: rewrite inverse hyperbolic functions to be simpler/smaller 2012-12-11 23:06:20 +01:00
atanhf.c math: rewrite inverse hyperbolic functions to be simpler/smaller 2012-12-11 23:06:20 +01:00
atanhl.c math: rewrite inverse hyperbolic functions to be simpler/smaller 2012-12-11 23:06:20 +01:00
atanl.c math: use 0x1p-120f and 0x1p120f for tiny and huge values 2012-12-16 20:28:43 +01:00
cbrt.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
cbrtf.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
cbrtl.c fix a cbrtl.c regression and remove x87 precision setting 2012-03-20 15:17:15 +01:00
ceil.c math: minor cleanups in ceil and floor 2012-03-29 14:09:57 +02:00
ceilf.c math: minor cleanups in ceil and floor 2012-03-29 14:09:57 +02:00
ceill.c math: minor cleanups in ceil and floor 2012-03-29 14:09:57 +02:00
copysign.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
copysignf.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
copysignl.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
cos.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
cosf.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
cosh.c math: finished cosh.c cleanup 2012-12-16 19:23:51 +01:00
coshf.c math: finished cosh.c cleanup 2012-12-16 19:23:51 +01:00
coshl.c math: finished cosh.c cleanup 2012-12-16 19:23:51 +01:00
cosl.c don't inline __rem_pio2l so the code size is smaller 2012-03-19 19:26:31 +01:00
erf.c math: erf and erfc cleanup 2013-01-07 23:54:13 +01:00
erff.c math: erf and erfc cleanup 2013-01-07 23:54:13 +01:00
erfl.c math: erf and erfc cleanup 2013-01-07 23:54:13 +01:00
exp2.c math: cleanup exp2.c exp2f.c and exp2l.c 2012-11-17 23:39:39 +01:00
exp2f.c math: use 0x1p-120f and 0x1p120f for tiny and huge values 2012-12-16 20:28:43 +01:00
exp2l.c math: cleanup exp2.c exp2f.c and exp2l.c 2012-11-17 23:39:39 +01:00
exp10.c support alternate glibc name pow10 for exp10 2012-05-01 00:07:37 -04:00
exp10f.c math: use float constants in exp10f.c 2012-11-18 03:52:29 +01:00
exp10l.c math: fix long double constants in exp10l.c 2012-11-12 23:13:28 +01:00
exp.c math: expf.c cleanup 2012-11-18 03:42:09 +01:00
expf.c math: expf.c cleanup 2012-11-18 03:42:09 +01:00
expl.c math: expl.c cleanup 2012-11-18 03:49:16 +01:00
expm1.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
expm1f.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
expm1l.c math: fix exception behaviour of expm1l.c on inf and nan 2012-11-12 23:41:48 +01:00
fabs.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
fabsf.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
fabsl.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
fdim.c remove libm.h includes when math.h and float.h are enough 2012-03-13 19:51:14 +01:00
fdimf.c remove libm.h includes when math.h and float.h are enough 2012-03-13 19:51:14 +01:00
fdiml.c remove libm.h includes when math.h and float.h are enough 2012-03-13 19:51:14 +01:00
floor.c math: minor cleanups in ceil and floor 2012-03-29 14:09:57 +02:00
floorf.c math cleanup: use 1.0f instead of (float)1.0 2012-03-13 20:24:23 +01:00
floorl.c math: minor cleanups in ceil and floor 2012-03-29 14:09:57 +02:00
fma.c math: use '#pragma STDC FENV_ACCESS ON' when fenv is accessed 2012-11-13 13:34:45 +01:00
fmaf.c math: use '#pragma STDC FENV_ACCESS ON' when fenv is accessed 2012-11-13 13:34:45 +01:00
fmal.c math: use '#pragma STDC FENV_ACCESS ON' when fenv is accessed 2012-11-13 13:34:45 +01:00
fmax.c remove libm.h includes when math.h and float.h are enough 2012-03-13 19:51:14 +01:00
fmaxf.c remove libm.h includes when math.h and float.h are enough 2012-03-13 19:51:14 +01:00
fmaxl.c remove libm.h includes when math.h and float.h are enough 2012-03-13 19:51:14 +01:00
fmin.c remove libm.h includes when math.h and float.h are enough 2012-03-13 19:51:14 +01:00
fminf.c remove libm.h includes when math.h and float.h are enough 2012-03-13 19:51:14 +01:00
fminl.c remove libm.h includes when math.h and float.h are enough 2012-03-13 19:51:14 +01:00
fmod.c don't try to create non-standard denormalization signal 2012-03-19 23:30:45 +01:00
fmodf.c don't try to create non-standard denormalization signal 2012-03-19 23:30:45 +01:00
fmodl.c don't try to create non-standard denormalization signal 2012-03-19 23:30:45 +01:00
frexp.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
frexpf.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
frexpl.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
hypot.c math: simplify hypot and hypotf using scalbn 2012-11-13 21:54:32 +01:00
hypotf.c math: simplify hypot and hypotf using scalbn 2012-11-13 21:54:32 +01:00
hypotl.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
ilogb.c math: raise invalid flag in ilogb*.c on +-0, +-inf and nan 2012-11-12 23:58:18 +01:00
ilogbf.c math: raise invalid flag in ilogb*.c on +-0, +-inf and nan 2012-11-12 23:58:18 +01:00
ilogbl.c math: raise invalid flag in ilogb*.c on +-0, +-inf and nan 2012-11-12 23:58:18 +01:00
j0.c math: bessel cleanup (j0.c and j0f.c) 2013-01-01 21:59:46 +01:00
j0f.c math: bessel cleanup (j0.c and j0f.c) 2013-01-01 21:59:46 +01:00
j1.c math: bessel cleanup (j1.c and j1f.c) 2013-01-01 22:11:28 +01:00
j1f.c math: bessel cleanup (j1.c and j1f.c) 2013-01-01 22:11:28 +01:00
jn.c math: bessel cleanup (jn.c and jnf.c) 2013-01-01 22:20:45 +01:00
jnf.c math: bessel cleanup (jn.c and jnf.c) 2013-01-01 22:20:45 +01:00
ldexp.c remove libm.h includes when math.h and float.h are enough 2012-03-13 19:51:14 +01:00
ldexpf.c remove libm.h includes when math.h and float.h are enough 2012-03-13 19:51:14 +01:00
ldexpl.c remove libm.h includes when math.h and float.h are enough 2012-03-13 19:51:14 +01:00
lgamma_r.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
lgamma.c math: remove comment about aliasing lgamma as gamma 2012-03-27 22:12:20 +02:00
lgammaf_r.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
lgammaf.c math: remove comment about aliasing lgamma as gamma 2012-03-27 22:12:20 +02:00
lgammal.c math: remove comment about aliasing lgamma as gamma 2012-03-27 22:12:20 +02:00
llrint.c make lrint and llrint functions work without fenv support 2012-03-18 20:40:43 +01:00
llrintf.c make lrint and llrint functions work without fenv support 2012-03-18 20:40:43 +01:00
llrintl.c math: use '#pragma STDC FENV_ACCESS ON' when fenv is accessed 2012-11-13 13:34:45 +01:00
llround.c simplify lround and llround functions 2012-03-18 20:52:33 +01:00
llroundf.c simplify lround and llround functions 2012-03-18 20:52:33 +01:00
llroundl.c simplify lround and llround functions 2012-03-18 20:52:33 +01:00
log1p.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
log1pf.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
log1pl.c math: raise exception flags in log1pl.c on <= -1 arguments 2012-11-13 00:21:09 +01:00
log2.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
log2f.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
log2l.c math: raise flags in logl.c on <= 0 arguments 2012-11-13 00:49:55 +01:00
log10.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
log10f.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
log10l.c use scalbn or *2.0 instead of ldexp, fix fmal 2012-03-19 22:57:58 +01:00
log.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
logb.c math: fix logb*.c exceptions now that ilogb raises invalid 2012-11-13 00:45:51 +01:00
logbf.c math: fix logb*.c exceptions now that ilogb raises invalid 2012-11-13 00:45:51 +01:00
logbl.c math: fix logb*.c exceptions now that ilogb raises invalid 2012-11-13 00:45:51 +01:00
logf.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
logl.c math: raise flags in logl.c on <= 0 arguments 2012-11-13 00:49:55 +01:00
lrint.c math: use '#pragma STDC FENV_ACCESS ON' when fenv is accessed 2012-11-13 13:34:45 +01:00
lrintf.c make lrint and llrint functions work without fenv support 2012-03-18 20:40:43 +01:00
lrintl.c math: use '#pragma STDC FENV_ACCESS ON' when fenv is accessed 2012-11-13 13:34:45 +01:00
lround.c simplify lround and llround functions 2012-03-18 20:52:33 +01:00
lroundf.c simplify lround and llround functions 2012-03-18 20:52:33 +01:00
lroundl.c simplify lround and llround functions 2012-03-18 20:52:33 +01:00
modf.c math: excess precision fix modf, modff, scalbn, scalbnf 2012-11-13 10:55:35 +01:00
modff.c math: excess precision fix modf, modff, scalbn, scalbnf 2012-11-13 10:55:35 +01:00
modfl.c fix invalid implicit pointer conversion in ld64 modfl 2012-07-02 20:22:50 -04:00
nan.c implement nan, nanf, nanl 2012-03-13 01:55:25 -04:00
nanf.c implement nan, nanf, nanl 2012-03-13 01:55:25 -04:00
nanl.c implement nan, nanf, nanl 2012-03-13 01:55:25 -04:00
nearbyint.c math: use '#pragma STDC FENV_ACCESS ON' when fenv is accessed 2012-11-13 13:34:45 +01:00
nearbyintf.c math: use '#pragma STDC FENV_ACCESS ON' when fenv is accessed 2012-11-13 13:34:45 +01:00
nearbyintl.c math: use '#pragma STDC FENV_ACCESS ON' when fenv is accessed 2012-11-13 13:34:45 +01:00
nextafter.c math: fix nextafter and nexttoward on maxdbl and maxflt input 2012-11-13 10:12:07 +01:00
nextafterf.c math: fix nextafter and nexttoward on maxdbl and maxflt input 2012-11-13 10:12:07 +01:00
nextafterl.c add FORCE_EVAL macro to evaluate float expr for their side effect 2012-05-06 21:24:28 +02:00
nexttoward.c math: fix nextafter and nexttoward on maxdbl and maxflt input 2012-11-13 10:12:07 +01:00
nexttowardf.c math: fix nextafter and nexttoward on maxdbl and maxflt input 2012-11-13 10:12:07 +01:00
nexttowardl.c remove libm.h includes when math.h and float.h are enough 2012-03-13 19:51:14 +01:00
pow.c clean up pow.c and powf.c 2012-03-20 20:04:53 +01:00
powf.c clean up pow.c and powf.c 2012-03-20 20:04:53 +01:00
powl.c math: fix a regression in powl and do some cleanups 2012-03-27 22:49:37 +02:00
remainder.c fix remainder*.c: remove useless long double cast 2012-03-19 23:39:47 +01:00
remainderf.c fix remainder*.c: remove useless long double cast 2012-03-19 23:39:47 +01:00
remainderl.c remove libm.h includes when math.h and float.h are enough 2012-03-13 19:51:14 +01:00
remquo.c math: fix remquo.c when x==-y and a subnormal remainder bug as well 2012-05-08 00:22:56 +02:00
remquof.c math: fix remquo.c when x==-y and a subnormal remainder bug as well 2012-05-08 00:22:56 +02:00
remquol.c math: fix remquo.c when x==-y and a subnormal remainder bug as well 2012-05-08 00:22:56 +02:00
rint.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
rintf.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
rintl.c minor rintl.c fix: remove unsupported ldbl format message 2012-03-23 01:26:04 +01:00
round.c remove libm.h includes when math.h and float.h are enough 2012-03-13 19:51:14 +01:00
roundf.c remove libm.h includes when math.h and float.h are enough 2012-03-13 19:51:14 +01:00
roundl.c remove libm.h includes when math.h and float.h are enough 2012-03-13 19:51:14 +01:00
scalb.c remove libm.h includes when math.h and float.h are enough 2012-03-13 19:51:14 +01:00
scalbf.c math cleanup: use 1.0f instead of (float)1.0 2012-03-13 20:24:23 +01:00
scalbln.c remove libm.h includes when math.h and float.h are enough 2012-03-13 19:51:14 +01:00
scalblnf.c remove libm.h includes when math.h and float.h are enough 2012-03-13 19:51:14 +01:00
scalblnl.c remove libm.h includes when math.h and float.h are enough 2012-03-13 19:51:14 +01:00
scalbn.c math: excess precision fix modf, modff, scalbn, scalbnf 2012-11-13 10:55:35 +01:00
scalbnf.c math: excess precision fix modf, modff, scalbn, scalbnf 2012-11-13 10:55:35 +01:00
scalbnl.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
signgam.c make signgam a weak alias for an internal symbol 2012-03-16 21:18:48 -04:00
significand.c add significand[fl] math functions 2012-08-13 14:51:43 -04:00
significandf.c add significand[fl] math functions 2012-08-13 14:51:43 -04:00
sin.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
sincos.c efficient sincos based on sin and cos 2012-03-15 08:17:28 +01:00
sincosf.c fix trailing whitespace issues that crept in here and there 2012-12-07 16:16:44 -05:00
sincosl.c fix missing prototype and simplify sincosl on ld64 archs 2012-07-02 20:25:28 -04:00
sinf.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
sinh.c math: sinh.c cleanup similar to the cosh one 2012-12-16 19:49:55 +01:00
sinhf.c math: sinh.c cleanup similar to the cosh one 2012-12-16 19:49:55 +01:00
sinhl.c math: sinh.c cleanup similar to the cosh one 2012-12-16 19:49:55 +01:00
sinl.c don't inline __rem_pio2l so the code size is smaller 2012-03-19 19:26:31 +01:00
sqrt.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
sqrtf.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
sqrtl.c add C stub for sqrtl (already implemented in asm on i386 and x86_64) 2012-04-30 21:32:19 -04:00
tan.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
tanf.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
tanh.c math: tanh.c cleanup similar to sinh, cosh 2012-12-16 19:52:42 +01:00
tanhf.c math: tanh.c cleanup similar to sinh, cosh 2012-12-16 19:52:42 +01:00
tanhl.c math: tanh.c cleanup similar to sinh, cosh 2012-12-16 19:52:42 +01:00
tanl.c don't inline __rem_pio2l so the code size is smaller 2012-03-19 19:26:31 +01:00
tgamma.c math: add a non-dummy tgamma implementation 2012-12-12 01:43:43 +01:00
tgammaf.c math: add a non-dummy tgamma implementation 2012-12-12 01:43:43 +01:00
tgammal.c math: tgammal.c fixes 2012-12-16 20:22:17 +01:00
trunc.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
truncf.c math cleanup: use 1.0f instead of 1.0F 2012-03-13 21:11:46 +01:00
truncl.c first commit of the new libm! 2012-03-13 01:17:53 -04:00