Provided by: manpages-dev_5.02-1_all

**NAME**

pow, powf, powl - power functions

**SYNOPSIS**

#include<math.h>doublepow(doublex,doubley);floatpowf(floatx,floaty);longdoublepowl(longdoublex,longdoubley);Link with-lm. Feature Test Macro Requirements for glibc (seefeature_test_macros(7)):powf(),powl(): _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L || /* Since glibc 2.19: */ _DEFAULT_SOURCE || /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

**DESCRIPTION**

These functions return the value ofxraised to the power ofy.

**RETURN** **VALUE**

On success, these functions return the value ofxto the power ofy. Ifxis 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 returnHUGE_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, ifxoryis a NaN, the result is a NaN. Ifxis +1, the result is 1.0 (even ifyis a NaN). Ifyis 0, the result is 1.0 (even ifxis a NaN). Ifxis +0 (-0), andyis an odd integer greater than 0, the result is +0 (-0). Ifxis 0, andygreater than 0 and not an odd integer, the result is +0. Ifxis -1, andyis positive infinity or negative infinity, the result is 1.0. If the absolute value ofxis less than 1, andyis negative infinity, the result is positive infinity. If the absolute value ofxis greater than 1, andyis negative infinity, the result is +0. If the absolute value ofxis less than 1, andyis positive infinity, the result is +0. If the absolute value ofxis greater than 1, andyis positive infinity, the result is positive infinity. Ifxis negative infinity, andyis an odd integer less than 0, the result is -0. Ifxis negative infinity, andyless than 0 and not an odd integer, the result is +0. Ifxis negative infinity, andyis an odd integer greater than 0, the result is negative infinity. Ifxis negative infinity, andygreater than 0 and not an odd integer, the result is positive infinity. Ifxis positive infinity, andyless than 0, the result is +0. Ifxis positive infinity, andygreater than 0, the result is positive infinity. Ifxis +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. Ifxis +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.

**ERRORS**

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 overflowserrnois set toERANGE. An overflow floating-point exception (FE_OVERFLOW) is raised. Range error: the result underflowserrnois set toERANGE. An underflow floating-point exception (FE_UNDERFLOW) is raised.

**ATTRIBUTES**

For an explanation of the terms used in this section, seeattributes(7). ┌──────────────────────┬───────────────┬─────────┐ │Interface│Attribute│Value│ ├──────────────────────┼───────────────┼─────────┤ │pow(),powf(),powl() │ Thread safety │ MT-Safe │ └──────────────────────┴───────────────┴─────────┘

**CONFORMING** **TO**

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

**BUGS**

On 64-bits,pow() may be more than 10,000 times slower for some (rare) inputs than for other nearby inputs. This affects onlypow(), and notpowf() norpowl(). 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. Ifxis 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'spow() generates a bogus invalid floating-point exception (FE_INVALID) in addition to the overflow or underflow exception.

**SEE** **ALSO**

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

**COLOPHON**

This page is part of release 5.02 of the Linuxman-pagesproject. 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/. 2017-09-15 POW(3)