scalb man page on DigitalUNIX

frexp(3)							      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 stan‐
dards 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 func‐
tions 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 con‐
verted 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	excep‐
tional arguments:

──────────────────────────────────────────────────────────────────────────
Function			       Exceptional Argument	Routine Behavior
──────────────────────────────────────────────────────────────────────────
frexp(), frexpf(), frexpl()     |x| = infinity		Invalid argument
logb(), logbf(), logbl()	       |x| = infinity		Invalid argument
scalb(), scalbf(), scalbl()     x*(2**n) > max_float	Overflow
scalb(), scalbf(), scalbl()     x*(2**n) < min_float	Underflow
ldexp(), ldexpf(), ldexpl()     x*(2**n) > max_float	Overflow
ldexp(), ldexpf(), ldexpl()     x*(2**n) < min_float	Underflow
──────────────────────────────────────────────────────────────────────────

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
────────────────────────────────────────────────────────────────────

frexp(3)
[top]

List of man pages available for DigitalUNIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

Polarhome, production since 1999.
Member of Polarhome portal.