remquo(), remquof(), remquol()

Compute the floating point remainder

Synopsis:

#include <math.h>

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 );

Arguments:

x
The numerator of the division.
y
The denominator.
quo
A pointer to a location where the function can store the sign and at least the last three bits of x / y.

Library:

libm

Use the -l m option to qcc to link against this library.

Description:

The remquo(), remquof(), and remquol() functions compute the floating-point remainder of the division operation x / y, as remainder() does. Additionally, they store the sign and at least the three of the last bits of x / y in the location that quo points to, sufficient to determine the octant of the result within a period.

The behavior of remquo() is independent of the rounding mode.

To check for error situations, use feclearexcept() and fetestexcept():

Returns:

The floating point remainder r = x - ny, where y is nonzero. If x is infinite or y is zero and the other is non-NaN, these functions return NaN, and a domain error occurs. If x or y is NaN, the functions return NaN.

Errors:

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

Classification:

ANSI, POSIX 1003.1

Safety:  
Cancellation point No
Interrupt handler No
Signal handler No
Thread Yes