core.math - D Programming Language

Menu

- Learn
- Documentation
  - Language Reference
  - Library Reference
  - Command-line Reference
  - Feature Overview
  - Articles
- Downloads
- Packages
- Community
  - Blog
  - Orgs using D
  - Twitter
  - Calendar
  - Forums
  - IRC
  - Community Discord
  - Wiki
  - GitHub
  - Issues
  - Get involved
  - Contributors
  - Foundation
  - Security Team
  - Donate
  - Sponsors
- Resources
  - Tour
  - Books
  - Tutorials
  - Tools
  - Editors
  - IDEs
  - run.dlang.io
  - Visual D
  - Acknowledgments
  - D Style
  - Glossary
  - Sitemap

Search
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 a local clone.

# core.math

Builtin mathematical intrinsics

Source core/math.d

License:
Boost License 1.0.
Authors:
Walter Bright, Don Clugston

deprecated 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

Copyright © 1999-2022 by the D Language Foundation | Page generated by Ddoc on Mon Nov 14 18:06:29 2022