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