This still doesn't pass on my AMD box. I guess the error is being caused indirectly somehow, allowing the magnitude of the error to increase. Anyhow, it fails on line 810 in std.math.internal.gammafunction, which is:

assert(feqrel(betaIncompleteInv(0x1.ff1275ae5b939bcap-41, 4.6713e18, 0.0813601), 0x1.f97749d90c7adba8p-63L)>=real.mant_dig - 1);

For me, on my AMD box,

feqrel(betaIncompleteInv(0x1.ff1275ae5b939bcap-41, 4.6713e18, 0.0813601), 0x1.f97749d90c7adba8p-63L) == 25

If I change the assert to this level of leniency, then all unit tests pass. I don't understand the codebase and what that line is meant to test well enough, though, to know whether it's reasonable to make the unit test that lenient.

On 11/28/2010 3:11 PM, dsource.org wrote:
phobos commit, revision 2202


user: Don Clugston

msg:
Increase tolerance of this test, now that we know that failure is caused by a 
small imprecision in AMD's microcode.

http://www.dsource.org/projects/phobos/changeset/2202

_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos


_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos

Reply via email to