# FreeBSD Manual Pages

```REMAINDER(3)		 BSD Library Functions Manual		  REMAINDER(3)

NAME
remainder,	remainderf, remainderl,	remquo,	remquof, remquol -- minimal
residue 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
remainder(), remainderf(),	remainderl(), remquo(),	remquof(), and
remquol() return the remainder r := x - n*y where n is the	integer	near-
est 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 at-
tempting to take the remainder when y is 0	or x is	+-infinity is an in-
valid 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.

fmod(3), ieee(3), math(3)

STANDARDS
The remainder(), remainderf(), remainderl(), remquo(), remquof(), and
remquol() routines	conform	to ISO/IEC 9899:1999 ("ISO C99").  The remain-
der is as defined in IEEE Std 754-1985.

HISTORY
The remainder() and remainderf() functions	appeared in 4.3BSD and
FreeBSD 2.0, respectively.	 The remquo() and remquof() functions were