Szabolcs Nagy | 98be442 | 2013-09-02 23:35:46 +0000 | [diff] [blame] | 1 | #include <math.h> |
Rich Felker | b69f695 | 2012-03-13 01:17:53 -0400 | [diff] [blame] | 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 | { | ||||
Szabolcs Nagy | 52bcf3f | 2012-11-13 00:45:51 +0100 | [diff] [blame] | 10 | if (!isfinite(x)) |
Rich Felker | b69f695 | 2012-03-13 01:17:53 -0400 | [diff] [blame] | 11 | return x * x; |
Szabolcs Nagy | 52bcf3f | 2012-11-13 00:45:51 +0100 | [diff] [blame] | 12 | if (x == 0) |
Szabolcs Nagy | 98be442 | 2013-09-02 23:35:46 +0000 | [diff] [blame] | 13 | return -1/(x*x); |
Szabolcs Nagy | 52bcf3f | 2012-11-13 00:45:51 +0100 | [diff] [blame] | 14 | return ilogbl(x); |
Rich Felker | b69f695 | 2012-03-13 01:17:53 -0400 | [diff] [blame] | 15 | } |
16 | #endif |