diff options
Diffstat (limited to 'math/w_log2f.c')
-rw-r--r-- | math/w_log2f.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/math/w_log2f.c b/math/w_log2f.c new file mode 100644 index 0000000..ec8d297 --- /dev/null +++ b/math/w_log2f.c @@ -0,0 +1,30 @@ +/* + * wrapper log2(X) + */ + +#include <math.h> +#include "math_private.h" + +float +__log2f (float x) /* wrapper log2f */ +{ +#ifdef _IEEE_LIBM + return __ieee754_log2f (x); +#else + float z; + z = __ieee754_log2f (x); + if (_LIB_VERSION == _IEEE_ || __isnanf (x)) return z; + if (x <= 0.0f) + { + if (x == 0.0f) + /* log2f (0) */ + return __kernel_standard ((double) x, (double) x, 148); + else + /* log2f (x < 0) */ + return __kernel_standard ((double) x, (double) x, 149); + } + else + return z; +#endif +} +weak_alias (__log2f, log2f) |