Skip to content

more opportunistic caching of elliptic-curve and point orders #34732

@yyyyx4

Description

@yyyyx4

This is a follow-up to #32786 with the following changes:

  • Copy curve orders between domain and codomain for all EllipticCurveHom instances of nonzero degree, rather than (previously) just EllipticCurveIsogeny objects.
  • Copy point orders when pushing a point through an isomorphism.
  • Copy point orders when pushing a point through an isogeny of degree coprime to the point order.
  • Rearrange some computations in the √élu code (√élu algorithm: asymptotically faster elliptic-curve isogenies #34303, add missing EllipticCurveHom methods to √élu isogenies #34614) to make (better) use of cached orders; in particular, this unbreaks the use of .set_order() on the kernel point prior to passing it to EllipticCurveHom_velusqrt. [Thanks to Jonathan Komada Eriksen for reporting this last issue.]

CC: @defeo @JohnCremona @tscrim

Component: elliptic curves

Author: Lorenz Panny

Branch/Commit: 7962944

Reviewer: Travis Scrimshaw

Issue created by migration from https://trac.sagemath.org/ticket/34732

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions