![]() |
![]() |
#1 |
A Sunny Moo
Aug 2007
USA (GMT-5)
3·2,083 Posts |
![]()
Is there a straightforward way to produce an SNFS polynomial for a number of the form k*b^n+-1? These threads in the Sierpinski/Riesel base 5 forum touched on the subject a bit, but I couldn't make heads or tails of the various discussions in there about producing SNFS polynomials. Ditto for the mersennewiki article on the subject.
What I'm trying to do is take a whack at factoring one of the numbers from the k*2^n+-1 factorization project, many of which seem quite well suited for quick SNFS jobs. Unfortunately, my experience with SNFS factorizations is limited to running pre-generated .poly files from the near-repdigit project, which has a really neat little system that lets it automatically generate SNFS polynomials for its composites. Obviously, then, there is some sort of straightforward method for doing this, and it can be implemented as a completely automated program; I just haven't been able to find a clear description of it anywhere or this forum, or by searching the GGNFS mailing list archives. Any help on this would be greatly appreciated. ![]() Max ![]() |
![]() |
![]() |
![]() |
#2 | |
Nov 2008
2×33×43 Posts |
![]() Quote:
Code:
n: 45947148675353304988805745980911375149866811121831508012183057488121346393001365840176303292481813012944878439690052564665316728832008131 c4: 15 c0: -1 Y1: 1 Y0: -696898287454081973172991196020261297061888 [=2^139] skew: type: snfs Code:
n: 45947148675353304988805745980911375149866811121831508012183057488121346393001365840176303292481813012944878439690052564665316728832008131 c5: 30 c0: -1 Y1: 1 Y0: -2596148429267413814265248164610048 [=2^111] skew: type: snfs Code:
n: 45947148675353304988805745980911375149866811121831508012183057488121346393001365840176303292481813012944878439690052564665316728832008131 c6: 60 c0: -4 Y1: 1 Y0: -9903520314283042199192993792 [=2^93] skew: type: snfs (Mods, if I've missed something out, feel free to delete this post.) Last fiddled with by 10metreh on 2010-01-08 at 07:40 |
|
![]() |
![]() |
![]() |
#3 |
"Sander"
Oct 2002
52.345322,5.52471
29·41 Posts |
![]() |
![]() |
![]() |
![]() |
#4 |
Jul 2003
So Cal
2·3·11·37 Posts |
![]() |
![]() |
![]() |
![]() |
#5 |
Nov 2008
2·33·43 Posts |
![]() |
![]() |
![]() |
![]() |
#6 | |
A Sunny Moo
Aug 2007
USA (GMT-5)
3·2,083 Posts |
![]() Quote:
![]() Meanwhile, I'll take a whack at those polynomials you provided--thanks! ![]() Last fiddled with by mdettweiler on 2010-01-08 at 18:49 |
|
![]() |
![]() |
![]() |
#7 |
Nov 2008
2×33×43 Posts |
![]()
Basically, when the polynomials (rational and algebraic) are calculated for a certain number m (it doesn't matter what this is), they are both equivalent to 0 (mod N), i.e. they are either 0, N or a multiple of N. For the degree 5 polynomial, m = 2^111: 30*(2^111)^5-1 = 15*2^556-1 which is by definition a multiple of n, and m-2^111 = 0 (obviously).
Last fiddled with by 10metreh on 2010-01-08 at 19:18 |
![]() |
![]() |
![]() |
#8 | |
A Sunny Moo
Aug 2007
USA (GMT-5)
3×2,083 Posts |
![]() Quote:
Code:
n: 283347805802003574336187887292901565896290554119953391779442063930786753840404759101112572581306469631045937977931652075948816049919521359133958052805321 c5: 11 c0: -1 Y1: 1 Y0: -10633823966279326983230456482242756608 skew: 1 type: snfs ![]() Thanks for all the help! I think I've got a pretty good idea now of how this works. Just one last question though: if this was, say, 11*2^615+1 instead, would I just change c0 to a positive 1? |
|
![]() |
![]() |
![]() |
#9 |
Jun 2003
The Texas Hill Country
100010000012 Posts |
![]() |
![]() |
![]() |
![]() |
#10 | |
Just call me Henry
"David"
Sep 2007
Liverpool (GMT/BST)
23·7·107 Posts |
![]() Quote:
the way i think about it is: the number being factored = c5*m^5+c4*m^4+c3*m^3+c2*m^2+c1*m^1+c0 for a degree 5 poly and the rational poly is almost always 1*m-m for snfs polys you can add a multiplier to the number being factored to give it better properties that often outway the fact you are factoring a larger number AFAIK smaller leading coefficients(c5 for degree 5, c6 for degree 6 etc) tend to sieve faster. This is a weakness in factoring riesel numbers as you often end up with the k in the leading coefficient. I would always compare you best snfs poly to a very quick gnfs poly as some numbers are just not suited to snfs. |
|
![]() |
![]() |
![]() |
#11 |
Nov 2008
2·33·43 Posts |
![]()
Bear in mind that when "lpbr" and "lpba" increase by 1, the speed of relation-finding doubles, but so does the number of relations needed (roughly). This means that, for instance, when you are doing GNFSs with factMsieve.pl, c98s always have a much faster sec/rel than c97, but take longer because they need twice as many relations: c97-c98 is the default crossover from lpbr/a=25 to lpbr/a=26.
|
![]() |
![]() |
![]() |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
QS polynomials | Till | Factoring | 12 | 2021-08-04 21:01 |
SNFS polynomials via lindep | fivemack | YAFU | 22 | 2012-03-12 18:48 |
SNFS polynomials. | chris2be8 | FactorDB | 1 | 2012-03-10 16:49 |
orthogonal polynomials | yemsy | Aliquot Sequences | 1 | 2011-02-17 10:25 |
Polynomials and Probability | Orgasmic Troll | Puzzles | 4 | 2003-09-16 16:23 |