about summary refs log tree commit diff
path: root/src/math/sincosl.c
Commit message (Collapse)AuthorAgeFilesLines
* math: fix aliasing violation in long double wrappersSzabolcs Nagy2014-04-111-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.
* math: long double trigonometric cleanup (cosl, sinl, sincosl, tanl)Szabolcs Nagy2013-09-051-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.
* math: sin cos cleanupSzabolcs Nagy2013-05-181-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
* fix missing prototype and simplify sincosl on ld64 archsRich Felker2012-07-021-4/+2
|
* don't inline __rem_pio2l so the code size is smallernsz2012-03-191-2/+0
|
* efficient sincos based on sin and cosnsz2012-03-151-0/+66