summaryrefslogtreecommitdiff
path: root/src/math/tanhl.c
AgeCommit message (Collapse)AuthorLines
2013-09-05math: long double fix (use ldshape union)Szabolcs Nagy-4/+1
* use new ldshape union consistently * add ld128 support to frexpl * simplify sqrtl comment (ld64 is not just arm)
2012-12-16math: tanh.c cleanup similar to sinh, coshSzabolcs Nagy-65/+27
comments are kept in the double version of the function compared to fdlibm/freebsd we partition the domain into one more part and select different threshold points: now the [log(5/3)/2,log(3)/2] and [log(3)/2,inf] domains should have <1.5ulp error (so only the last bit may be wrong, assuming good exp, expm1) (note that log(3)/2 and log(5/3)/2 are the points where tanh changes resolution: tanh(log(3)/2)=0.5, tanh(log(5/3)/2)=0.25) for some x < log(5/3)/2 (~=0.2554) the error can be >1.5ulp but it should be <2ulp (the freebsd code had some >2ulp errors in [0.255,1]) even with the extra logic the new code produces smaller object files
2012-03-19code cleanup of named constantsnsz-9/+9
zero, one, two, half are replaced by const literals The policy was to use the f suffix for float consts (1.0f), but don't use suffix for long double consts (these consts can be exactly represented as double).
2012-03-13first commit of the new libm!Rich Felker-0/+83
thanks to the hard work of Szabolcs Nagy (nsz), identifying the best (from correctness and license standpoint) implementations from freebsd and openbsd and cleaning them up! musl should now fully support c99 float and long double math functions, and has near-complete complex math support. tgmath should also work (fully on gcc-compatible compilers, and mostly on any c99 compiler). based largely on commit 0376d44a890fea261506f1fc63833e7a686dca19 from nsz's libm git repo, with some additions (dummy versions of a few missing long double complex functions, etc.) by me. various cleanups still need to be made, including re-adding (if they're correct) some asm functions that were dropped.