If you spot a problem with this page, click here to create a Bugzilla issue. 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.

# core.math

Builtin mathematical intrinsics

Source: core/math.d

Authors:
Walter Bright, Don Clugston
pure nothrow @nogc @safe real cos(real x);
Returns cosine of x. x is in radians.
Special Values
x cos(x) invalid?
NAN NAN yes
±∞ NAN yes
Bugs:
Results are undefined if |x| >= 264.
pure nothrow @nogc @safe real sin(real x);
Returns sine of x. x is in radians.
Special Values
x sin(x) invalid?
NAN NAN yes
±0.0 ±0.0 no
±∞ NAN yes
Bugs:
Results are undefined if |x| >= 264.
pure nothrow @nogc @safe long rndtol(real x);
Returns x rounded to a long value using the current rounding mode. If the integer value of x is greater than long.max, the result is indeterminate.
@nogc real rndtonl(real x);
Returns x rounded to a long value using the FE_TONEAREST rounding mode. If the integer value of x is greater than long.max, the result is indeterminate.
pure nothrow @nogc @safe float sqrt(float x);
Compute square root of x.
Special Values
x sqrt(x) invalid?
-0.0 -0.0 no
<0.0 NAN yes
+∞ +∞ no
pure nothrow @nogc @safe double sqrt(double x);
ditto
Compute square root of x.

Special Values
x sqrt(x) invalid?
-0.0 -0.0 no
<0.0 NAN yes
+∞ +∞ no
pure nothrow @nogc @safe real sqrt(real x);
ditto
Compute square root of x.

Special Values
x sqrt(x) invalid?
-0.0 -0.0 no
<0.0 NAN yes
+∞ +∞ no
pure nothrow @nogc @safe real ldexp(real n, int exp);
Compute n * 2exp

References: frexp

pure nothrow @nogc @safe real fabs(real x);
Returns |x|
Special Values
x fabs(x)
±0.0 +0.0
±∞ +∞
pure nothrow @nogc @safe real rint(real x);
Rounds x to the nearest integer value, using the current rounding mode. If the return value is not equal to x, the FE_INEXACT exception is raised. nearbyint performs the same operation, but does not set the FE_INEXACT exception.
pure nothrow @nogc @safe real yl2x(real x, real y);
Building block functions, they translate to a single x87 instruction.