source:
asp3_tinet_ecnl_rx/trunk/musl-1.1.18/src/math/frexpf.c
Last change on this file was 337, checked in by , 6 years ago | |
---|---|
|
|
File size: 352 bytes |
Line | |
---|---|
1 | #include <math.h> |
2 | #include <stdint.h> |
3 | |
4 | float frexpf(float x, int *e) |
5 | { |
6 | union { float f; uint32_t i; } y = { x }; |
7 | int ee = y.i>>23 & 0xff; |
8 | |
9 | if (!ee) { |
10 | if (x) { |
11 | x = frexpf(x*0x1p64, e); |
12 | *e -= 64; |
13 | } else *e = 0; |
14 | return x; |
15 | } else if (ee == 0xff) { |
16 | return x; |
17 | } |
18 | |
19 | *e = ee - 0x7e; |
20 | y.i &= 0x807ffffful; |
21 | y.i |= 0x3f000000ul; |
22 | return y.f; |
23 | } |
Note:
See TracBrowser
for help on using the repository browser.