NAME
scalbn, scalbnf,
scalbnl —
exponent using FLT_RADIX
LIBRARY
library “libm”
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
Thescalbn(),
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_VALLis 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
STANDARDS
The described functions conform to ISO/IEC 9899:1999 (“ISO C99”).