REMAINDER(3M) | Mathematical Library Functions | REMAINDER(3M) |

remainder, remainderf, remainderl - remainder function

c99 [flag... ]file...-lm[library... ] #include <math.h>doubleremainder(doublex,doubley);

floatremainderf(floatx,floaty);

long doubleremainderl(long doublex,long doubley);

These functions return the floating point remainder *r* =
*x* − *n**y* when *y* is non-zero. The value
*n* is the integral value nearest the exact value *x*/*y*.
When |*n* − *x*/*y*| = ½, the value *n* is
chosen to be even.

The behavior of **remainder()** is independent of the rounding
mode.

Upon successful completion, these functions return the floating
point remainder *r* = *x* − *n**y* when *y*
is non-zero.

If *x* or *y* is NaN, a NaN is returned.

If *x* is infinite or *y* is 0 and the other is non-NaN,
a domain error occurs and a NaN is returned.

These functions will fail if:

**Domain Error**

The *x* argument is ±Inf, or the *y*
argument is ±0 and the other argument is non-NaN.

If the integer expression (**math_errhandling** &
**MATH_ERREXCEPT**) is non-zero, then the invalid floating-point
exception is raised.

The **remainder()** function sets **errno** to **EDOM**
if *y* argument is 0 or the *x* argument is positive or negative
infinity.

An application wanting to check for error situations can set
**errno** to 0 before calling **remainder()**. On return, if
**errno** is non-zero, an error has occurred. The **remainderf()** and
**remainderl()** functions do not set **errno**.

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE | ATTRIBUTE VALUE |

Interface Stability | Standard |

MT-Level | MT-Safe |

abs(3C), div(3C), feclearexcept(3M), fetestexcept(3M), attributes(7), standards(7)

July 12, 2006 | SunOS 5.11 |