BigInt problem
Don
nospam at nospam.com
Fri Feb 18 01:45:23 PST 2011
tsukikage wrote:
> Please see source in attachment.
> The output is
>
> M2 M3 M5 M7 M13 M17 M19 M31 M61 M89 M107 M127 M521 M607 M1279 M2203
> M2281 M3217 M4253 M4423
> *** M9689***
> M9941 M11213 M19937
> *** M21701***
> M23209
>
> It missed 2 Mersenne Primes 9689 & 21701.
> Is it my program bug or bigint broken?
> It seems subtle.
>
> Thank you!
>
That's quite a terrible bug in Bigint. It's slipped through testing
because of a fault in the win32 Phobos makefile (someone disabled
asserts!). If Phobos is compiled in debug mode, your code causes an
assert failure inside the bigint code.
It's a straightforward problem with the fast recursive division
implementation, failing to properly normalize intermediate quotients.
Unfortunately the fix won't make the next release, which happens in a
few hours.
More information about the Digitalmars-d-learn
mailing list