table of contents
- bookworm 1:4.18.1-1
- bookworm-backports 1:4.24.0-2~bpo12+1
- testing 1:4.24.0-2
- unstable 1:4.24.0-2
remainder(3) | Library Functions Manual | remainder(3) |
NAZWA¶
drem, dremf, dreml, remainder, remainderf, remainderl - reszta z dzielenia zmiennoprzecinkowego
BIBLIOTEKA¶
Biblioteka matematyczna (libm, -lm)
SKŁADNIA¶
#include <math.h>
/* Wersje C99 */ double remainder(double x, double y); float remainderf(float x, float y); long double remainderl(long double x, long double y);
/* Przestarzałe synonimy */ double drem(double x, double y); float dremf(float x, float y); long double dreml(long double x, long double y);
remainder():
_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
|| _XOPEN_SOURCE >= 500
|| /* Od glibc 2.19: */ _DEFAULT_SOURCE
|| /* glibc w wersji <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
remainderf(), remainderl():
_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
|| /* Od glibc 2.19: */ _DEFAULT_SOURCE
|| /* glibc w wersji <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
drem(), dremf(), dreml():
/* Od glibc 2.19: */ _DEFAULT_SOURCE
|| /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
OPIS¶
Funkcje te obliczają resztę z dzielenia x przez y. Zwracana wartość to x-n*y, gdzie n jest wynikiem dzielenia x / y, zaokrąglonym do najbliższej liczby całkowitej. Jeśli wartość bezwzględna z x-n*y wynosi 0.5, to n jest zaokrąglane do liczby parzystej.
Funkcje te nie zależą od bieżącego kierunku zaokrąglania (patrz fenv(3)).
Funkcja drem() robi dokładnie to samo.
WARTOŚĆ ZWRACANA¶
Funkcje te, gdy się zakończą pomyślnie, zwracają resztę z dzielenia zmiennoprzecinkowego x-n*y. Jeśli wynikiem jest 0, to przyjmuje ono znak taki sam jak znak argumentu x.
Jeśli x lub y jest NaN, to zwracane jest NaN.
Jeśli x jest równe nieskończoności, a y jest różne od NaN, to występuje błąd dziedziny i zwracane jest NaN.
Jeśli y wynosi zero, a x jest różne od NaN, to występuje błąd dziedziny i zwracane jest 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 nieskończonością, a y nie jest NaN
- errno jest ustawiane na EDOM (patrz także USTERKI). Rzucany jest wyjątek niepoprawnej operacji zmiennoprzecinkowej (FE_INVALID).
- Funkcje te nie ustawiają errno w tym przypadku.
- Błąd dziedziny: y jest równe zero
- errno jest ustawiane na EDOM. Rzucany jest wyjątek niepoprawnej operacji zmiennoprzecinkowej (FE_INVALID).
ATRYBUTY¶
Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).
Interfejs | Atrybut | Wartość |
drem(), dremf(), dreml(), remainder(), remainderf(), remainderl() | Bezpieczeństwo wątkowe | MT-bezpieczne |
STANDARDY¶
Funkcje remainder(), remainderf() oraz remainderl() są wymienione w C99, POSIX.1-2001 i POSIX.1-2008.
Funkcja drem() pochodzi z 4.3BSD. Warianty przyjmujące float oraz long double, czyli dremf() i dreml() istnieją w niektórych systemach takich jak Tru64 i glibc2. Prosimy unikać używania tych funkcji, preferując remainder() itd. zamiast nich.
USTERKI¶
Przed glibc 2.15, wywołanie
remainder(nan(""), 0);
zwracało NaN, tak jak można by tego oczekiwać, ale niepoprawnie powodowało też błąd dziedziny. Od glibc 2.15 zwracane jest ciche NaN (tj. bez błędu dziedziny).
Przed glibc 2.15, errno nie było ustawiane na EDOM, w przypadku błędu dziedziny, który występuje gdy x jest nieskończonością, a y nie wynosi NaN.
PRZYKŁADY¶
Wywołanie "remainder(29.0, 3.0)" zwraca -1.
ZOBACZ TAKŻE¶
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.
5 lutego 2023 r. | Linux man-pages 6.03 |