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 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:
Domain Error
If x is 0 and n is +Inf, or x is Inf and n is -Inf.
If the integer expression (math_errhandling & MATH_ERREXCEPT)
is non-zero, then the invalid floating-point exception is
raised.
Range Error
The result would overflow.
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.
MT-LEVEL
MT-Safe.
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)
illumos July 5, 2019 illumos
NAME
scalb, scalbf, scalbl - load exponent of a radix-independent floating-
point number
SYNOPSIS
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);
DESCRIPTION
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>.
RETURN VALUES
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 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).
ERRORS
These functions will fail if:
Domain Error
If x is 0 and n is +Inf, or x is Inf and n is -Inf.
If the integer expression (math_errhandling & MATH_ERREXCEPT)
is non-zero, then the invalid floating-point exception is
raised.
Range Error
The result would overflow.
If the integer expression (math_errhandling & MATH_ERREXCEPT)
is non-zero, then the overflow floating-point exception is
raised.
USAGE
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.
MT-LEVEL
MT-Safe.
INTERFACE STABILITY
The scalb() function is Obsolete Standard. The scalbf() and scalbl()
functions are Obsolete Committed.
SEE ALSO
math.h(3HEAD), feclearexcept(3M), fetestexcept(3M), ilogb(3M),
ldexp(3M), logb(3M), matherr(3M), scalbln(3M), attributes(7),
standards(7)
illumos July 5, 2019 illumos