| #include <math.h> | |
| #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024 | |
| long double logbl(long double x) { | |
| return logb(x); | |
| } | |
| #else | |
| long double logbl(long double x) { | |
| if (!isfinite(x)) | |
| return x * x; | |
| if (x == 0) | |
| return -1 / (x * x); | |
| return ilogbl(x); | |
| } | |
| #endif |