REMAINDER(3)

NAZWA
drem, dremf, dreml, remainder, remainderf, remainderl - reszta z dzielenia zmiennoprzecinkowego

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);

Proszę linkować z -lm.

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

remainder():
    _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED || _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
    lub cc -std=c99
remainderf(), remainderl():
    _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
    lub cc -std=c99
drem(), dremf(), dreml():
    _SVID_SOURCE || _BSD_SOURCE

OPIS
Funkcja remainder() oblicza 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
    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).

ZGODNE Z
Funkcje remainder(), remainderf() oraz remainderl() są wymienione wC99 i POSIX.1-2001.

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.

BŁĘDY IMPLEMENTACJI
Wywołanie

    remainder(nan(""), 0);

zwraca NaN, tak jak można by tego oczekiwać, ale niepoprawnie powoduje też błąd dziedziny; powinno zwracać NaN bez żadnych błędów.

PRZYKŁAD
Wywołanie "remainder(29.0, 3.0)" zwraca -1.

ZOBACZ TAKŻE
div(3), fmod(3), remquo(3)

O STRONIE
Angielska wersja tej strony pochodzi z wydania 3.71 projektu Linux man-pages. Opis projektu, informacje dotyczące zgłaszania błędów, oraz najnowszą wersję oryginału można znaleźć pod adresem http://www.kernel.org/doc/man-pages/.

TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Adam Byrtek (PTM) <alpha@irc.pl>, Andrzej Krzysztofowicz (PTM) <ankry@mif.pg.gda.pl> i Robert Luberda <robert@debian.org>.

Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów na stronie http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją 3.71 oryginału.