loongarch64: add new syscall numbers
[musl.git] / src / math / frexpf.c
blob0787097527c22a4be256abb600b9a05061a2ec87
1 #include <math.h>
2 #include <stdint.h>
4 float frexpf(float x, int *e)
6 union { float f; uint32_t i; } y = { x };
7 int ee = y.i>>23 & 0xff;
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;
19 *e = ee - 0x7e;
20 y.i &= 0x807ffffful;
21 y.i |= 0x3f000000ul;
22 return y.f;