##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# std::remquo

From cppreference.com
< cpp‎ | numeric‎ | math

Defined in header `<cmath>` |  |
float remquo( float x, float y, int *quo ); | (1) | (since C++11)
double remquo( double x, double y, int *quo ); | (2) | (since C++11)
long double remquo( long double x, long double y, int *quo ); | (3) | (since C++11)
Promoted remquo( Arithmetic1 x, Arithmetic2 y, int *quo ); | (4) | (since C++11)

Computes the remainder of the floating point division operation x/y as the std::remainder() function does. Additionally, the sign and at least the three of the last bits of x/y will be stored in quo.

4) If any argument has integral type, it is cast to double. If any other argument is long double, then the return type is long double, otherwise it is double

### [edit] Parameters

x, y | - | floating point values
quo | - | pointer to an integer value to store some bits of x/y in

### [edit] Return value

Remainder of dividing arguments.

### [edit] Notes

This function is useful when implementing periodic functions with the period exactly representable as a floating-point value: when calculating `sin(πx)` for a very large `x`, calling std::sin directly may result in a large error, but if the function argument is first reduced with `std::remquo`, the low-order bits of the quotient may be used to determine the sign and the remainder may be used to calculate the value with high precision.

### [edit] See also

remainder (C++11) | signed remainder of the division operation (function) [edit]
fmod | remainder of the floating point division operation (function) [edit]
div ldiv lldiv imaxdiv (C++11) | the quotient and remainder of integer division (function) [edit]
C documentation for remquo

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/numeric/math/remquo&oldid=67117"