| /* |
| * wrapper exp2f(x) |
| */ |
| |
| #include <float.h> |
| #include <math.h> |
| #include "math_private.h" |
| |
| static const float o_threshold= (float) FLT_MAX_EXP; |
| static const float u_threshold= (float) (FLT_MIN_EXP - FLT_MANT_DIG - 1); |
| |
| float |
| __exp2f (float x) /* wrapper exp2f */ |
| { |
| #ifdef _IEEE_LIBM |
| return __ieee754_exp2f (x); |
| #else |
| float z; |
| z = __ieee754_exp2f (x); |
| if (_LIB_VERSION != _IEEE_ && __finitef (x)) |
| { |
| if (x > o_threshold) |
| /* exp2 overflow */ |
| return (float) __kernel_standard ((double) x, (double) x, 144); |
| else if (x <= u_threshold) |
| /* exp2 underflow */ |
| return (float) __kernel_standard ((double) x, (double) x, 145); |
| } |
| return z; |
| #endif |
| } |
| weak_alias (__exp2f, exp2f) |