REMAINDER(3)

NAME
remainder - floating-point remainder function

SYNOPSIS
#include <math.h>
double
remainder(double x, double y);
long double
remainderl(long double x, long double y);
float
remainderf(float x, float y);

DESCRIPTION
The remainder() functions compute the value r such that r = x - n*y, where n is the integer nearest the exact value of x/y.

If there are two integers closest to x/y, n shall be the even one. If r is zero, it is given the same sign as x.

SPECIAL VALUES
remainder(x, y) returns a NaN and raises the "invalid" floating-point exception if x is infinite or y is 0.

NOTE
The drem() function is deprecated. Please use the C99 function remainder() instead.

VECTOR OPERATIONS
If you need to apply the remainder() functions to SIMD vectors or arrays, using the following functions provided by the Accelerate.framework may give significantly better performance:

#include <Accelerate/Accelerate.h>

vFloat vremainderf(vFloat x, vFloat y);
void vvremainderf(float *z, const float *y, const float *x, const int *n);
void vvremainder(double *z, const double *y, const double *x, const int *n);

SEE ALSO
math(3)

STANDARDS
The remainder() functions conform to ISO/IEC 9899:2011.