]>
Commit | Line | Data |
---|---|---|
e42a38dd AZ |
1 | #include <math.h> |
2 | #include <math_private.h> | |
f964490f | 3 | #include <math_ldbl_opt.h> |
e42a38dd AZ |
4 | |
5 | static const long double o_thres = 709.78271289338399678773454114191496482L; | |
6 | static const long double u_thres = -744.44007192138126231410729844608163411L; | |
7 | ||
8 | long double __expl(long double x) /* wrapper exp */ | |
9 | { | |
10 | long double z; | |
11 | z = __ieee754_expl(x); | |
12 | if (_LIB_VERSION == _IEEE_) | |
13 | return z; | |
d81f90cc | 14 | if (isfinite(x)) |
e42a38dd AZ |
15 | { |
16 | if (x >= o_thres) | |
17 | return __kernel_standard_l(x,x,206); /* exp overflow */ | |
18 | else if (x <= u_thres) | |
19 | return __kernel_standard_l(x,x,207); /* exp underflow */ | |
20 | } | |
21 | return z; | |
22 | } | |
23 | hidden_def (__expl) | |
f964490f | 24 | long_double_symbol (libm, __expl, expl); |