ECPP Version 6.4.5

From 5.6.1 to 6.4.5

The code was modified as to match the material described in my ANTS-III article as well as some ongoing work on new class invariants, part of which was described in my Durham talk. As a result, there are now new data available, that make the program faster. Needless to say, a lot of bugs were corrected on the way. Special care was given to the probable prime test used in the inner core of the algorithm, as well as the problems mentionned in my ISSAC92 paper.

The Data part

For convenience (that is smaller files are easier to get than larger ones), the data part has been divided into five parts.

You need all of them!

Here they are:

To give an example, on your machine toto, once you have ftp-ed the file ecppweber1.tar.gz, you have to type:
toto% gzip -dc ecppweber1.tar.gz | tar xvf -
Important remark: the data part has been changed from 5.6.1. Though the date of 5.6.1 can still be used, the new data lead to a more efficient program. To understand these changes, see my article in ANTS-III and the slides of Durham.

The binaries part

Now, to get the binaries, select one of:

Important remarks: all the binaries are for Un*x-like operating systems.


512-bit primes

The file Bench/primes-b512x20 contains twenty 512 bit primes. We give the average time for proving their primality below (with my personal version).
Pentium III (450MHz)                4.4 sec
Solaris 5.7                         9.5 sec
Alpha EV56 (500MHz)                 4   sec

A larger number

This benchmark consists in proving the primality of the 222 decimal digit cofactor of 2, 1958M = 2^979+2^490+1.
This number is taken from the tables of the Cunningham Project ("Factorizations of b**n+/-1 up to high powers" by John Brillhart, D. H. Lehmer, J. L. Selfridge, Bryant Tuckerman and S. S. Wagstaff, Jr., vol 22 of AMS Contemporary Mathematics series), which are regularily updated by Paul Leyland. It is the first non trivial number whose primality I proved in 1987.
                                    Proof        Check
Pentium III (450MHz)                16 sec      3.1 sec
Solaris 5.7                         38 sec      9.7 sec
Alpha EV56 (500MHz)                 13 sec      1.9 sec
The benchmarks are given as is. In particular, they do not imply any judgment of mine, or of my Laboratory.


This work uses the BigNum package developed jointly by INRIA and Digital PRL. École polytechnique and CNRS make no representations, express or implicit, with respect to the binaries given, including without limitations, any implied warranties of merchandability or fitness for a particular purpose, all of which are expressly disclaimed. École polytechnique and CNRS shall in no event be liable for any indirect, incidental or consequential damages. The binaries can be used for research purposes as well as private use, but not in any commercial product (including cryptographic libraries -- of course -- actually, I have slowed down my program for small numbers). I do not give permission to use my program from a web page. If you use my program to break records, I'd like to be informed of that and I'd like to see my name as well as the version number of the program associated to it.

Number of hits since 2001.04.02: