pow, powf, powl - power functions

Synopsis

Description

Return Value

Errors

Bugs

Colophon

#include <math.h>

double pow(doublex, doubley);

float powf(floatx, floaty);

long double powl(long doublex, long doubley);Link with

-lm.Feature Test Macro Requirements for glibc (see

feature_test_macros(7)):

powf(),powl():_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L;

orcc -std=c99

Thepow() function returns the value ofxraised to the power ofy.

On success, these functions return the value ofxto the power ofy.If

xis a finite value less than 0, andyis a finite noninteger, 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, orHUGE_VALL, respectively, with the mathematically correct sign.If result underflows, and is not representable, a range error occurs, and 0.0 is returned.

Except as specified below, if

xoryis a NaN, the result is a NaN.If

xis +1, the result is 1.0 (even ifyis a NaN).If

yis 0, the result is 1.0 (even ifxis a NaN).If

xis +0 (-0), andyis an odd integer greater than 0, the result is +0 (-0).If

xis 0, andygreater than 0 and not an odd integer, the result is +0.If

xis -1, andyis positive infinity or negative infinity, the result is 1.0.If the absolute value of

xis less than 1, andyis negative infinity, the result is positive infinity.If the absolute value of

xis greater than 1, andyis negative infinity, the result is +0.If the absolute value of

xis less than 1, andyis positive infinity, the result is +0.If the absolute value of

xis greater than 1, andyis positive infinity, the result is positive infinity.If

xis negative infinity, andyis an odd integer less than 0, the result is -0.If

xis negative infinity, andyless than 0 and not an odd integer, the result is +0.If

xis negative infinity, andyis an odd integer greater than 0, the result is negative infinity.If

xis negative infinity, andygreater than 0 and not an odd integer, the result is positive infinity.If

xis positive infinity, andyless than 0, the result is +0.If

xis positive infinity, andygreater than 0, the result is positive infinity.If

xis +0 or -0, andyis an odd integer less than 0, a pole error occurs andHUGE_VAL,HUGE_VALF, orHUGE_VALL, is returned, with the same sign asx.If

xis +0 or -0, andyis less than 0 and not an odd integer, a pole error occurs and +HUGE_VAL, +HUGE_VALF, or +HUGE_VALL, is returned.

Seemath_error(7) for information on how to determine whether an error has occurred when calling these functions.The following errors can occur:

Domain error: xis negative, andyis a finite nonintegererrnois set toEDOM. An invalid floating-point exception (FE_INVALID) is raised.Pole error: xis zero, andyis negativeerrnois set toERANGE(but see BUGS). A divide-by-zero floating-point exception (FE_DIVBYZERO) is raised.Range error: the result overflows errnois set toERANGE. An overflow floating-point exception (FE_OVERFLOW) is raised.Range error: the result underflows errnois set toERANGE. An underflow floating-point exception (FE_UNDERFLOW) is raised.

C99, POSIX.1-2001. The variant returningdoublealso conforms to SVr4, 4.3BSD, C89.

In glibc 2.9 and earlier, when a pole error occurs,errnois set toEDOMinstead of the POSIX-mandatedERANGE. Since version 2.10, glibc does the right thing.If

xis negative, then large negative or positiveyvalues yield a NaN as the function result, witherrnoset toEDOM, and an invalid (FE_INVALID) floating-point exception. For example, withpow(), one sees this behavior when the absolute value ofyis greater than about 9.223373e18.In version 2.3.2 and earlier, when an overflow or underflow error occurs, glibc’s

pow() generates a bogus invalid floating-point exception (FE_INVALID) in addition to the overflow or underflow exception.

cbrt(3),cpow(3),sqrt(3)

This page is part of release 3.44 of the Linuxman-pagesproject. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/.

POW (3) | 2010-09-12 |