summaryrefslogtreecommitdiff
path: root/lib/libm/logbl.c
blob: 40ea514d0baf350cf425e84a9eed3fa10370f87c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <math.h> // for ilogbl, logbl, isfinite
#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
long double logbl(long double x)
{
	return logb(x);
}
#else
long double logbl(long double x)
{
	if (!isfinite(x))
		return x * x;
	if (x == 0)
		return -1 / (x * x);
	return ilogbl(x);
}
#endif