View Single Post
Old 2012-07-21, 02:01   #3
Batalov's Avatar
Mar 2008

24·3·197 Posts

I've been fitting E values for a long time and added this to gnfs/poly/poly_skew.c quite a while ago (see the hidden comment, too):
                { /* SB: tried L[1/3,c] fit; it is no better than this */
                        double e0 = (digits >= 121) ? (0.0607 * digits + 2.25):
                                                      (0.0526 * digits + 3.23);
                        if (degree == 4) e0 = 0.0625 * digits + 1.69;
                        e0 = exp(-log(10) * e0);
#ifdef HAVE_CUDA
                        e0 *= 1.15;
                        logprintf(obj, "expecting poly E from %.2le to > %.2le\n",
                                e0, 1.15 * e0);
                        /* seen exceptional polys with +40% but that's */
                        /* rare. The fit is good for 88..232 digits */
This should print a line in your msieve.log. This fit is underestimating the top end (because the higher we go, the less satisfactorily we test the poly space; there are probably excellent polys but there's not enough time to sample well). The fit for degree 4 is for the degree 4 E value; that curve is discontinuous. The low end of degree 5 has some silly hook, too (don't ask me why; it is a fit of the observed values from tons of aliquot, from Kamada's site and from B+D experiments and a few data points were taken from the MForum community jobs).

E.g. for your c180 the E value is surely good.

Crossover from degree 5 to degree 6 is exactly around 205 to 210 digits. You can compare the Murphy E values (as implemented by msieve) for degree 5 and degree 6 polynomials within a fudge factor of 1-1.5, in my experience. I've been running select quite a bit for the c204 with degree 6 and 5 and degree 5 won, recently. However, for RSA704 deg 6 was used and deg 5 poly seived weaker.
Batalov is offline   Reply With Quote