1 #include <math.h> 2 3 /* 4 special cases: 5 logb(+-0) = -inf, and raise divbyzero 6 logb(+-inf) = +inf 7 logb(nan) = nan 8 */ 9 logb(double x)10 double logb(double x) 11 { 12 if (!isfinite(x)) 13 return x * x; 14 if (x == 0) 15 return -1/(x*x); 16 return ilogb(x); 17 } 18