-
Notifications
You must be signed in to change notification settings - Fork 2
Remove fq ctx object #524
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
Remove fq ctx object #524
Conversation
…q_reduce which also works with any context polynomial and is not limited to the underlying field requirements
…g monic polynomials
LPorzenheim
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did not recalculate every changed test manually, but looked at whether they seemed reasonable.
…sts, move function to different file and optimise functional separation
Marvin-Beckmann
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I made these and a few more changes that I found necessary
Description
Previously, our ModulusPolynomialRingZq reduce used the fq_reduce from FLINT. However, the fq objects from FLINT do not support arbitrary moduli and only irreducible polynomials (in general).
In the few special cases that were important for our usecases this never occured, as we have mostly sparse polynomials and the sparse reduce works without the irreducible property.
Gennerally, this meant that the error was unnoticed.
This PR introduces its own sparse reduce function without use of FLINTs function. This removes the underlying dependency to FLINT. The method allows any modulus and any context polynomial (assuming it is monic).
Testing
Checklist: