#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 |