## table of contents

other versions

- jessie 3.74-1
- jessie-backports 4.10-2~bpo8+1
- stretch 4.10-2
- testing 4.16-1
- stretch-backports 4.16-1~bpo9+1
- unstable 4.16-1

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

# 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*.

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

**logb**():

_BSD_SOURCE || _SVID_SOURCE ||
_XOPEN_SOURCE >= 500 ||
_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED ||
_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L;
or

*cc -std=c99***logbf**(),

**logbl**():

_BSD_SOURCE || _SVID_SOURCE ||
_XOPEN_SOURCE >= 600 || _ISOC99_SOURCE ||
_POSIX_C_SOURCE >= 200112L;
or

*cc -std=c99*# DESCRIPTION¶

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

**HUGE_VALF**, or -

**HUGE_VALL**, respectively. If

*x*is negative infinity or positive infinity, then positive infinity is returned.

# ERRORS¶

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.

*errno*.

# ATTRIBUTES¶

## Multithreading (see pthreads(7))¶

The**logb**(),

**logbf**(), and

**logbl**() functions are thread-safe.

# CONFORMING TO¶

C99, POSIX.1-2001.# SEE ALSO¶

ilogb(3), log(3)# COLOPHON¶

This page is part of release 3.74 of the Linux*man-pages*project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at http://www.kernel.org/doc/man-pages/.

2014-02-28 |