pow(3) Library Functions Manual pow(3) NAZWA pow, powf, powl - funkcja potegowa BIBLIOTEKA Biblioteka matematyczna (libm, -lm) SKLADNIA #include 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 zwracaja wartosc x podniesiona do potegi y. WARTOSC ZWRACANA Funkcje te, gdy sie zakoncza pomyslnie, zwracaja wartosc x podniesiona do potegi y. Jesli wartosc wynikowa jest zbyt duza, to wystepuje blad przekroczenia zakresu i funkcje odpowiednio zwracaja HUGE_VAL, HUGE_VALF lub HUGE_VALL z poprawnie ustawionym znakiem. Jesli wartosc wynikowa jest zbyt mala, to wystepuje blad przekroczenia zakresu i zwracane jest 0.0 z odpowiednim znakiem. Jesli x jest rowne +0 lub -0 oraz y jest nieparzysta liczba calkowita mniejsza od 0, wystepuje blad bieguna i funkcje odpowiednio zwracaja HUGE_VAL, HUGE_VALF lub HUGE_VALL z takim samym znakiem, jak znak x. Jesli x jest rowne +0 lub -0 oraz y jest mniejsze od 0, ale nie jest nieparzysta liczba calkowita, wystepuje blad bieguna i funkcje odpowiednio zwracaja +HUGE_VAL, +HUGE_VALF lub +HUGE_VALL. Jesli x wynosi +0 (-0) i y jest nieparzysta liczba calkowita wieksza od 0, to zwracane jest +0 (-0). Jesli x wynosi 0 i y jest wieksze od zera, ale nie jest nieparzysta liczba calkowita, to zwracane jest +0. Jesli x wynosi -1 i y jest dodatnia lub ujemna nieskonczonoscia, to wynikiem jest 1.0 Jesli x wynosi +1, to wynikiem jest 1.0 (nawet gdy y wynosi NaN). Jesli y wynosi 0, to wynikiem jest 1.0 (nawet gdy x wynosi NaN). Jezeli x jest wartoscia skonczona mniejsza niz 0 i y jest wartoscia skonczona niebedaca liczba calkowita, wystepuje blad dziedziny i zwracane jest NaN. Jesli wartosc bezwzgledna x jest mniejsza niz 1 i y jest ujemna nieskonczonoscia, to wynikiem jest dodatnia nieskonczonosc. Jesli wartosc bezwzgledna x jest wieksza od 1 i y jest ujemna nieskonczonoscia, to wynikiem jest +0. Jesli wartosc bezwzgledna x jest mniejsza niz 1 i y jest dodatnia nieskonczonoscia, to wynikiem jest +0. Jesli wartosc bezwzgledna x jest wieksza od 1 i y jest dodatnia nieskonczonoscia, to wynikiem jest dodatnia nieskonczonosc. Jesli x jest rowne ujemnej nieskonczonosci i y jest nieparzysta liczba calkowita mniejsza od 0, to zwracane jest -0. Jesli x jest rowne ujemnej nieskonczonosci i y jest mniejsze od 0 i nie jest nieparzysta liczba calkowita, to zwracane jest +0. Jesli x jest rowne ujemnej nieskonczonosci i y jest nieparzysta liczba calkowita wieksza od 0, to zwracana jest ujemna nieskonczonosc. Jesli x jest rowne ujemnej nieskonczonosci i y jest wieksze od 0 i nie jest nieparzysta liczba calkowita, to zwracana jest dodatnia nieskonczonosc. Jesli x jest rowne dodatniej nieskonczonosci i y jest mniejsze od 0, to zwracane jest +0. Jesli x jest rowne dodatniej nieskonczonosci i y jest wieksze od 0, to zwracana jest dodatnia nieskonczonosc. Z wyjatkiem sytuacji opisanych wyzej, jezeli x lub y wynosi NaN, to wynikiem jest rowniez NaN. BLEDY Informacje o tym, jak okreslic, czy wystapil blad podczas wywolania tych funkcji, mozna znalezc w podreczniku math_error(7). Moga wystapic nastepujace bledy: Blad dziedziny: x jest ujemne, a y jest liczba skonczona, ale niecalkowita errno jest ustawiane na EDOM. Rzucany jest wyjatek niepoprawnej operacji zmiennoprzecinkowej (FE_INVALID). Blad bieguna: x wynosi zero, a y jest ujemne errno jest ustawiane na ERANGE (patrz takze USTERKI). Rzucany jest wyjatek zmiennoprzecinkowego dzielenia przez zero (FE_DIVBYZERO). Blad zakresu: przekroczenie w gore wartosci wynikowej errno jest ustawiane na ERANGE. Rzucany jest wyjatek przekroczenia zakresu operacji zmiennoprzecinkowej (FE_OVERFLOW). Blad zakresu: przekroczenie w dol wartosci wynikowej errno jest ustawiane na ERANGE. Rzucany jest wyjatek przekroczenia w dol zakresu operacji zmiennoprzecinkowej (FE_UNDERFLOW). ATRYBUTY Informacje o pojeciach uzywanych w tym rozdziale mozna znalezc w podreczniku attributes(7). +---------------------------+--------------------------+---------------+ |Interfejs | Atrybut | Wartosc | +---------------------------+--------------------------+---------------+ |pow(), powf(), powl() | Bezpieczenstwo watkowe | MT-bezpieczne | +---------------------------+--------------------------+---------------+ STANDARDY C11, POSIX.1-2008. HISTORIA C99, POSIX.1-2001. Wariant zwracajacy wartosc typu double jest zgodny rowniez z SVr4, 4.3BSD, C89. USTERKI Dawne bledy (obecnie poprawione) Przed glibc 2.28, na niektorych architekturach (np. x86-64), pow() moze byc ponad 10 000 razy wolniejsze w przypadku pewnych wartosci niz dla innych pobliskich wartosci. Dotyczy to tylko pow(), ale juz nie powf() i powl(). Problem zlikwidowano w glibc 2.28. Wiele bledow w implementacji glibc pow() poprawiono w glibc 2.16. W wersji 2.9 i wczesniejszych biblioteki glibc w razie wystapienia bledu bieguna errno jest ustawiane na EDOM zamiast na ERANGE, jak tego wymaga standard POSIX. Zostalo to poprawione w glibc 2.10. W glibc 2.3.2 i wczesniejszych, w przypadku wystapienia przepelnienia w gore lub w dol, pow() generuje wyjatek przepelnienia oraz niewlasciwy wyjatek niepoprawnej operacji zmiennoprzecinkowej (FE_INVALID) ZOBACZ TAKZE cbrt(3), cpow(3), sqrt(3) TLUMACZENIE Tlumaczenie niniejszej strony podrecznika: Adam Byrtek , Robert Luberda i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Linux man-pages 6.15 17 maja 2025 r. pow(3)