| REMAINDER(3) | Library Functions Manual | REMAINDER(3) |
remainder,
remainderf, remainderl,
remquo, remquof,
remquol — remainder
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);
Provided that y ≠ 0 , the
remainder()
remainderf()
and
remainderl()
functions calculate the floating-point remainder r
of
where n is the integral value nearest to the exact value of x / y. If
the value n is chosen to be even. Consequently, the remainder is computed exactly and | r | ≤ | y | / 2 .
Also the
remquo()
remquof()
and
remquol()
functions calculate the remainder 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 representation of the quotient may not be
meaningful when x is large in magnitude compared to
y.
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.
The described functions conform to ISO/IEC 9899:1999 (“ISO C99”).
| January 24, 2024 | NetBSD 11.0 |