6 #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
7 long double exp10l(long double x
)
11 #elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
12 long double exp10l(long double x
)
14 static const long double p10
[] = {
15 1e-15L, 1e-14L, 1e-13L, 1e-12L, 1e-11L, 1e-10L,
16 1e-9L, 1e-8L, 1e-7L, 1e-6L, 1e-5L, 1e-4L, 1e-3L, 1e-2L, 1e-1L,
17 1, 1e1
, 1e2
, 1e3
, 1e4
, 1e5
, 1e6
, 1e7
, 1e8
, 1e9
,
18 1e10
, 1e11
, 1e12
, 1e13
, 1e14
, 1e15
20 long double n
, y
= modfl(x
, &n
);
21 union ldshape u
= {n
};
22 /* fabsl(n) < 16 without raising invalid on nan */
23 if ((u
.i
.se
& 0x7fff) < 0x3fff+4) {
24 if (!y
) return p10
[(int)n
+15];
25 y
= exp2l(3.32192809488736234787031942948939L * y
);
26 return y
* p10
[(int)n
+15];
32 weak_alias(exp10l
, pow10l
);