---
name: "remainder"
section: "3"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/remainder"
---

# remainder(3)

minimal residue functions

## 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 nearest the exact value of *x*/*y*; moreover if Fan - *x*/*y* = 1/2 then *n* is even. Consequently the remainder is computed exactly and Far

Fay/2. But attempting to take the remainder when *y* is 0 or *x* is  is an invalid operation that produces a .

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

[fmod(3)](/fmod/3.md), [ieee(3)](/ieee/3.md), [math(3)](/math/3.md)

## 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.

## HISTORY

The **remainder**() and **remainderf**() functions appeared in 4.3BSD and FreeBSD 2.0, respectively. The **remquo**() and **remquof**() functions were added in FreeBSD 6.0, and **remainderl**() and **remquol**() were added in FreeBSD 8.0.
