-
-
Notifications
You must be signed in to change notification settings - Fork 434
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
Improve morphisms between Drinfeld modules #35527
Conversation
7c8861c: This is indeed much more faster than using basic j-invariants. |
One feature that could be also implemented is the conjugate: sage: A = GF(5)['T']
sage: K.<T> = Frac(A)
sage: phi = DrinfeldModule(A, [T, 1, 1])
sage: phi.conjugate(u) # u nonzero
# return the Drinfeld module T |--> u^(-1) \phi_T u |
Sure. |
@kryzar @DavidAyotte @ymusleh |
Not sure if I can act as a formal reviewer since I'm not part of the Sage community and haven't had a PR merged, but I'll look over the code and provide feedback. |
Yep. |
Just some minor comments, otherwise I think this is good for a positive review. |
src/sage/rings/function_field/drinfeld_modules/drinfeld_module.py
Outdated
Show resolved
Hide resolved
Co-authored-by: David Ayotte <34245930+DavidAyotte@users.noreply.github.com>
Thanks for the update. For my part, I am happy with the current state of this PR. |
I'm also happy with the state of this PR. |
…drinfeld-module-morphisms
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 my review (thank you for your patience).
Co-authored-by: Antoine Leudière <clapped.hesitancy332@anonaddy.me>
Co-authored-by: Antoine Leudière <clapped.hesitancy332@anonaddy.me>
…_module.py Co-authored-by: Antoine Leudière <clapped.hesitancy332@anonaddy.me>
…_module.py Co-authored-by: Antoine Leudière <clapped.hesitancy332@anonaddy.me>
Co-authored-by: Antoine Leudière <clapped.hesitancy332@anonaddy.me>
Co-authored-by: Antoine Leudière <clapped.hesitancy332@anonaddy.me>
Co-authored-by: Antoine Leudière <clapped.hesitancy332@anonaddy.me>
Co-authored-by: Antoine Leudière <clapped.hesitancy332@anonaddy.me>
Co-authored-by: Antoine Leudière <clapped.hesitancy332@anonaddy.me>
@kryzar |
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 very much @xcaruso for writing this contribution and taking the tame to address my comments! I approve the changes.
Thanks for your reviews. |
Documentation preview for this PR (built with commit 5f76571; changes) is ready! 🎉 |
We implement several methods for arbitrary morphisms between Drinfeld modules.
Especially, we implement the computation of norms and characteristic polynomials.
@ymusleh @DavidAyotte @kryzar
📚 Description
Here is a list of the most important added methods:
hom
: fast interface for creating morphisms between Drinfeld modules_composition_
/inverse
: composition and inverse of morphisms between Drinfeld modulesis_isomorphic
: check whether two Drinfeld modules are isomorphic either over the base field or over an algebraic closurenorm
: computation of the norm of a morphism between Drinfeld modulesdual_isogeny
: computation of the dual isogenycharacteristic_polynomial
/charpoly
: computation of the characteristic polynomial of an endomorphism between Drinfeld modulesWe also implement addition of morphisms and the action of the function field$A$ ; this gives the structure of left $A$ -module on the set of morphisms between two given Drinfeld modules.
📝 Checklist