std::remainder, std::remainderf, std::remainderl
| Defined in header <cmath>
|
||
| (1) | ||
float remainder ( float x, float y ); double remainder ( double x, double y ); |
(until C++23) | |
| constexpr /*floating-point-type*/ remainder ( /*floating-point-type*/ x, |
(since C++23) | |
float remainderf( float x, float y ); |
(2) | (since C++11) (constexpr since C++23) |
long double remainderl( long double x, long double y ); |
(3) | (since C++11) (constexpr since C++23) |
| SIMD overload (since C++26) |
||
| Defined in header <simd>
|
||
| template< class V0, class V1 > constexpr /*math-common-simd-t*/<V0, V1> |
(S) | (since C++26) |
| Additional overloads (since C++11) |
||
| Defined in header <cmath>
|
||
template< class Integer > double remainder ( Integer x, Integer y ); |
(A) | (constexpr since C++23) |
std::remainder for all cv-unqualified floating-point types as the type of the parameters.(since C++23)|
S) The SIMD overload performs an element-wise
std::remainder on v_xand v_y.
|
(since C++26) |
|
A) Additional overloads are provided for all integer types, which are treated as double.
|
(since C++11) |
The IEEE floating-point remainder of the division operation x / y calculated by this function is exactly the value x - quo * y, where the value quo is the integral value nearest the exact value x / y. When |quo - x / y| = ½, the value quo is chosen to be even.
In contrast to std::fmod, the returned value is not guaranteed to have the same sign as x.
If the returned value is zero, it will have the same sign as x.
Contents |
[edit] Parameters
| x, y | - | floating-point or integer values |
[edit] Return value
If successful, returns the IEEE floating-point remainder of the division x / y as defined above.
If a domain error occurs, an implementation-defined value is returned (NaN where supported).
If a range error occurs due to underflow, the correct result is returned.
If y is zero, but the domain error does not occur, zero is returned.
[edit] Error handling
Errors are reported as specified in math_errhandling.
Domain error may occur if y is zero.
If the implementation supports IEEE floating-point arithmetic (IEC 60559),
- The current rounding mode has no effect.
- FE_INEXACT is never raised, the result is always exact.
- If x is ±∞ and y is not NaN, NaN is returned and FE_INVALID is raised.
- If y is ±0 and x is not NaN, NaN is returned and FE_INVALID is raised.
- If either argument is NaN, NaN is returned.