![]() |
![]() |
#1 |
Mar 2005
Poland
2316 Posts |
![]()
Hi, quick questions for those familiar with polynomial selection tool in new GGNFS suite:
let's assume we have a general number N, that can be represented as SNFS k*x^p+c (example: 3049*1067^37-12321) But, somehow, user forgot to check this. Can "polyselect" or "pol51m0b" find suitable polynomial for SNFS case? If the answer is: "only by accident", or "only with very small coefficients k,c of k*x^p+c" can you try to precise the conditions? Maybe we can write some tool to check if the general number N is close to some power, or it's multiple, in some range of k,x,p,c? In fact, I wrote such a procedure and seems to work (p<1024,k<2^18), hovewer it's very rough and stupid and without any smart optimisations, so I'd prefer not to share it yet. But another questions arises: Which one of the parameters is most important? For now it's sorting results by ascending c, dropping results when c > 10^10. Washuu |
![]() |
![]() |
![]() |
#2 |
"Nancy"
Aug 2002
Alexandria
2,467 Posts |
![]()
We've been thinking about something similar for GMP-ECM, so we can identify numbers suitable for George's DWT stage 1. I think writing numbers in base b, b=2,3,... might work.
After all, b^p = 100....00 in base b. Since c is likely going to be small, it will only affect the lowest couple of digits, and the multiplication by k will only affect the highest couple of digits. So for b=2...(highest base you want to check), write N in base b (check Knuth vol.2 about how to do it quickly), see if there are a lot of zeros in the middle, if there are take the low non-zero digits as c, see how often you can divide b out of N-c to get p and take the remainder as k. Alex Edit: in fact, this is something that could go into phi.c. The code to tweak the poly coefficients should be general enough to handle non-unit k and c. Edit2: this will only detect numbers with positive c. For negative c, look for a lot of b-1 digits in the middle. Neither will work if known factors have been divided out of N already. Last fiddled with by akruppa on 2005-08-07 at 21:48 |
![]() |
![]() |
![]() |
#3 | ||
Oct 2004
tropical Massachusetts
3×23 Posts |
![]()
To Washuu's first question, the simple answer is "no". Or "only by accident". At least with "pol51m0b", it chooses non-monic linear polynomials which I do believe will eliminate any reasonable possibility of finding simple polynomials for numbers of this form. I can't really give a better answer than that; the polynomial selection programs in GGNFS were never intended to check for SNFS numbers.
Second, I don't even think such a program would solve a real problem. Quote:
Quote:
-- Sam |
||
![]() |
![]() |
![]() |
#4 | |
Mar 2005
Poland
5·7 Posts |
![]() Quote:
And if you want an example: my friend started factoring the number he obtained from comps.gz, from Paul Leyland's website (Cullen and Woodall numbers). These numbers are remaining composites in general form. But some of the numbers can be factorised by SNFS, he just forgot to search the C&W tables for the number he chose. Sieving stage started over 48 hours ago, so it's not worth to start again with another poly, we both were just curious if the polm0b can find better polynomial than in usual case. BTW: I was thinking also about writing small program for optimal chosing of polynomial for SNFS, when we know algebraic form of the number. It seems to be not very difficult, and could be helpful for beginners - not everyone can see good polynomial in the first sight... What do you think? Regards, Washuu |
|
![]() |
![]() |
![]() |
#5 | |
Nov 2003
1D2416 Posts |
![]() Quote:
Define "close". What you suggest is certainly not trivial. As for writing a program, I suspect you have not considered alll of the ramifications. What polynomial would you choose for (say) 2, 1450L? |
|
![]() |
![]() |
![]() |
#6 | |
Bamboozled!
"๐บ๐๐ท๐ท๐ญ"
May 2003
Down not across
22·3·941 Posts |
![]() Quote:
Even when one has considered all the ramifications, should that even be possible, one doesn't have to write a program that deals with every case. If 2,1450L turns out to be too hard, and I'm not claiming it is, a program that deals correctly with enough other interesting cases can still be very useful. Some time ago I wrote a program to help maintain my factor tables. It deduces which table it may be processing by examining the first few lines of the table. It doesn't recognize all tables by any means, but because it recognizes Cunningham, BMtR, Cullen, Woodall, Generalized (Cullen&Woodall) and N!\pm1 I find it incredibly useful. Extending it to more cases will be straightforward if the need arises. Rule of thumb: good may not be perfect, but can be useful. Paul |
|
![]() |
![]() |
![]() |
#7 | |
Mar 2005
Poland
5×7 Posts |
![]() Quote:
![]() OK, seriously: I was only thinking about rather simple cases (at least in the beginning), for numbers like k*x^p+c. The program should make a few tests (about presence of Aurfeillian factors, for example), and try to compute some polynomials, and present the one with smallest coefficents. There are some tricks to do, and beginner not always can see it, and even more advanced (but still amateur) can miss, or simply miscalculate. (I can for sure). Simple example from ggnfs doc: for N=16*10^143-1 obvious poly could be f(x)=4*x^5-25, but a slightly less obvious would be f(x)=x^5-200. Newbie can easily miss this, and amateur should check if his poly is good enough. (Experts can manage by themselves.) :) As for program checking for "closeness" of N to some multiple of some power of some number :), I also would ask you about advice, what "closeness" condition should be. I thought about range of k,c<10^((logN)/10), so for n=10^120 cutoff point would be at 10^12. For now, I have got mainly ideas, and want to listen what others are thinking and advicing. If someone wants to write such a program, you are very welcome, I am not good at it. Washuu Last fiddled with by Washuu on 2005-08-08 at 18:40 |
|
![]() |
![]() |
![]() |
#8 | |
"Sander"
Oct 2002
52.345322,5.52471
29·41 Posts |
![]() Quote:
|
|
![]() |
![]() |
![]() |
#9 | |
Mar 2005
Poland
5×7 Posts |
![]() Quote:
Washuu |
|
![]() |
![]() |
![]() |
#10 | |
"Sander"
Oct 2002
52.345322,5.52471
29×41 Posts |
![]() Quote:
|
|
![]() |
![]() |
![]() |
#11 |
Mar 2003
New Zealand
22058 Posts |
![]()
Is it possible to calculate a Murphy_E score for a SNFS polynomial and compare it to the score for a GNFS polynomial as given by pol51opt?
|
![]() |
![]() |
![]() |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
checking very large number for primality. | WhoCares | Math | 51 | 2017-04-20 17:17 |
Round Off Checking and Sum (Inputs) Error Checking | Forceman | Software | 2 | 2013-01-30 17:32 |
Number of relations from ggnfs | Greebley | Msieve | 2 | 2012-03-05 21:56 |
SNFS basics (ggnfs + factLat) | CRGreathouse | Factoring | 4 | 2009-05-25 08:05 |
checking smaller number | fortega | Data | 2 | 2005-06-16 22:48 |