SCALB(3M) | Mathematical Library Functions | SCALB(3M) |
scalb
, scalbf
,
scalbl
— load exponent of a
radix-independent floating-point number
c99
[flag...]
file... -lm
[library...]
#include <math.h>
double
scalb
(double x,
double n);
float
scalbf
(float x,
float n);
long double
scalbl
(long double x,
long double n);
These functions compute x
*
r^n,
where r is the radix of the machine's floating point
arithmetic. When r is 2,
scalb
()
is equivalent to ldexp(3M). The value
of r is FLT_RADIX
which is
defined in <float.h>
.
Upon successful completion, the scalb
()
function returns x *
r^n.
If x or n is NaN, a NaN is returned.
If n is 0, x is returned.
If x is ±Inf and n is not −Inf, x is returned.
If x is ±0 and n is not +Inf, x is returned.
If x is ±0 and n is +Inf, a domain error occurs and a NaN is returned.
If x is ±Inf and Fa n is −Inf, a domain error occurs and a NaN is returned.
If the result would cause an overflow, a range error occurs and
±HUGE_VAL
(according to the sign of
x) is returned.
For exceptional cases,
matherr(3M) tabulates the values to
be returned by scalb
() as specified by SVID3 and
XPG3. See standards(7).
These functions will fail if:
If the integer expression
(math_errhandling &
MATH_ERREXCEPT
) is non-zero, then the invalid
floating-point exception is raised.
If the integer expression
(math_errhandling &
MATH_ERREXCEPT
) is non-zero, then the overflow
floating-point exception is raised.
An application wanting to check for exceptions should call
feclearexcept
(FE_ALL_EXCEPT)
before calling these functions. On return, if
fetestexcept
(FE_INVALID
| FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) is non-zero, an exception
has been raised. An application should either examine the return value or
check the floating point exception flags to detect exceptions.
These functions are Obsolete. The scalbln(3M), scalblnf(3M), or scalblnl(3M) functions should be used instead.
The
scalb
()
function is Obsolete Standard. The
scalbf
()
and
scalbl
()
functions are Obsolete Committed.
math.h(3HEAD), feclearexcept(3M), fetestexcept(3M), ilogb(3M), ldexp(3M), logb(3M), matherr(3M), scalbln(3M), attributes(7), standards(7)
July 5, 2019 | OmniOS |