core.math

Builtin mathematical intrinsics

Source
core/math.d
License:
Boost License 1.0.
Authors:
Walter Bright, Don Clugston
nothrow @nogc @safe 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 cos(float x);

pure nothrow @nogc @safe double cos(double x);

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 float sin(float x);

pure nothrow @nogc @safe double sin(double x);

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(float x);

pure nothrow @nogc @safe long rndtol(double x);

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.

pure nothrow @nogc @safe float sqrt(float x);

pure nothrow @nogc @safe double sqrt(double x);

pure nothrow @nogc @safe real sqrt(real 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 float ldexp(float n, int exp);

pure nothrow @nogc @safe double ldexp(double n, int exp);

pure nothrow @nogc @safe real ldexp(real n, int exp);

Compute n * 2exp

References
frexp
pure nothrow @nogc @safe float fabs(float x);

Compute the absolute value.

Special Values
x fabs(x)
±0.0 +0.0
±∞ +∞
It is implemented as a compiler intrinsic.

Parameters:
float x floating point value
Returns:
|x|
References
equivalent to std.math.fabs
pure nothrow @nogc @safe double fabs(double x);

ditto

Compute the absolute value.

Special Values
x fabs(x)
±0.0 +0.0
±∞ +∞
It is implemented as a compiler intrinsic.

Parameters:
double x floating point value
Returns:
|x|
References
equivalent to std.math.fabs
pure nothrow @nogc @safe real fabs(real x);

ditto

Compute the absolute value.

Special Values
x fabs(x)
±0.0 +0.0
±∞ +∞
It is implemented as a compiler intrinsic.

Parameters:
real x floating point value
Returns:
|x|
References
equivalent to std.math.fabs
pure nothrow @nogc @safe float rint(float x);

pure nothrow @nogc @safe double rint(double x);

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 float yl2x(float x, float y);

pure nothrow @nogc @safe double yl2x(double x, double y);

pure nothrow @nogc @safe real yl2x(real x, real y);

pure nothrow @nogc @safe double yl2xp1(double x, double y);

pure nothrow @nogc @safe real yl2xp1(real x, real y);

Building block functions, they translate to a single x87 instruction.

T toPrec(T : float)(float f);

T toPrec(T : float)(double f);

T toPrec(T : float)(real f);

T toPrec(T : double)(float f);

T toPrec(T : double)(double f);

T toPrec(T : double)(real f);

T toPrec(T : real)(float f);

T toPrec(T : real)(double f);

T toPrec(T : real)(real f);

Round argument to a specific precision.

D language types specify only a minimum precision, not a maximum. The toPrec() function forces rounding of the argument f to the precision of the specified floating point type T. The rounding mode used is inevitably target-dependent, but will be done in a way to maximize accuracy. In most cases, the default is round-to-nearest.

Parameters:
T precision type to round to
float f value to convert
Returns:
f in precision of type T

© 1999–2021 The D Language Foundation
Licensed under the Boost License 1.0.
https://dlang.org/phobos/core_math.html