logb.c raw

   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  
  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