| /* |
| * wrapper exp2l(x) |
| */ |
| |
| #include <float.h> |
| #include <math.h> |
| #include "math_private.h" |
| |
| static const long double o_threshold = (long double) LDBL_MAX_EXP; |
| static const long double u_threshold |
| = (long double) (LDBL_MIN_EXP - LDBL_MANT_DIG - 1); |
| |
| long double |
| __exp2l (long double x) /* wrapper exp2l */ |
| { |
| #ifdef _IEEE_LIBM |
| return __ieee754_exp2l (x); |
| #else |
| long double z; |
| z = __ieee754_exp2l (x); |
| if (_LIB_VERSION != _IEEE_ && __finitel (x)) |
| { |
| if (x > o_threshold) |
| return __kernel_standard (x, x, 244); /* exp2l overflow */ |
| else if (x <= u_threshold) |
| return __kernel_standard (x, x, 245); /* exp2l underflow */ |
| } |
| return z; |
| #endif |
| } |
| weak_alias (__exp2l, exp2l) |