-
-
Notifications
You must be signed in to change notification settings - Fork 480
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
allow supplying a value of q for special_supersingular_curve() #38483
allow supplying a value of q for special_supersingular_curve() #38483
Conversation
fbfe074
to
a6f4c34
Compare
Documentation preview for this PR (built with commit b2cdaa0; changes) is ready! 🎉 |
d2257c1
to
aa3c5e8
Compare
3f02366
to
72b99f9
Compare
72b99f9
to
b2cdaa0
Compare
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.
one tiny comment otherwise this patch seems nice.
assert False # should never happen | ||
from sage.arith.misc import legendre_symbol | ||
for q in map(ZZ, range(3,p,4)): | ||
if not q.is_prime(): |
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.
is it work just iterating through primes()
here instead of checking primality?
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 don't think primes()
supports the "step" argument (4
). What could work is iterating through the primes and skipping the ones that aren't congruent to 3 modulo 4, but it's the same amount of code, and this part should be negligible in terms of computation anyway.
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.
yeah my thinking was it's maybe faster to ask for the primes and check if it's the right congruence versus ensuring the right congruence and checking primality, but i agree that the majority of CPU time is not spent here (hence the positive review either way :) )
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.
Thank you for the review!
…lar_curve() This is a follow-up to sagemath#36665: There, a CM endomorphism is chosen automatically to construct a "special" supersingular elliptic curve. In some applications, it can be useful to explicitly supply the desired degree of such an endomorphism to Bröker's algorithm, which is made possible by this patch. Note that some of the subroutines used in the new code paths are relatively fragile, which can cause the functionality added here to fail for some inputs, but this has been documented in the appropriate places. URL: sagemath#38483 Reported by: Lorenz Panny Reviewer(s): Giacomo Pope, Lorenz Panny
This is a follow-up to #36665: There, a CM endomorphism is chosen automatically to construct a "special" supersingular elliptic curve. In some applications, it can be useful to explicitly supply the desired degree of such an endomorphism to Bröker's algorithm, which is made possible by this patch.
Note that some of the subroutines used in the new code paths are relatively fragile, which can cause the functionality added here to fail for some inputs, but this has been documented in the appropriate places.