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:

Błąd zakresu: przekroczenie w górę wartości wynikowej
    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
Tłumaczenie niniejszej strony podręcznika: 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 (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.