math: long double fix (use ldshape union)

* use new ldshape union consistently
* add ld128 support to frexpl
* simplify sqrtl comment (ld64 is not just arm)
This commit is contained in:
Szabolcs Nagy
2013-09-04 15:54:02 +00:00
parent 2eaed464e2
commit aa0c4a204e
8 changed files with 24 additions and 51 deletions

View File

@ -9,10 +9,7 @@ long double asinhl(long double x)
/* asinh(x) = sign(x)*log(|x|+sqrt(x*x+1)) ~= x - x^3/6 + o(x^5) */
long double asinhl(long double x)
{
union {
long double f;
struct{uint64_t m; uint16_t se; uint16_t pad;} i;
} u = {.f = x};
union ldshape u = {x};
unsigned e = u.i.se & 0x7fff;
unsigned s = u.i.se >> 15;