Commit b95c165
Release Manager
Trac #33865: direct computation of .formal()[1] for elliptic-curve morphisms
Follow-up to #33216: We can compute `.formal()[1]` directly, i.e.,
without going through `.formal()`. This is beneficial as the latter uses
the rational maps, which can be very expensive.
* Composite isogenies have multiplicative `.formal()[1]`.
* Isogenies using Vélu's or Kohel's formulas are normalized, hence
`.formal()[1] == 1`. We only need to account for pre- and post-
isomorphism.
* Weierstrass isomorphisms `(u,r,s,t)` have `.formal()[1] == u`.
Same example as for #33216:
{{{#!sage
E = EllipticCurve(j=GF(431^2)(4))
phi = E.isogeny(2^99*E.gens()[0])
_ = phi.dual()
%timeit phi._EllipticCurveIsogeny__dual = None; phi.dual()
}}}
Sage 9.6:
{{{
537 ms ± 6.75 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
}}}
This branch:
{{{
294 ms ± 1.71 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
}}}
URL: https://trac.sagemath.org/33865
Reported by: lorenz
Ticket author(s): Lorenz Panny
Reviewer(s): John CremonaFile tree
6 files changed
+125
-13
lines changed- build/pkgs/configure
- src/sage/schemes/elliptic_curves
6 files changed
+125
-13
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
3 | | - | |
4 | | - | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2768 | 2768 | | |
2769 | 2769 | | |
2770 | 2770 | | |
| 2771 | + | |
| 2772 | + | |
| 2773 | + | |
| 2774 | + | |
| 2775 | + | |
| 2776 | + | |
| 2777 | + | |
| 2778 | + | |
| 2779 | + | |
| 2780 | + | |
| 2781 | + | |
| 2782 | + | |
| 2783 | + | |
| 2784 | + | |
| 2785 | + | |
| 2786 | + | |
| 2787 | + | |
| 2788 | + | |
| 2789 | + | |
| 2790 | + | |
| 2791 | + | |
| 2792 | + | |
| 2793 | + | |
| 2794 | + | |
| 2795 | + | |
| 2796 | + | |
| 2797 | + | |
| 2798 | + | |
| 2799 | + | |
| 2800 | + | |
| 2801 | + | |
| 2802 | + | |
| 2803 | + | |
2771 | 2804 | | |
2772 | 2805 | | |
2773 | 2806 | | |
| |||
3320 | 3353 | | |
3321 | 3354 | | |
3322 | 3355 | | |
3323 | | - | |
| 3356 | + | |
3324 | 3357 | | |
3325 | 3358 | | |
3326 | 3359 | | |
| |||
3343 | 3376 | | |
3344 | 3377 | | |
3345 | 3378 | | |
3346 | | - | |
| 3379 | + | |
3347 | 3380 | | |
3348 | 3381 | | |
3349 | 3382 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
266 | 266 | | |
267 | 267 | | |
268 | 268 | | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
269 | 299 | | |
270 | 300 | | |
271 | 301 | | |
| |||
326 | 356 | | |
327 | 357 | | |
328 | 358 | | |
329 | | - | |
330 | | - | |
331 | | - | |
332 | | - | |
333 | | - | |
334 | 359 | | |
335 | 360 | | |
336 | 361 | | |
| |||
393 | 418 | | |
394 | 419 | | |
395 | 420 | | |
| 421 | + | |
| 422 | + | |
396 | 423 | | |
397 | | - | |
398 | | - | |
| 424 | + | |
399 | 425 | | |
400 | 426 | | |
401 | 427 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
765 | 765 | | |
766 | 766 | | |
767 | 767 | | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
| 781 | + | |
| 782 | + | |
| 783 | + | |
| 784 | + | |
| 785 | + | |
| 786 | + | |
| 787 | + | |
| 788 | + | |
| 789 | + | |
| 790 | + | |
| 791 | + | |
| 792 | + | |
| 793 | + | |
| 794 | + | |
| 795 | + | |
| 796 | + | |
| 797 | + | |
768 | 798 | | |
769 | 799 | | |
770 | 800 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
898 | 898 | | |
899 | 899 | | |
900 | 900 | | |
| 901 | + | |
| 902 | + | |
| 903 | + | |
| 904 | + | |
| 905 | + | |
| 906 | + | |
| 907 | + | |
| 908 | + | |
| 909 | + | |
| 910 | + | |
| 911 | + | |
| 912 | + | |
| 913 | + | |
| 914 | + | |
| 915 | + | |
| 916 | + | |
| 917 | + | |
| 918 | + | |
| 919 | + | |
| 920 | + | |
| 921 | + | |
| 922 | + | |
| 923 | + | |
0 commit comments