source:
azure_iot_hub_mbedtls/trunk/musl-1.1.18/src/math/__fpclassifyl.c@
398
Last change on this file since 398 was 398, checked in by , 5 years ago | |
---|---|
|
|
File size: 765 bytes |
Line | |
---|---|
1 | #include "libm.h" |
2 | |
3 | #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024 |
4 | int __fpclassifyl(long double x) |
5 | { |
6 | return __fpclassify(x); |
7 | } |
8 | #elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384 |
9 | int __fpclassifyl(long double x) |
10 | { |
11 | union ldshape u = {x}; |
12 | int e = u.i.se & 0x7fff; |
13 | int msb = u.i.m>>63; |
14 | if (!e && !msb) |
15 | return u.i.m ? FP_SUBNORMAL : FP_ZERO; |
16 | if (!msb) |
17 | return FP_NAN; |
18 | if (e == 0x7fff) |
19 | return u.i.m << 1 ? FP_NAN : FP_INFINITE; |
20 | return FP_NORMAL; |
21 | } |
22 | #elif LDBL_MANT_DIG == 113 && LDBL_MAX_EXP == 16384 |
23 | int __fpclassifyl(long double x) |
24 | { |
25 | union ldshape u = {x}; |
26 | int e = u.i.se & 0x7fff; |
27 | u.i.se = 0; |
28 | if (!e) |
29 | return u.i2.lo | u.i2.hi ? FP_SUBNORMAL : FP_ZERO; |
30 | if (e == 0x7fff) |
31 | return u.i2.lo | u.i2.hi ? FP_NAN : FP_INFINITE; |
32 | return FP_NORMAL; |
33 | } |
34 | #endif |
Note:
See TracBrowser
for help on using the repository browser.