# remainder(3M)

**remainder, remquo --
remainder functions
**

## Synopsis

cc [*flag* ...] *file* ... -lm [*library* ...]
#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** and **remainderl**
return the floating point remainder of the division of
*x* by *y*.
More precisely, it returns the value
*r = x - yn*,
where *n*
is the integer nearest the exact value
**x/y**.
Whenever
|*n* - x/y| = *½*,
then *n* is even.
**remquo**, **remquof** and **remquol**
return the floating point remainder of the division of
*x* by *y*. In the object pointed to by
*quo* they store a value whose sign is the sign of
*x/y* and whose magnitude is congruent modulo 2^*n*
to the magnitude of the integral quotient of *x/y*,
where *n* is an implementation-defined integer greater
than or equal to 3.

**NOTE:**
In UnixWare *n* is equal to 3.

### Errors

If *x* is not a **NaN** and *y*
is ±0 **remainder** and **remquo** (and
their floating and long double equivalents) return a
**NaN**, raise an invalid operation exception and set
**errno** to **EDOM**.
If *x* is **±** and *y*
is is not a **NaN** **remainder** and **remquo**
(and their floating and long double equivalents) return a
**NaN**, raise an invalid operation exception and set
**errno** to **EDOM**.

On systems that support IEEE **NaN**, if the argument to any of these
functions is a quiet
**NaN**, that value is returned. If the argument is a signaling
**NaN**, a quiet **NaN** is returned
and the invalid operation exception is raised.
In either case, **errno** is set to **EDOM**.

## References

**cc**(1),
**matherr**(3M),

*
© 2004 The SCO Group, Inc. All rights reserved.
*

UnixWare 7 Release 7.1.4 - 25 April 2004