##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# std::pow

From cppreference.com
< cpp‎ | numeric‎ | math

Defined in header `<cmath>` |  |
float pow( float base, float exp ); | (1) |
double pow( double base, double exp ); | (2) |
long double pow( long double base, long double exp ); | (3) |
float pow( float base, int iexp ); | (4) | (until C++11)
double pow( double base, int iexp ); | (5) | (until C++11)
long double pow( long double base, int iexp ); | (6) | (until C++11)
Promoted pow( Arithmetic1 base, Arithmetic2 exp ); | (7) | (since C++11)

Computes the value of `base` raised to the power `exp` or `iexp`.

7) A set of overloads or a function template for all combinations of arguments of arithmetic type not covered by 1-3). If any argument has integral type, it is cast to double. If any argument is long double, then the return type `Promoted` is also long double, otherwise the return type is always double.

### [edit] Parameters

base | - | base as a value of floating-point or integral type
exp | - | exponent as a value of floating-point or integral type
iexp | - | exponent as integer value

### [edit] Return value

`base` raised by power (`exp` or `iexp`).

Domain error occurs if `base` is 0 and `exp` is less than or equal to ​0​. NAN is returned in that case.

Domain error occurs if `base` is negative and `exp` is not an integer value. NAN is returned in that case.

Range error occurs if an overflow takes place. HUGEVAL is returned in that case.

If domain error occurs and math_errhandling & MATH_ERRNO is nonzero, errno is set to EDOM. If domain error occurs and math_errhandling & MATH_ERREXCEPT is nonzero, FE_INVALID raised. If range error occurs and math_errhandling & MATH_ERRNO is nonzero, errno is set to ERANGE. If range error occurs and math_errhandling & MATH_ERREXCEPT is nonzero, FE_OVERFLOW is raised. | (since C++11)

### [edit] Notes

`pow(float, int)` returns float until C++11 (per overload 4) but returns `double` since C++11 (per overload 7)

### [edit] See also

exp | returns e raised to the given power (ex) (function) [edit]
log | computes natural (base e) logarithm (to base e) (ln(x)) (function) [edit]
sqrt | computes square root (√x) (function) [edit]
cbrt (C++11) | computes cubic root (3√x) (function) [edit]
pow(std::complex) | complex power, one or both arguments may be a complex number (function template) [edit]
pow(std::valarray) | applies the function std::pow to two valarrays or a valarray and a value (function template) [edit]
C documentation for pow

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/numeric/math/pow&oldid=67132"