View source code
Display the source code in std/math.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.modf

Breaks x into an integral part and a fractional part, each of which has the same sign as x. The integral part is stored in i.

real modf (
  real x,
  ref real i
) nothrow @nogc @trusted;

Returns

The fractional part of x.

Special Values
x i (on input) modf(x, i) i (on return)
±∞ anything ±0.0 ±∞

Example

real frac;
real intpart;

frac = modf(3.14159, intpart);
assert(intpart.feqrel(3.0) > 16);
assert(frac.feqrel(0.14159) > 16);
}

/*************************************
* Efficiently calculates x * 2<sup>n</sup>.
*
* scalbn handles underflow and overflow in
* the same fashion as the basic arithmetic operators.
*
*      <table border="1" cellpadding="4" cellspacing="0">
              <caption>Special Values</caption>
              *      <tr><th scope="col">x</th>                 <th scope="col">scalb(x)</th></tr>
*      <tr><td>&plusmn;&infin;</td>      <td>&plusmn;&infin;</td> </tr>
*      <tr><td>&plusmn;0.0</td>      <td>&plusmn;0.0</td> </tr>
*      </table>
*/
real scalbn(real x, int n) @safe pure nothrow @nogc { return _scalbn(x,n); 

Authors

Walter Bright, Don Clugston, Conversion of CEPHES math library to D by Iain Buclaw and David Nadlinger

License

Boost License 1.0.