Avoid the (rare) use of outdated values for fb.soln1/fb.soln2 and speedup for SIQS part#2
Open
kickunderscore wants to merge 2 commits intoskollmann:masterfrom
Open
Avoid the (rare) use of outdated values for fb.soln1/fb.soln2 and speedup for SIQS part#2kickunderscore wants to merge 2 commits intoskollmann:masterfrom
kickunderscore wants to merge 2 commits intoskollmann:masterfrom
Conversation
…b.soln2 in the sive setup.
… in siqs_trial_divide().
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
While testing my C++ port of PyFactorise, I found two things that I changed compared to your implementation and that I would like to share with you:
When factoring values with large prime factors, after determining new base polynomials in 'siqs_find_first_poly()', the sieve construction in 'siqs_sieve()' may use outdated values from 'fb.soln1' and 'fb.soln1' because 'fb.soln1' is not reset to 'None' for new base polynomials. I avoided this by adding a marker for the polynomial cycle.
In siqs_trial_divide(), I wondered whether the '-1 solutions' could also serve as relations if a corresponding pseudo-factor of -1 were taken into account in the matrix operations. And yes, it works! The changes are very small, but often speed up the SIQS part by a factor of two.