## table of contents

other versions

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

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

_BSD_SOURCE || _SVID_SOURCE ||
_XOPEN_SOURCE >= 500 ||
_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED

**scalbf**(),

**scalbl**():

_BSD_SOURCE || _SVID_SOURCE ||
_XOPEN_SOURCE >= 600

# DESCRIPTION¶

These functions multiply their first argument*x*by

**FLT_RADIX**(probably 2) to the power of

*exp*, that is:

x * FLT_RADIX ** expThe 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.

*errno*.

# 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 3.74 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 http://www.kernel.org/doc/man-pages/.

2013-03-23 |