pow(3)

NAZWA
pow, powf, powl - funkcja potęgowa

BIBLIOTEKA
Biblioteka matematyczna (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
C11, POSIX.1-2008.

HISTORIA
C99, POSIX.1-2001.

Wariant zwracający wartość typu double jest zgodny również z SVr4, 4.3BSD, C89.

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 <alpha@irc.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>

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 (https://www.gnu.org/licenses/gpl-3.0.html) lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.