summaryrefslogtreecommitdiff
path: root/src/math/sincosl.c
AgeCommit message (Collapse)AuthorLines
2014-04-11math: fix aliasing violation in long double wrappersSzabolcs Nagy-1/+4
modfl and sincosl were passing long double* instead of double* to the wrapped double precision functions (on archs where long double and double have the same size). This is fixed now by using temporaries (this is not optimized to a single branch so the generated code is a bit bigger). Found by Morten Welinder.
2013-09-05math: long double trigonometric cleanup (cosl, sinl, sincosl, tanl)Szabolcs Nagy-13/+6
ld128 support was added to internal kernel functions (__cosl, __sinl, __tanl, __rem_pio2l) from freebsd (not tested, but should be a good start for when ld128 arch arrives) __rem_pio2l had some code cleanup, the freebsd ld128 code seems to gather the results of a large reduction with precision loss (fixed the bug but a todo comment was added for later investigation) the old copyright was removed from the non-kernel wrapper functions (cosl, sinl, sincosl, tanl) since these are trivial and the interesting parts and comments had been already rewritten.
2013-05-18math: sin cos cleanupSzabolcs Nagy-9/+11
* use unsigned arithmetics * use unsigned to store arg reduction quotient (so n&3 is understood) * remove z=0.0 variables, use literal 0 * raise underflow and inexact exceptions properly when x is small * fix spurious underflow in tanl
2012-07-02fix missing prototype and simplify sincosl on ld64 archsRich Felker-4/+2
2012-03-19don't inline __rem_pio2l so the code size is smallernsz-2/+0
2012-03-15efficient sincos based on sin and cosnsz-0/+66