GMP-ECM 5.0.3

We are pleased to announce the release of GMP-ECM 5.0.3. The source file is available from:

This is a fix release for bugs in versions 5.0, 5.0.1 and 5.0.2. The main changes with respect to version 5.0.2 is the following: versions 5.0, 5.0.1 and 5.0.2 have a nasty bug that prevents them from finding some factors. The proportion of missed factors is conjectured to be about 3% on 32-bit machines, and 1.5% on 64-bit machines.

To check if the bug occurs with your version, type:

 $ echo 3213162276640339413566047915418064969550383692549981333701 | ecm -sigma 2735675386 3897500
If you don't get an output as follows, your version is buggy.
GMP-ECM 5.0.3 [powered by GMP 4.1.2] [ECM]
Input number is 3213162276640339413566047915418064969550383692549981333701 (58 digits)
Using B1=3897500, B2=5831973006, polynomial Dickson(12), sigma=2735675386
Step 1 took 21930ms
Step 2 took 27810ms
********** Factor found in step 2: 3213162276640339413566047915418064969550383692549981333701
Found input number N
Alternatively a patch wrt ecm-5.0.1 enables you to check if the bug occurs. Compile ecm-5.0.1 with that patch and run it on your input number. An error will be reported if the bug occurs. Note however that the bug does not systematically happen for a given input number, even for fixed B1 and B2 bounds.
We noticed that the bug happens with high probability for input numbers whose number of bits is an entire multiple of the word size (32 or 64). It also seems that this bug only happens when Brent-Suyama's extension is used: using -power 1 is a quick workaround.
We advise all gmp-ecm users to upgrade to version 5.0.3.
Detailed instructions how to install and optimize the use of gmp-ecm are to be found in the INSTALL and README files.

Alexander Kruppa
Paul Zimmermann

Patch for ecm-5.0.3.

A segmentation fault may happen in some cases. Apply the following patch to file polyeval.c. Thanks to Paul Leyland for pointing us this problem.