Question/request/bug(?) re. floating-point in dmd

bearophile bearophileHUGS at lycos.com
Wed Oct 23 09:13:09 PDT 2013


Apollo Hogan:

import std.stdio;

struct Pair { double hi, lo; }

Pair normalize(Pair q) {
     immutable h = q.hi + q.lo;
     immutable l = q.lo + (q.hi - h);
     return Pair(h, l);
}
void main() {
     immutable static Pair spn = Pair(1.0, 0.1).normalize;
     spn.writeln;
     Pair(1.0, 0.1).writeln;
     Pair(1.0, 0.1).normalize.writeln;
}

...>ldmd2 -O -run temp.d
immutable(Pair)(1.1, -2.03288e-020)
Pair(1, 0.1)
Pair(1.1, -8.32667e-017)

...>ldmd2 -run temp.d
immutable(Pair)(1.1, -2.03288e-020)
Pair(1, 0.1)
Pair(1.1, -8.32667e-017)

ldc2 0.11.0

Bye,
bearophile


More information about the Digitalmars-d mailing list