unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (Debian-5.0)
Page:
Section:
Apropos / Subsearch:
optional field

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



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

SYNOPSIS
       #include <&lt;math.h>&gt;

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

       Link with -lm.

   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

       logb(), logbf(), logbl(): _BSD_SOURCE || _SVID_SOURCE ||
       _XOPEN_SOURCE >= 500 || _ISOC99_SOURCE; or cc -std=c99

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 that it is 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 feclearex-
       cept(FE_ALL_EXCEPT) before calling  these  functions.   On  return,  if
       errno  is non-zero or fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVER-
       FLOW | FE_UNDERFLOW) is non-zero, an error has occurred.

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

       A pole error occurs when x is zero.

CONFORMING TO
       C99.

SEE ALSO
       ilogb(3), log(3)

COLOPHON
       This  page  is  part of release 3.05 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/.



                                  2007-07-26                           LOGB(3)