LOGB

Section: Linux Programmer's Manual (3)
Updated: 2004-10-31
Index Return to Main Contents
 

NAME

logb, logbf, logbl - get exponent of a floating point value  

SYNOPSIS

#include <math.h>

double logb(double x);
float logbf(float x);
long double logbl(long double x);

Link with -lm.  

DESCRIPTION

These functions extract the exponent of x and return it as a floating-point value. If FLT_RADIX is two, logb(x) is equal to floor(log2(x)), except it's probably faster.

If x is de-normalized, logb() returns the exponent x would have if it were normalized.

If x is zero, -HUGE_VAL (resp. -HUGE_VALF, -HUGE_VALL) is returned, and a pole error occurs. If x is infinite, plus infinity is returned. If x is NaN, NaN is returned.  

ERRORS

In order to check for errors, set errno to zero and call feclearexcept(FE_ALL_EXCEPT) before calling these functions. On return, if errno is non-zero or fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) is non-zero, an error has occurred.

If an error occurs and (math_errhandling & MATH_ERRNO) is non-zero, then errno is set to ERANGE. If an error occurs and (math_errhandling & MATH_ERREXCEPT) is non-zero, then the divide-by-zero floating-point exception is raised.

A pole error occurs when x is zero.  

HISTORY

The logb() function occurs in 4.3BSD.  

CONFORMING TO

C99  

SEE ALSO

log(3), ilogb(3)


 

Index

NAME
SYNOPSIS
DESCRIPTION
ERRORS
HISTORY
CONFORMING TO
SEE ALSO

linux.jgfs.net manual pages