std::remquo

From cppreference.com
< cpp‎ | numeric‎ | math
 
 
 
Common mathematical functions
Functions
Basic operations
(C++11)
remquo
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
Exponential functions
(C++11)
(C++11)
(C++11)
(C++11)
Power functions
(C++11)
(C++11)
Trigonometric and hyperbolic functions
(C++11)
(C++11)
(C++11)
Error and gamma functions
(C++11)
(C++11)
(C++11)
(C++11)
Nearest integer floating point operations
(C++11)(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
Floating point manipulation functions
(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)
(C++11)
Classification/Comparison
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Macro constants
(C++11)(C++11)(C++11)(C++11)(C++11)
 
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

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)
the quotient and remainder of integer division
(function)
C documentation for remquo