Scroll to navigation

expm1(3) Library Functions Manual expm1(3)

NAZWA

expm1, expm1f, expm1l - funkcja wykładnicza minus 1

BIBLIOTEKA

Biblioteka matematyczna (libm, -lm)

SKŁADNIA

#include <math.h>
double expm1(double x);
float expm1f(float x);
long double expm1l(long double x);

Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)):

expm1():

_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L

|| _XOPEN_SOURCE >= 500
|| /* Od glibc 2.19: */ _DEFAULT_SOURCE
|| /* glibc w wersji <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

expm1f(), expm1l():

_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ść równoważną z


exp(x) - 1

Wynik jest obliczany w sposób zapewniający dokładność nawet gdy x wynosi prawie zero, czyli w sytuacji, w której użycie exp(x) - 1 prowadziłoby do niedokładności z powodu odejmowania dwóch prawie takich samych liczb.

WARTOŚĆ ZWRACANA

Funkcje te, gdy się zakończą pomyślnie, zwracają exp(x) - 1.

Jeśli x wynosi NaN, to zwracane jest NaN.

Jeśli x wynosi +0 (-0), to zwracane jest +0 (-0).

Jeśli x jest równe dodatniej nieskończoności, to zwracana jest dodatnia nieskończoność.

Jeśli x jest równe ujemnej nieskończoności, to zwracane jest -1.

W przypadku przepełnienia wyniku operacji, występuje błąd zakresu i funkcje zwracają odpowiednio -HUGE_VAL, -HUGE_VALF lub -HUGE_VALL.

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:

errno jest ustawiane na ERANGE (ale patrz USTERKI). Rzucany jest wyjątek przekroczenia zakresu operacji zmiennoprzecinkowej (FE_OVERFLOW).

ATRYBUTY

Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).

Interfejs Atrybut Wartość
expm1(), expm1f(), expm1l() Bezpieczeństwo wątkowe MT-bezpieczne

STANDARDY

C11, POSIX.1-2008.

HISTORIA

C99, POSIX.1-2001. BSD.

USTERKI

Przed glibc 2.17, na określonych architekturach (np. x86, lecz nie x86_64) expm1() rzucała nieprawidłowy wyjątek niedomiaru zmiennoprzecinkowego w przypadku pewnych dużych, ujemnych wartości x (gdzie wynik funkcji zbliża się do -1).

Przed mniej więcej glibc 2.11 expm1() niewłaściwie rzucała wyjątek niepoprawnej operacji zmiennoprzecinkowej w połączeniu z oczekiwanym wyjątkiem przekroczenia zakresu oraz zwracała NaN zamiast dodatniej nieskończoności, dla pewnych dużych, dodatnich wartości x.

Przed glibc 2.11, implementacja glibc nie ustawiała errno na ERANGE, gdy wystąpił błąd zakresu.

ZOBACZ TAKŻE

exp(3), log(3), log1p(3)

TŁUMACZENIE

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Adam Byrtek <alpha@irc.pl>, Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.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 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.

2 maja 2024 r. Linux man-pages (niewydane)