-
-
Notifications
You must be signed in to change notification settings - Fork 654
division of elliptic-curve morphisms #38902
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
Conversation
Documentation preview for this PR (built with commit 8044219; changes) is ready! 🎉 |
880b922
to
58c1817
Compare
71df211
to
65ebe4f
Compare
65ebe4f
to
589d4d1
Compare
9e985ab
to
8044219
Compare
8044219
to
60786b1
Compare
60786b1
to
355df1d
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.
Some initial comments while reading, but will read more later when i have time. General thought is that this is fantastic and a welcome addition to Sage
Denominator: 2 | ||
""" | ||
from sage.rings.integer import Integer | ||
if not isinstance(other, (int, Integer)): |
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 worth trying to cast the value here to an Integer and return NotImplemented when we cant?
I'm thinking of the case where somehow 2
is an element of the rationals or finite field and then this fails somewhat silently
|
||
AUTHORS: | ||
|
||
- Lorenz Panny (2024) |
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.
2025?
return self._phi.inseparable_degree() / self._domain.scalar_multiplication(self._d).inseparable_degree() | ||
|
||
|
||
def _torsion_gens(E, EE, l, e, psi=None): |
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 there not something appropriate we can use from the curve object itself here?
sagemathgh-38902: division of elliptic-curve morphisms This patch adds a class for representing symbolic fractions $\phi/d$ of elliptic-curve morphisms. As a corollary, we get left- and right- division of isogenies, which are emulated by composing with the dual and dividing out the degree. Fractional isogenies often appear in computations with endomorphism rings (e.g., $(1+\pi_q)/2$ is an endomorphism of any elliptic curve over $\mathbb F_q$ with rational $2$-torsion). The new class is designed to fully support the `EllipticCurveHom` interface, albeit with *extremely* basic algorithms in some cases. Indeed, the goal of this patch is to establish the interface and basic functionality — any optimizations are left for future work. URL: sagemath#38902 Reported by: Lorenz Panny Reviewer(s): Giacomo Pope
This patch adds a class for representing symbolic fractions$\phi/d$ of elliptic-curve morphisms. As a corollary, we get left- and right-division of isogenies, which are emulated by composing with the dual and dividing out the degree. Fractional isogenies often appear in computations with endomorphism rings (e.g., $(1+\pi_q)/2$ is an endomorphism of any elliptic curve over $\mathbb F_q$ with rational $2$ -torsion).
The new class is designed to fully support the
EllipticCurveHom
interface, albeit with extremely basic algorithms in some cases. Indeed, the goal of this patch is to establish the interface and basic functionality — any optimizations are left for future work.