logbl.c 256 B

12345678910111213141516
  1. #include "libm.h"
  2. #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
  3. long double logbl(long double x)
  4. {
  5. return logb(x);
  6. }
  7. #else
  8. long double logbl(long double x)
  9. {
  10. if (!isfinite(x))
  11. return x * x;
  12. if (x == 0)
  13. return -1/(x+0);
  14. return ilogbl(x);
  15. }
  16. #endif