![]() |
How To Evaluate SNFS Polynomial Tricks?
The specific question I'm wondering about today is factoring (p^7-1)/(p-1) when it is the range that is optimal for 5th degree polynomials. The obvious polynomial is the sixth degree
[center]x[sup]6[/sup]+x[sup]5[/sup]+x[sup]4[/sup]+x[sup]3[/sup]+x[sup]1[/sup]+x+1[/center] Is it ever better to use: [center](p+1)x[sup]5[/sup]+x[sup]4[/sup]+x[sup]3[/sup]+x[sup]1[/sup]+x+1[/center] And is there some method other than experimentation and trial sieving to answer this? There are other situations where tradeoffs can be made by shuffling values between the variables and the coefficients. I'm wondering if there is any easy way to tell when it's likely to be worthwhile. |
I have a simple trick ([SIZE=1]and somewhere on the forum some harder ones[/SIZE]).
[U]Prerequisites[/U]: 1. a poly file (say, [FONT=System]test.poly[/FONT]) 2. the [FONT=System]factMsieve.pl[/FONT] script [U]Testing (without actually sieving):[/U] 1. Edit the factMsieve.pl script: set [FONT=System]$DOCLASSICAL=1;[/FONT] 2. run "factMsieve.pl test" and kill it when this line will be printed: [FONT=System]skew 1.00, size 2.126e-24, alpha 1.694, combined = [U]1.542e-14[/U] rroots = 0[/FONT] [FONT=Fixedsys][FONT=Verdana]mostly you need the Murphy E score (a.k.a. combined)[/FONT][/FONT] [FONT=Fixedsys][FONT=Verdana]3. Copy test.poly to test2.poly and make edits[/FONT][/FONT] [FONT=Fixedsys][FONT=Verdana]4. run "factMsieve.pl test2" etc.[/FONT][/FONT] [FONT=Fixedsys][FONT=Verdana][/FONT][/FONT] [FONT=Fixedsys][FONT=Verdana]You will be looking for the best E score. That's all.[/FONT][/FONT] [FONT=Fixedsys][FONT=Verdana]The script only helps you to prepare msieve-able files and a command-line. [/FONT][/FONT][FONT=Fixedsys][FONT=Verdana]This method doesn't quite work for comparing polynomials of degrees more different than 1 apart (e.g. for 4 vs 6, or 4 vs 8 you'd need some test sieving for the final decision).[/FONT] [FONT=Verdana]_________[/FONT] [FONT=Verdana][SIZE=1]I've used it for evaluating some simple rotations of (for example) 11L/M polynomials (a degree 5 poly after a x=t+1/t substitution; replacing x with t=x-a where |a|<=5); I can tell more about this particular case if anyone's interested.[/SIZE][/FONT] [/FONT] |
[QUOTE=Batalov;258143]
I've used it for evaluating some simple rotations of (for example) 11L/M polynomials (a degree 5 poly after a x=t+1/t substitution; replacing x with t=x-a where |a|<=5); I can tell more about this particular case if anyone's interested.[/QUOTE] Oddperfect is doing a bunch of p^11-1 from Pascals t files of first composites, so I'm very interested in hearing about this. William |
Well, this is not going to help with b[SUP]11[/SUP]-1.
This is for the Aurifeuillian 11[SUP]22m+11[/SUP]+1, but here goes, without comment: [CODE] ? factor(11^11*N^22+1) %1 = [11*N^2 + 1 1] [161051*N^10 - 161051*N^9 + 73205*N^8 - 14641*N^7 - 1331*N^6 + 1331*N^5 - 121*N^4 - 121*N^3 + 55*N^2 - 11*N + 1 1] [161051*N^10 + 161051*N^9 + 73205*N^8 + 14641*N^7 - 1331*N^6 - 1331*N^5 - 121*N^4 + 121*N^3 + 55*N^2 + 11*N + 1 1] ? f=161051*N^10 + 161051*N^9 + 73205*N^8 + 14641*N^7 - 1331*N^6 - 1331*N^5 - 121*N^4 + 121*N^3 + 55*N^2 + 11*N + 1 ? t=11*N+1/N %3 = (11*N^2 + 1)/N ? f/N^5-(t^5) %4 = (161051*N^8 + 14641*N^6 - 14641*N^5 - 1331*N^4 - 1331*N^3 + 121*N^2 + 11)/N^4 ? f/N^5-(t^5+11*t^4) %5 = (-43923*N^4 - 14641*N^3 - 9317*N^2 - 1331*N - 363)/N^2 ? f/N^5-(t^5+11*t^4-363*t^2) %7 = (-14641*N^2 - 1331*N - 1331)/N ? f/N^5-(t^5+11*t^4-363*t^2-1331*t) %8 = -1331 ? f/N^5-([COLOR=darkgreen]t^5+11*t^4-363*t^2-1331*t-1331[/COLOR]) %10 = 0 [COLOR=darkgreen]#this is a good initial poly, ...but we can possibly do a bit better:[/COLOR] #new session ? t=x+1 ? t^5+11*t^4-363*t^2-1331*t-1331 %2 = x^5 + 16*x^4 + 54*x^3 - 287*x^2 - 2008*x - [COLOR=darkred]3013[/COLOR] ? t=x-1 ? t^5+11*t^4-363*t^2-1331*t-1331 %4 = x^5 + 6*x^4 - 34*x^3 - 307*x^2 - 644*x - 353 ? t=x-2 ? t^5+11*t^4-363*t^2-1331*t-1331 %6 = x^5 + x^4 - 48*x^3 - 179*x^2 - 151*x + 23 ? t=x-3 ? t^5+11*t^4-363*t^2-1331*t-1331 %8 = x^5 - 4*x^4 - 42*x^3 - 39*x^2 + 64*x + 43 ? [COLOR=blue][B]t=x-4[/B][/COLOR] ? t^5+11*t^4-363*t^2-1331*t-1331 %10 = [COLOR=blue][B]x^5 - 9*x^4 - 16*x^3 + 53*x^2 + 37*x - 23[/B][/COLOR] #this poly is pretty good, small coeffs, and Murphy E score agrees :-) [/CODE] Then the skew for all candidate polynomials can be optimized by test sieving... The last one was used for factoring 11,539M. |
[QUOTE=wblipp;258134]The specific question I'm wondering about today is factoring (p^7-1)/(p-1) when it is the range that is optimal for 5th degree polynomials. The obvious polynomial is the sixth degree
[CENTER]x[sup]6[/sup]+x[sup]5[/sup]+x[sup]4[/sup]+x[sup]3[/sup]+x[sup]1[/sup]+x+1[/CENTER] Is it ever better to use: [CENTER](p+1)x[sup]5[/sup]+x[sup]4[/sup]+x[sup]3[/sup]+x[sup]1[/sup]+x+1[/CENTER] [/QUOTE] I don't think it ever will be. Factoring (p^17-1)/(p-1) I found that the quintic with c5: p*p and c0: 1 was slower than a sextic (c6: 1 and c0: p) or a quartic (c4: p and c0:1). The huge coefficients were killers. Even at about 100 digits a sextic is only about twice as slow as a quartic. The only step I can think of is to halve the degree to degree 3. That might be faster at about 80-90 digits (and SNFS could still beat QS). But it's not worth it unless you have a lot of numbers like that to do. Chris K |
| All times are UTC. The time now is 08:15. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.