POW(3) Library Functions Manual POW(3)

powpower function

#include <math.h>

double
pow(double x, double y);

long double
powl(long double x, long double y);

float
powf(float x, float y);

The () functions compute x raised to the power y.

pow(±0, y) returns ±infinity and raises the "divide-by-zero" floating-point exception for y an odd integer < 0.

(±0, y) returns +infinity and raises the "divide-by-zero" floating-point exception for y < 0 and not an odd integer.

(±0, y) returns ±0 for y an odd integer > 0.

(±0, y) returns +0 for y > 0 and not an odd integer.

(-1, ±infinity) returns 1.

(1, y) returns 1 for any y, even a NaN.

(x, ±0) returns 1 for any x, even a NaN.

(x, y) returns a NaN and raises the "invalid" floating-point exception for finite x < 0 and finite non-integer y.

(x, -infinity) returns +infinity for |x| < 1.

(x, -infinity) returns +0 for |x| > 1.

(x, +infinity) returns +0 for |x| < 1.

(x, +infinity) returns +infinity for |x| > 1.

(-infinity, y) returns -0 for y an odd integer < 0.

(-infinity, y) returns +0 for y < 0 and not an odd integer.

(-infinity, y) returns -infinity for y an odd integer > 0.

(-infinity, y) returns +infinity for y > 0 and not an odd integer.

(+infinity, y) returns +0 for y < 0.

(+infinity, y) returns +infinity for y > 0.

A domain error occurs if x is finite and negative and y is finite and not an integer.

A domain error can occur if x is 0 and y less than or equal to 0.

Range errors may occur.

If you need to apply the () functions to SIMD vectors or arrays, using the following functions provided by the Accelerate.framework may give significantly better performance:

#include <Accelerate/Accelerate.h>

vFloat (vFloat x, vFloat y);
vFloat vpowf(vFloat x, vSInt32 y);
void (float *z, const float *y, const float *x, const int *n);
void (double *z, const double *y, const double *x, const int *n);
void (float *z, const float *y, const float *x, const int *n);
void (double *z, const double *y, const double *x, const int *n);

exp(3) math(3)

The pow() function conforms to ISO/IEC 9899:2011.

December 11, 2006 BSD 4