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 **`x`

**, float **`exp`

**);**

**long double scalbl(long double **`x`

**, long double **`exp`

**);**

Link with `-lm`

.

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

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 `errno`

is set to**EDOM**. An invalid floating-point exception (**FE_INVALID**) is raised.- Range error, overflow
`errno`

is set to**ERANGE**. An overflow floating-point exception (**FE_OVERFLOW**) is raised.- Range error, underflow
`errno`

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

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

Interface | Attribute | Value |

scalb(), scalbf(), scalbl() | Thread safety | MT-Safe |

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

Before glibc 2.20, these functions did not set `errno`

for domain and range errors.

This page is part of release 5.10 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/.