logbf.c 197 B

123456789101112
  1. #include <limits.h>
  2. #include "libm.h"
  3. float logbf(float x) {
  4. int i = ilogbf(x);
  5. if (i == FP_ILOGB0)
  6. return -1.0f/fabsf(x);
  7. if (i == FP_ILOGBNAN || i == INT_MAX)
  8. return x * x;
  9. return i;
  10. }