View source code
Display the source code in std/math/remainder.d from which this
page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a
Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
local clone.
Function std.math.remainder.remainder
Calculate the remainder x REM y, following IEC 60559.
real remainder
(
real x,
real y
) nothrow @nogc @trusted;
REM is the value of x - y * n, where n is the integer nearest the exact value of x / y. If |n - x / y| == 0.5, n is even. If the result is zero, it has the same sign as x. Otherwise, the sign of the result is the sign of x / y. Precision mode has no effect on the remainder functions.
remquo returns n
in the parameter n
.
x | y | remainder(x, y) | n | invalid? |
---|---|---|---|---|
±0.0 | not 0.0 | ±0.0 | 0.0 | no |
±∞ | anything | -NAN | ? | yes |
anything | ±0.0 | ±NAN | ? | yes |
!= ±∞ | ±∞ | x | ? | no |
Example
import std .math .operations : feqrel;
import std .math .traits : isNaN;
assert(remainder(5.1, 3.0) .feqrel(-0.9) > 16);
assert(remainder(-5.1, 3.0) .feqrel(0.9) > 16);
writeln(remainder(0.0, 3.0)); // 0.0
assert(isNaN(remainder(1.0, 0.0)));
assert(isNaN(remainder(-1.0, 0.0)));
Example
import std .math .operations : feqrel;
int n;
assert(remquo(5.1, 3.0, n) .feqrel(-0.9) > 16 && n == 2);
assert(remquo(-5.1, 3.0, n) .feqrel(0.9) > 16 && n == -2);
assert(remquo(0.0, 3.0, n) == 0.0 && n == 0);
Authors
Walter Bright, Don Clugston, Conversion of CEPHES math library to D by Iain Buclaw and David Nadlinger
License
Copyright © 1999-2022 by the D Language Foundation | Page generated by ddox.