math: raise invalid flag in ilogb*.c on +-0, +-inf and nan
[musl] / src / math / logbf.c
1 #include <limits.h>
2 #include "libm.h"
3
4 float logbf(float x) {
5         int i = ilogbf(x);
6
7         if (i == FP_ILOGB0)
8                 return -1.0f/fabsf(x);
9         if (i == FP_ILOGBNAN || i == INT_MAX)
10                 return x * x;
11         return i;
12 }