-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
simpqs failure #39
Comments
Sorry about the delay, I'm looking at this. I see Alpertron fixed it in their code. There has been a newer version of SIMPQS from FLINT for a number of years, but it would take some work to port and tune. My understanding was it was performance and slightly larger numbers, rather than bug fixes. What should really happen is I write my own code. Tilman Neumann had a lot of great ideas and factoring code he posted on mersenneforum a few years back. All in Java but the algorithms are similar enough. See https://github.com/TilmanNeumann/java-math-library. |
Thanks @danaj; just to clarify, were you able to reproduce the failure? |
Yes. It does not factor even when the number of relations is raised to 70k. It takes about 45 minutes on my laptop for an attempt. This is pretty close to the size limit of SIMPQS 1.0, and it doesn't have a lot of testing at this size. Bumping up the number of relations and sieving size doesn't help. C-Quadratic-Sieve (another open source project) needs a higher than normal size limit, but successfully factors in 74 minutes. SIMPQS 2.0 succeeded in 22 minutes. Combining the partial relations really speeds it up -- version 1.0 (in this code) finds hundreds of thousands of partials but doesn't do anything with them. |
For the record, here's another one that fails (confirmed against master at 2389dcb):
Factorization from Alpertron is 1059405511716795159376523757718030895723651 * 8665648604506982829490012915377592720602462019. |
I spent some time playing with The two test cases above also succeed; memory consumption reported by I'm not sure why the advantage of the in-memory approach drops off so much for the longer test numbers, so I may be doing something silly. Bugs I had to fix in my changes before getting correct results were: ensure lists of factors are sorted; when combining a pair of partials, remove only one from the list not both; make sure there are no duplicates in the list of full relations. I also spotted a bug in
|
While working on this I've found a bug in the existing MPUG implementation: my first 80-digit testcase above failed to factorize because I've applied the patch below to the checkout (from db88b86) my maths code is working against - I suspect that may fix all the factorization failures I've been seeing.
|
I have a note from back in December to investigate this, but never did get around to it. As I understand it, if we choose to call simpqs as part of the factorization strategy it should always succeed; however the master branch failed to find the factors in this case:
Maybe by coincidence, Alpertron also failed on the same number (alpertron/calculators#22).
The text was updated successfully, but these errors were encountered: