NAZWA

pow, powf, powl - funkcja potęgowa

BIBLIOTEKA

Math library ( libm, -lm)

SKŁADNIA

#include <math.h>
double pow(double x, double y);
float powf(float x, float y);
long double powl(long double x, long double y);
Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)):
powf(), powl():
_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
    || /* Od glibc 2.19: */ _DEFAULT_SOURCE
    || /* glibc w wersji <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

OPIS

Funkcje te zwracają wartość x podniesioną do potęgi y.

WARTOŚĆ ZWRACANA

Funkcje te, gdy się zakończą pomyślnie, zwracają wartość x podniesioną do potęgi y.
Jeśli wartość wynikowa jest zbyt duża, to występuje błąd przekroczenia zakresu i funkcje odpowiednio zwracają HUGE_VAL, HUGE_VALF lub HUGE_VALL z poprawnie ustawionym znakiem.
If result underflows, and is not representable, a range error occurs, and 0.0 with the appropriate sign is returned.
Jeśli x jest równe +0 lub -0 oraz y jest nieparzystą liczbą całkowitą mniejszą od 0, występuje błąd bieguna i funkcje odpowiednio zwracają HUGE_VAL, HUGE_VALF lub HUGE_VALL z takim samym znakiem, jak znak x.
Jeśli x jest równe +0 lub -0 oraz y jest mniejsze od 0, ale nie jest nieparzystą liczbą całkowitą, występuje błąd bieguna i funkcje odpowiednio zwracają + HUGE_VAL, +HUGE_VALF lub +HUGE_VALL.
Jeśli x wynosi +0 (-0) i y jest nieparzystą liczbą całkowitą większą od 0, to zwracane jest +0 (-0).
Jeśli x wynosi 0 i y jest większe od zera, ale nie jest nieparzystą liczbą całkowitą, to zwracane jest +0.
Jeśli x wynosi -1 i y jest dodatnią lub ujemną nieskończonością, to wynikiem jest 1.0
Jeśli x wynosi +1, to wynikiem jest 1.0 (nawet gdy y wynosi NaN).
Jeśli y wynosi 0, to wynikiem jest 1.0 (nawet gdy x wynosi NaN).
Jeżeli x jest wartością skończoną mniejszą niż 0 i y jest wartością skończoną niebędącą liczbą całkowitą, występuje błąd dziedziny i zwracane jest NaN.
Jeśli wartość bezwzględna x jest mniejsza niż 1 i y jest ujemną nieskończonością, to wynikiem jest dodatnia nieskończoność.
Jeśli wartość bezwzględna x jest większa od 1 i y jest ujemną nieskończonością, to wynikiem jest +0.
Jeśli wartość bezwzględna x jest mniejsza niż 1 i y jest dodatnią nieskończonością, to wynikiem jest +0.
Jeśli wartość bezwzględna x jest większa od 1 i y jest dodatnią nieskończonością, to wynikiem jest dodatnia nieskończoność.
Jeśli x jest równe ujemnej nieskończoności i y jest nieparzystą liczbą całkowitą mniejszą od 0, to zwracane jest -0.
Jeśli x jest równe ujemnej nieskończoności i y jest mniejsze od 0 i nie jest nieparzystą liczbą całkowitą, to zwracane jest +0.
Jeśli x jest równe ujemnej nieskończoności i y jest nieparzystą liczbą całkowitą większą od 0, to zwracana jest ujemna nieskończoność.
Jeśli x jest równe ujemnej nieskończoności i y jest większe od 0 i nie jest nieparzystą liczbą całkowitą, to zwracana jest dodatnia nieskończoność.
Jeśli x jest równe dodatniej nieskończoności i y jest mniejsze od 0, to zwracane jest +0.
Jeśli x jest równe dodatniej nieskończoności i y jest większe od 0, to zwracana jest dodatnia nieskończoność.
Except as specified above, if x or y is a NaN, the result is a NaN.

BŁĘDY

Informacje o tym, jak określić, czy wystąpił błąd podczas wywołania tych funkcji, można znaleźć w podręczniku math_error(7).
Mogą wystąpić następujące błędy:
Błąd dziedziny: x jest ujemne, a y jest liczbą skończoną, ale niecałkowitą
errno jest ustawiane na EDOM. Rzucany jest wyjątek niepoprawnej operacji zmiennoprzecinkowej ( FE_INVALID).
Błąd bieguna: x wynosi zero, a y jest ujemne
errno jest ustawiane na ERANGE (patrz także BŁĘDY IMPLEMENTACJI). Rzucany jest wyjątek zmiennoprzecinkowego dzielenia przez zero ( FE_DIVBYZERO).
Błąd zakresu: przekroczenie w górę wartości wynikowej
errno jest ustawiane na ERANGE. Rzucany jest wyjątek przekroczenia zakresu operacji zmiennoprzecinkowej ( FE_OVERFLOW).
Błąd zakresu: przekroczenie w dół wartości wynikowej
errno jest ustawiane na ERANGE. Rzucany jest wyjątek przekroczenia w dół zakresu operacji zmiennoprzecinkowej ( FE_UNDERFLOW).

ATRYBUTY

Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).
Interfejs Atrybut Wartość
pow(), powf(), powl() Bezpieczeństwo wątkowe MT-Safe
 

STANDARDY

C99, POSIX.1-2001, POSIX.1-2008.
Wariant zwracający wartość typu double jest zgodny również z SVr4, 4.3BSD.

BŁĘDY

Historical bugs (now fixed)

Before glibc 2.28, on some architectures (e.g., x86-64) pow() may be more than 10,000 times slower for some inputs than for other nearby inputs. This affects only pow(), and not powf() nor powl(). This problem was fixed in glibc 2.28.
A number of bugs in the glibc implementation of pow() were fixed in glibc 2.16.
In glibc 2.9 and earlier, when a pole error occurs, errno is set to EDOM instead of the POSIX-mandated ERANGE. Since glibc 2.10, glibc does the right thing.
In glibc 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.

ZOBACZ TAKŻE

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

TŁUMACZENIE

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Adam Byrtek <[email protected]>, Robert Luberda <[email protected]> i Michał Kułach <[email protected]>
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej [email protected]

Recommended readings

Pages related to powf you should read also: