-
Notifications
You must be signed in to change notification settings - Fork 18
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
Twice faster Jacobian quotients #13
Twice faster Jacobian quotients #13
Commits on Aug 5, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 5cf5a09 - Browse repository at this point
Copy the full SHA 5cf5a09View commit details -
Factor out and accelerate Richelot correspondence
This makes FromJacToJac about 50% faster, mostly from avoiding switching rings and variable substitutions, and computing manually the expansion as symmetric functions.
Configuration menu - View commit details
-
Copy full SHA for abf3cde - Browse repository at this point
Copy the full SHA abf3cdeView commit details -
Remove costly no-op calls in Coefficient
The polynomial argument is no longer an element of the fraction field.
Configuration menu - View commit details
-
Copy full SHA for b4ae10e - Browse repository at this point
Copy the full SHA b4ae10eView commit details -
Add hints when constructing 3-isogenies
The point is already known to be of order 3 so providing information to the constructor avoids unnecessary work.
Configuration menu - View commit details
-
Copy full SHA for 9b07ef7 - Browse repository at this point
Copy the full SHA 9b07ef7View commit details -
Rebalance precomputed powers in FromJacToJac
The cost of apply the Richelot isogeny determines how many precomputed Jacobian point powers are worth keeping between FromJacToJac iterations. Since the image computation is now twice faster, we can pass around a second precomputed power to keep balance.
Configuration menu - View commit details
-
Copy full SHA for 0abfba7 - Browse repository at this point
Copy the full SHA 0abfba7View commit details -
Implement a local specialized version of Jacobian doubling
This allows for minor simplifications and is about 10% faster.
Configuration menu - View commit details
-
Copy full SHA for bceb0e3 - Browse repository at this point
Copy the full SHA bceb0e3View commit details -
Get rid of most calls to monic()
SAGE monic() method on polynomials is very generic and often slow due to going through many layers of Python objects. It turns out that all Jacobian doubling formulas are also compatible with non-monic Mumford coordinates so relaxing that constraint saves some operations and accelerates computation by about 10%.
Configuration menu - View commit details
-
Copy full SHA for 1d80a72 - Browse repository at this point
Copy the full SHA 1d80a72View commit details -
Slightly simpler computation of H polynomials
Looking carefully at the coefficients of polynomials H1,H2,H3 they turn out to be almost exactly the coefficients of the inverse matrix. This removes some redundant computations as the determinant computation needs very similar operations.
Configuration menu - View commit details
-
Copy full SHA for 427c730 - Browse repository at this point
Copy the full SHA 427c730View commit details -
Make SAGE use Vélu's formulas rather than Kohel formulas
Initialisation of isogenies in SAGE is much faster when using points as arguments rather than polynomials. On SIKE_challenge this is a 10%-15% speedup.
Configuration menu - View commit details
-
Copy full SHA for 5eb772b - Browse repository at this point
Copy the full SHA 5eb772bView commit details