## table of contents

- stretch 4.10-2
- testing 4.16-2
- stretch-backports 4.16-1~bpo9+1
- unstable 4.16-2

SCALB(3) | Linux Programmer's Manual | SCALB(3) |

# NAME¶

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

**#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)):

**scalb**():

**scalbf**(),

**scalbl**():

# DESCRIPTION¶

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>*.

# RETURN VALUE¶

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*.

# ERRORS¶

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*.

# ATTRIBUTES¶

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

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

# CONFORMING TO¶

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

# SEE ALSO¶

ldexp(3), scalbln(3)# COLOPHON¶

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

2016-03-15 |