std::remquo
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( Arithmetic x, Arithmetic y, int *quo ); |
(4) | (since C++11) |
Computes the remainder of the floating point division operation x/y as the 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
Contents |
[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
(C++11) |
signed remainder of the division operation (function) |
remainder of the floating point division operation (function) | |
(C++11) |
the quotient and remainder of integer division (function) |