SYNOPSIS

DESCRIPTION

RETURN VALUE

ERRORS

ATTRIBUTES

CONFORMING TO

SEE ALSO

COLOPHON

scalb, scalbf, scalbl - multiply floating-point number by integral power of radix (OBSOLETE)

**#include
<math.h>**

**double
scalb(double** *x***, double** *exp***);
float scalbf(float**

long double scalbl(long double

Link with
*-lm*.

Feature Test
Macro Requirements for glibc (see
**feature_test_macros**(7)):

**scalb**():

_XOPEN_SOURCE >= 500

|| /* Since glibc 2.19: */ _DEFAULT_SOURCE

|| /* Glibc versions <= 2.19: */ _BSD_SOURCE ||
_SVID_SOURCE

**scalbf**(),
**scalbl**():

_XOPEN_SOURCE >= 600

|| /* Since glibc 2.19: */ _DEFAULT_SOURCE

|| /* Glibc versions <= 2.19: */ _BSD_SOURCE ||
_SVID_SOURCE

These functions
multiply their first argument *x* by **FLT_RADIX**
(probably 2) to the power of *exp*, that is:

x * FLT_RADIX ** exp

The definition
of **FLT_RADIX** can be obtained by including
*<float.h>*.

On success,
these functions return *x* * **FLT_RADIX** **
*exp*.

If *x* or
*exp* is a NaN, a NaN is returned.

If *x* is
positive infinity (negative infinity), and *exp* is not
negative infinity, positive infinity (negative infinity) is
returned.

If *x* is
+0 (-0), and *exp* is not positive infinity, +0 (-0) is
returned.

If *x* is
zero, and *exp* is positive infinity, a domain error
occurs, and a NaN is returned.

If *x* is
an infinity, and *exp* is negative infinity, a domain
error occurs, and a NaN is returned.

If the result
overflows, a range error occurs, and the functions return
**HUGE_VAL**, **HUGE_VALF**, or **HUGE_VALL**,
respectively, with a sign the same as *x*.

If the result
underflows, a range error occurs, and the functions return
zero, with a sign the same as *x*.

See
**math_error**(7) for information on how to determine
whether an error has occurred when calling these
functions.

The following
errors can occur:

Domain error: *x* is 0, and *exp* is positive
infinity, or *x* is positive

infinity and *exp* is negative infinity and the other
argument is not a

NaN

An invalid floating-point
exception (**FE_INVALID**) is raised.

Range error, overflow

An overflow floating-point
exception (**FE_OVERFLOW**) is raised.

Range error, underflow

An underflow floating-point
exception (**FE_UNDERFLOW**) is raised.

These functions
do not set *errno*.

For an
explanation of the terms used in this section, see
**attributes**(7).

**scalb**()
is specified in POSIX.1-2001, but marked obsolescent.
POSIX.1-2008 removes the specification of **scalb**(),
recommending the use of **scalbln**(3),
**scalblnf**(3), or **scalblnl**(3) instead. The
**scalb**() function is from 4.3BSD.

**scalbf**()
and **scalbl**() are unstandardized; **scalbf**() is
nevertheless present on several other systems

**ldexp**(3),
**scalbln**(3)

This page is
part of release 4.15 of the Linux *man-pages* project.
A description of the project, information about reporting
bugs, and the latest version of this page, can be found at
https://www.kernel.org/doc/man-pages/.