NAME
remainder
,
remainderf
, remainderl
,
remquo
, remquof
,
remquol
, drem
,
dremf
—
minimal residue functions
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
remainder
(),
remainderf
(),
remainderl
(),
remquo
(), remquof
(), and
remquol
() return the remainder
r := x
−
n*y where
n is the integer nearest the exact value of
x/y; moreover if
|n −
x/y| = 1/2 then
n is even. Consequently the remainder is computed
exactly and |r| ≤ |y|/2.
But attempting to take the remainder when y is 0 or
x is ±infinity is an invalid operation that
produces a NaN.
The
remquo
(),
remquof
()
and
remquol
()
functions also store the last k bits of
n in the location pointed to by
quo, provided that n exists. The
number of bits k is platform-specific, but is
guaranteed to be at least 3.
SEE ALSO
STANDARDS
The remainder
(),
remainderf
(), remainderl
(),
remquo
(), remquof
(), and
remquol
() routines conform to
ISO/IEC 9899:1999 (“ISO C99”).
The remainder is as defined in IEEE Std
754-1985.
drem
() and dremf
()
are deprecated aliases for remainder
() and
remainderf
(), respectively.
HISTORY
The remainder
() and
remainderf
() functions appeared in
4.3BSD and NetBSD 1.2,
respectively. The remquo
() and
remquof
() functions were added in
OpenBSD 4.4.