Gerhard Niklasch on Sun, 30 Aug 1998 21:17:08 +0200 (MET DST)


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: Rho bug (was Re: [PARI] MPQS error message: complement)


In response to
> Message-ID:
> 	<Pine.LNX.3.95.980830222529.29091E-100000@pev.math.univ-montp2.fr>
> Date: Sun, 30 Aug 1998 22:43:00 +0200 (MET DST)
> From: Philippe Elbaz-Vincent <pev@pev.math.univ-montp2.fr>

> ? factorint(6812991403,1)
> IFAC: factorizer returned strange object to ifac_crack
> 00000007

This is known  (Henri Cohen found another number which triggered it)
and fixed for 2.0.12.  If you're interested in a sneak preview, you
may download
   ftp://hasse.mathematik.tu-muenchen.de/incoming/ifactor1.c.gz
make sure it is gunzip-ped either by your browser or manually,
and replace the existing src/basemath/ifactor1.c with it  (it should
work cleanly inside 2.0.11 surroundings).  Apart from fixing this
little problem, it also features an extensively modified and re-tuned
ECM factorizer, with many thanks to Paul Zimmermann for being per-
sistently dissatisfied with the previous algorithm and offering lots
of advice and references.

The correct diagnostic output for this number should look like this:
---8<---
Rho: searching small factor of 33-bit integer
Rho: using X^2-1 for up to 14 rounds of 32 iterations
Rho: time =     10 ms,   11 rounds,
        Pollard-Brent failed.
Rho: restarting for remaining rounds...
Rho: using X^2+3 for up to 3 rounds of 32 iterations
Rho: time =      0 ms,  Pollard-Brent giving up.
--->8---
(and, with the flag set to 1, it will proceed to split the number using
ECM in another 60msec or so).  The bug was in a few missing re-initiali-
zations when Rho had to restart because the first attempt had `found'
both factors at exactly the same iteration, failing to separate them.

By the way, factorint(6812991403,4)  (i.e. using MPQS and skipping the
Pollard Rho phase)  takes only about 10(+-10) msec on my P133;  this
increases to 40 or 60 msec when diagnostics are turned on.

Enjoy, Gerhard