1#include <math.h>
2
3/*
4special cases:
5 logb(+-0) = -inf, and raise divbyzero
6 logb(+-inf) = +inf
7 logb(nan) = nan
8*/
9
10double 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