blob: 962973a7b99bfffdcb2c1677a3c0b2ba5f87d357 [file] [log] [blame]
Szabolcs Nagy98be4422013-09-02 23:35:46 +00001#include <math.h>
Rich Felkerb69f6952012-03-13 01:17:53 -04002#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
3long double logbl(long double x)
4{
5 return logb(x);
6}
7#else
8long double logbl(long double x)
9{
Szabolcs Nagy52bcf3f2012-11-13 00:45:51 +010010 if (!isfinite(x))
Rich Felkerb69f6952012-03-13 01:17:53 -040011 return x * x;
Szabolcs Nagy52bcf3f2012-11-13 00:45:51 +010012 if (x == 0)
Szabolcs Nagy98be4422013-09-02 23:35:46 +000013 return -1/(x*x);
Szabolcs Nagy52bcf3f2012-11-13 00:45:51 +010014 return ilogbl(x);
Rich Felkerb69f6952012-03-13 01:17:53 -040015}
16#endif