## Linux and UNIX Man Pages

Test Your Knowledge in Computers #484
Difficulty: Medium
A compiler transforms source code into object code, a floating point number format that machines understand.
True or False?

# scalb(3m) [opensolaris man page]

```scalb(3M)						  Mathematical Library Functions						 scalb(3M)

NAME

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(5).

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.

ATTRIBUTES
See attributes(5) for descriptions of the following attributes:

+-----------------------------+-----------------------------+
|      ATTRIBUTE TYPE	     |	    ATTRIBUTE VALUE	   |
+-----------------------------+-----------------------------+
|Interface Stability	     |See below.		   |
+-----------------------------+-----------------------------+
|MT-Level		     |MT-Safe			   |
+-----------------------------+-----------------------------+

The scalb() function is Standard. The scalbf() and scalbl() functions are Stable.

feclearexcept(3M), fetestexcept(3M), ilogb(3M), ldexp(3M), logb(3M), math.h(3HEAD), matherr(3M), scalbln(3M), attributes(5), standards(5)

SunOS 5.11							    12 Jul 2006 							 scalb(3M)```

## Check Out this Related Man Page

```scalb(3M)						  Mathematical Library Functions						 scalb(3M)

NAME

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(5).

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.

ATTRIBUTES
See attributes(5) for descriptions of the following attributes:

+-----------------------------+-----------------------------+
|      ATTRIBUTE TYPE	     |	    ATTRIBUTE VALUE	   |
+-----------------------------+-----------------------------+
|Interface Stability	     |See below.		   |
+-----------------------------+-----------------------------+
|MT-Level		     |MT-Safe			   |
+-----------------------------+-----------------------------+

The scalb() function is Standard. The scalbf() and scalbl() functions are Stable.