NAME
scalbn,
scalbnf,
scalbnl
—
exponent using FLT_RADIX
LIBRARY
Math Library (libm, -lm)
SYNOPSIS
#include <math.h>
double
scalbn(
double
x,
int n);
float
scalbnf(
float
x,
int n);
long double
scalbnl(
long
double x,
int n);
DESCRIPTION
The
scalbn(),
scalbnf(), and
scalbnl() functions compute
x *
r^n, where
r is the radix of the
machine's floating point arithmetic, defined by the
FLT_RADIX
constant in
<float.h>. The rationale is
efficiency;
r^n is not computed explicitly.
RETURN VALUES
As described above, upon successful completion, the described functions return
the exponent computed using
FLT_RADIX
. Otherwise the
following may occur:
- When the result would cause an overflow, a range error
occurs and
±HUGE_VAL
,
±HUGE_VALF
, or
±HUGE_VALL
is returned according to the sign
of x and the return type of the corresponding
function.
- When the correct value would cause an underflow and it is
not representable, a range error occurs and either 0.0 or an
implementation-defined value is returned. When an underflow occurs but the
correct value is representable, a range error occurs but the correct value
is returned.
- If x is ±0 or ±Inf,
x is returned. Likewise, if n
is zero, x is returned. If x
is NaN, NaN is returned.
SEE ALSO
exp(3),
frexp(3),
ldexp(3),
math(3)
STANDARDS
The described functions conform to
ISO/IEC 9899:1999
(“ISO C99”).