# Manual browser: remainder(3)

REMAINDER(3) | 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 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*.

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

# STANDARDS

The described functions conform to ISO/IEC 9899:1999 (“ISO C99”).September 18, 2011 | NetBSD 7.0 |