# remainder(3) - NetBSD Manual Pages

Command: Section: Arch: Collection:
```REMAINDER(3)            NetBSD Library Functions Manual           REMAINDER(3)

NAME
remainder, remainderf, remainderl, remquo, remquof, remquol -- remainder
functions

LIBRARY
Math Library (libm, -lm)

SYNOPSIS
#include <math.h>

double
remainder(double x, double y);

float
remainderf(float x, float y);

long double
remainderl(long double x, long double y);

double
remquo(double x, double y, int *quo);

float
remquof(float x, float y, int *quo);

long double
remquol(long double x, long double y, int *quo);

DESCRIPTION
Provided that y != 0 , the remainder() remainderf() and remainderl()
functions calculate the floating-point remainder r of

r = x - ny,

where n is the integral value nearest to the exact value of x / y.  If

| n - x / y | = 1/2 ,

the value n is chosen to be even.  Consequently, the remainder is com-
puted exactly and | r | <= | y | / 2 .

Also the remquo() remquof() and remquol() functions calculate the remain-
der as described above.  But these additionally use quo to store a value
whose sign is the sign of x / y and whose magnitude is congruent modulo
2^k to the magnitude of the integral quotient of x / y, where k is an
implementation-defined integer greater than or equal to 3.

The rationale of the remquo() family of functions relates to situations
where only few bits of the quotient are required.  The exact representa-
tion of the quotient may not be meaningful when x is large in magnitude
compared to y.

RETURN VALUES
The functions return the remainder independent of the rounding mode.  If
y is zero , NaN is returned and a domain error occurs.  A domain error
occurs and a NaN is returned also when x is infinite but y is not a NaN.
If either x or y is NaN, a NaN is always returned.