[Issue 13474] 32 bit DMD optimizer FP arithmetic bug
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Mon Sep 15 10:40:25 PDT 2014
https://issues.dlang.org/show_bug.cgi?id=13474
--- Comment #2 from Илья Ярошенко <ilyayaroshenko at gmail.com> ---
//Fails both DMD -m32 and -m64
import core.stdc.tgmath;
double sumKBN(double[] d)
{
double s = 0.0;
double c = 0.0;
foreach(double x; d)
{
double t = s + x;
if(s.fabs >= x.fabs)
c += (s-t)+x;
else
c += (x-t)+s;
s = t;
}
return s + c;
}
unittest
{
assert(3 == [1, 1e100, 1, -1e100].sumKBN);
}
--
More information about the Digitalmars-d-bugs
mailing list