# logbf(3m) [sunos man page]

logb(3M) Mathematical Library Functions logb(3M)NAME

logb, logbf, logbl - radix-independent exponentSYNOPSIS

cc [ flag... ] file...[ library... ] #include <math.h> double logb(double x); float logbf(float x); long double logbl(long double x);-lmDESCRIPTION

These functions compute the exponent of x, which is the integral part of logr |x|, as a signed floating point value, for non-zero x, where r is the radix of the machine's floating-point arithmetic, which is the value of FLT_RADIX defined in the <float.h> header.RETURN VALUES

Upon successful completion, these functions return the exponent of x. If x is subnormal: o For SUSv3-conforming applications (see standards(5)), the exponent of x as if x were normalized is returned. o Otherwise,,-1022, and-126are returned for logb(), logbf(), and logbl(), respectively. If x is +-0, a pole error occurs and logb(), logbf(), and logbl() return-16382,-HUGE_VAL, and-HUGE_VALF, respectively. If x is NaN, a NaN is returned. If x is +-Inf, +Inf is returned.-HUGE_VALLERRORS

These functions will fail if: Pole Error The value of x is +-0. If the integer expression (math_errhandling & MATH_ERREXCEPT) is non-zero, the divide-by-zero floating-point exception is raised. The logb() function sets errno to EDOM if the value of x is 0.USAGE

An application wanting to check for exceptions should call feclearexcept(FE_ALL_EXCEPT) before calling these functions. On return, if fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) is non-zero, an exception has been raised. An application should either examine the return value or check the floating point exception flags to detect exceptions. An application can also set errno to 0 before calling logb(). On return, if errno is non-zero, an error has occurred. The logbf() and logbl() functions do not set errno.ATTRIBUTES

See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Standard | +-----------------------------+-----------------------------+ |MT-Level |MT-Safe | +-----------------------------+-----------------------------+SEE ALSO

feclearexcept(3M), fetestexcept(3M), ilogb(3M), math.h(3HEAD), matherr(3M), scalb(3M), attributes(5), standards(5)SunOS 5.101 Nov 2003 logb(3M)

## Check Out this Related Man Page

LOGB(3) Linux Programmer's Manual LOGB(3)NAME

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

#include <math.h> double logb(double x); float logbf(float x); long double logbl(long double x); Link withFeature Test Macro Requirements for glibc (see feature_test_macros(7)): logb(): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500 || _ISOC99_SOURCE; or cc-lm.logbf(), logbl(): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE; or cc-std=c99-std=c99DESCRIPTION

These functions extract the exponent from the internal floating-point representation of x and return it as a floating-point value. The integer constant FLT_RADIX, defined in <float.h>, indicates the radix used for the system's floating-point representation. If FLT_RADIX is 2, logb(x) is equal to floor(log2(x)), except that it is probably faster. If x is subnormal, logb() returns the exponent x would have if it were normalized.RETURN VALUE

On success, these functions return the exponent of x. If x is a NaN, a NaN is returned. If x is zero, then a pole error occurs, and the functions return,-HUGE_VAL, or-HUGE_VALF, respectively. If x is negative infinity or positive infinity, then positive infinity is returned.-HUGE_VALLERRORS

See math_error(7) for information on how to determine whether an error has occurred when calling these functions. The following errors can occur: Pole error: x is 0 A divide-by-zero floating-point exception (FE_DIVBYZERO) is raised. These functions do not set errno.CONFORMING TO

C99, POSIX.1-2001.SEE ALSO

ilogb(3), log(3)COLOPHON

This page is part of release 3.25 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/. 2008-08-05 LOGB(3)