musl/src/math
Rich Felker ad2d2b963a asm for hypot and hypotf
special care is made to avoid any inexact computations when either arg
is zero (in which case the exact absolute value of the other arg
should be returned) and to support the special condition that
hypot(±inf,nan) yields inf.

hypotl is not yet implemented since avoiding overflow is nontrivial.
2012-03-23 01:52:49 -04:00
..
i386 asm for hypot and hypotf 2012-03-23 01:52:49 -04:00
x86_64 acos.s fix: use the formula acos(x) = atan2(sqrt(1-x),sqrt(1+x)) 2012-03-22 14:54:47 +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 first commit of the new libm! 2012-03-13 01:17:53 -04:00
__invtrigl.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
__invtrigl.h first commit of the new libm! 2012-03-13 01:17:53 -04: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.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
__rem_pio2_large.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
__rem_pio2f.c first commit of the new libm! 2012-03-13 01:17:53 -04: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 code cleanup of named constants 2012-03-19 23:41:19 +01:00
acosf.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
acosh.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
acoshf.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
acoshl.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
acosl.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
asin.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
asinf.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
asinh.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
asinhf.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
asinhl.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
asinl.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
atan.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
atan2.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
atan2f.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
atan2l.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
atanf.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
atanh.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
atanhf.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
atanhl.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
atanl.c code cleanup of named constants 2012-03-19 23:41:19 +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 first commit of the new libm! 2012-03-13 01:17:53 -04:00
ceilf.c math cleanup: use 1.0f instead of (float)1.0 2012-03-13 20:24:23 +01:00
ceill.c first commit of the new libm! 2012-03-13 01:17:53 -04: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 code cleanup of named constants 2012-03-19 23:41:19 +01:00
coshf.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
coshl.c code cleanup of named constants 2012-03-19 23:41:19 +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 code cleanup of named constants 2012-03-19 23:41:19 +01:00
erff.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
erfl.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
exp.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
exp2.c fix loads of missing const in new libm, and some global vars (?!) in powl 2012-03-18 01:58:28 -04:00
exp2f.c fix loads of missing const in new libm, and some global vars (?!) in powl 2012-03-18 01:58:28 -04:00
exp2l.c fix loads of missing const in new libm, and some global vars (?!) in powl 2012-03-18 01:58:28 -04:00
expf.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
expl.c use scalbn or *2.0 instead of ldexp, fix fmal 2012-03-19 22:57:58 +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 use scalbn or *2.0 instead of ldexp, fix fmal 2012-03-19 22:57:58 +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 first commit of the new libm! 2012-03-13 01:17:53 -04:00
floorf.c math cleanup: use 1.0f instead of (float)1.0 2012-03-13 20:24:23 +01:00
floorl.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
fma.c use scalbn or *2.0 instead of ldexp, fix fmal 2012-03-19 22:57:58 +01:00
fmaf.c make fma and lrint functions build without full fenv support 2012-03-16 23:58:49 -04:00
fmal.c use scalbn or *2.0 instead of ldexp, fix fmal 2012-03-19 22:57:58 +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 first commit of the new libm! 2012-03-13 01:17:53 -04:00
hypotf.c math cleanup: use 1.0f instead of 1.0F 2012-03-13 21:11:46 +01:00
hypotl.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
ilogb.c remove libm.h includes when math.h and float.h are enough 2012-03-13 19:51:14 +01:00
ilogbf.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
ilogbl.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
j0.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
j0f.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
j1.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
j1f.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
jn.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
jnf.c code cleanup of named constants 2012-03-19 23:41:19 +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.c other side of the signgam namespace fix: use the internal name 2012-03-16 21:20:53 -04:00
lgamma_r.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
lgammaf.c other side of the signgam namespace fix: use the internal name 2012-03-16 21:20:53 -04:00
lgammaf_r.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
lgammal.c code cleanup of named constants 2012-03-19 23:41:19 +01: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 make lrint and llrint functions work without fenv support 2012-03-18 20:40:43 +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
log.c code cleanup of named constants 2012-03-19 23:41:19 +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 code cleanup of named constants 2012-03-19 23:41:19 +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 use scalbn or *2.0 instead of ldexp, fix fmal 2012-03-19 22:57:58 +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
logb.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
logbf.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
logbl.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
logf.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
logl.c use scalbn or *2.0 instead of ldexp, fix fmal 2012-03-19 22:57:58 +01:00
lrint.c make lrint and llrint functions work without fenv support 2012-03-18 20:40:43 +01:00
lrintf.c make lrint and llrint functions work without fenv support 2012-03-18 20:40:43 +01:00
lrintl.c make lrint and llrint functions work without fenv support 2012-03-18 20:40:43 +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 code cleanup of named constants 2012-03-19 23:41:19 +01:00
modff.c new modff.c code, fix nan handling in modfl 2012-03-19 23:27:45 +01:00
modfl.c new modff.c code, fix nan handling in modfl 2012-03-19 23:27:45 +01: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 nearbyint optimization (only clear inexact when necessary) 2012-03-20 22:49:19 +01:00
nearbyintf.c nearbyint optimization (only clear inexact when necessary) 2012-03-20 22:49:19 +01:00
nearbyintl.c nearbyint optimization (only clear inexact when necessary) 2012-03-20 22:49:19 +01:00
nextafter.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
nextafterf.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
nextafterl.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
nexttoward.c remove libm.h includes when math.h and float.h are enough 2012-03-13 19:51:14 +01:00
nexttowardf.c first commit of the new libm! 2012-03-13 01:17:53 -04: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 clean up powl.c 2012-03-20 19:59:50 +01: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 remove a fixme comment 2012-03-20 20:08:35 +01:00
remquof.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
remquol.c code cleanup of named constants 2012-03-19 23:41:19 +01: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 code cleanup of named constants 2012-03-19 23:41:19 +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 simplify scalbn*.c implementations 2012-03-19 10:54:07 +01:00
scalbnf.c simplify scalbn*.c implementations 2012-03-19 10:54:07 +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
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 efficient sincos based on sin and cos 2012-03-15 08:17:28 +01:00
sincosl.c don't inline __rem_pio2l so the code size is smaller 2012-03-19 19:26:31 +01:00
sinf.c first commit of the new libm! 2012-03-13 01:17:53 -04:00
sinh.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
sinhf.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
sinhl.c code cleanup of named constants 2012-03-19 23:41:19 +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 first commit of the new libm! 2012-03-13 01:17:53 -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 code cleanup of named constants 2012-03-19 23:41:19 +01:00
tanhf.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
tanhl.c code cleanup of named constants 2012-03-19 23:41:19 +01:00
tanl.c don't inline __rem_pio2l so the code size is smaller 2012-03-19 19:26:31 +01:00
tgammal.c code cleanup of named constants 2012-03-19 23:41:19 +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