Index Index for
Section 3
Index Alphabetical
listing for F
Bottom of page Bottom of
page

frexp(3)

NAME

frexp, ldexp, logb, scalb - Manipulate floating-point numbers

SYNOPSIS

#include <math.h> double frexp( double x, int *n ); float frexpf( float x, int *n ); long double frexpl( long double x, int *n ); double ldexp( double y, int n ); float ldexpf( float y, int n ); long double ldexpl( long double y, int n ); double logb( double x ); float logbf( float x ); long double logbl( long double x ); double scalb( double x, double n ); float scalbf( float x, float n ); long double scalbl( long double x, long double n );

LIBRARY

Math Library (libm)

STANDARDS

Interfaces documented on this reference page conform to industry standards as follows: frexp(): XPG4 ldexp(): XPG4 logb(): XPG4-UNIX scalb(): XPG4-UNIX Refer to the standards(5) reference page for more information about industry standards and associated tags.

DESCRIPTION

Every nonzero number can be written uniquely as the normalized mantissa (fraction) z times 2 raised to the power p, where the absolute value of z is in the range [0.5, 1.0), and the exponent p, is an integer. The frexp(), frexpf(), and frexpl() functions break a floating-point number into a normalized fraction and an integral power of 2. The functions store the integer in the int object pointed to by the n parameter and return the fraction part. The ldexp(), ldexpf(), and ldexpl() functions multiply a floating-point number, y, by an integral power of 2. The logb(), logbf(), and logbl() functions return a signed integer converted to double-precision floating-point and so chosen that 1 <= |x|/2**n < 2 unless x = 0 or |x| = infinity or x lies between 0 and the Underflow Threshold. IEEE 754 defines logb(+infinity) = +infinity and logb(0) = -infinity. The latter is required to signal Division-by-Zero. The scalb(), scalbf(), and scalbl() functions are defined as x*(2**n) for integer n. The following table describes function behavior in response to exceptional arguments: _________________________________________________________________________ Function Exceptional Argument Routine Behavior _________________________________________________________________________ |x| = infinity Invalid argument frexp(), frexpf(), frexpl() |x| = infinity Invalid argument logb(), logbf(), logbl() Overflow scalb(), scalbf(), scalbl() x*(2**n) > max_float Underflow scalb(), scalbf(), scalbl() x*(2**n) < min_float Overflow ldexp(), ldexpf(), ldexpl() x*(2**n) > max_float Underflow ldexp(), ldexpf(), ldexpl() x*(2**n) < min_float _________________________________________________________________________ The following table lists boundary values used by these functions: ___________________________________________________________________ Value Name Data Type Hexadecimal Value Decimal Value ___________________________________________________________________ max_float S_FLOAT 7F7FFFFF 3.402823e38 T_FLOAT 7FEFFFFFFFFFFFFF 1.797693134862316e308 min_float S_FLOAT 00000001 1.4012985e-45 T_FLOAT 0000000000000001 4.940656458412465e-324 ___________________________________________________________________

Index Index for
Section 3
Index Alphabetical
listing for F
Top of page Top of
page