pow, powf, powl - funkcja potęgowa
Math library (
libm,
-lm)
#include <math.h>
double pow(double x, double y);
float powf(float x, float y);
long double powl(long double x, long double y);
powf(),
powl():
_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
|| /* Od glibc 2.19: */ _DEFAULT_SOURCE
|| /* glibc w wersji <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
Funkcje te zwracają wartość
x podniesioną do
potęgi
y.
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.
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).
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 |
C99, POSIX.1-2001, POSIX.1-2008.
Wariant zwracający wartość typu
double jest zgodny
również z SVr4, 4.3BSD.
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.
cbrt(3),
cpow(3),
sqrt(3)
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]