
REMAINDER(3) BSD Library Functions Manual REMAINDER(3)
NAME
remainder, remainderf, remquo, remquof  remainder functions
LIBRARY
Math Library (libm, lm)
SYNOPSIS
#include <math.h>
double
remainder(double x, double y);
float
remainderf(float x, float y);
double
remquo(double x, double y, int *quo);
float
remquof(float x, float y, int *quo);
DESCRIPTION
Provided that y != 0 , the remainder() and remainderf() 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 computed exactly and  r 
<=  y  / 2 .
Also the remquo() and remquof() 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 magni
tude is congruent modulo 2^k to the magnitude of the integral quotient of x / y, where k is
an implementationdefined 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 meaning
ful 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.
SEE ALSO
div(3), fast_remainder32(3), fmod(3), math(3)
STANDARDS
The described functions conform to ISO/IEC 9899:1999 (``ISO C99'').
BSD September 18, 2011 BSD 
