| REMAINDER(3) | Library Functions Manual | REMAINDER(3) |
remainder,
remainderf, remainderl,
remquo, remquof,
remquol, drem,
dremf — minimal residue
functions
Math Library (libm, -lm)
#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);
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.
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.
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.
| June 7, 2025 | Debian |