#11095: Add BMSS algorithm for isogenies of elliptic curves
-------------------------------------+-------------------------------------
       Reporter:  defeo              |        Owner:  cremona
           Type:  enhancement        |       Status:  needs_review
       Priority:  minor              |    Milestone:  sage-6.3
      Component:  elliptic curves    |   Resolution:
       Keywords:  isogenies ecc2011  |    Merged in:
        Authors:  Luca De Feo        |    Reviewers:  John Cremona, Marco
Report Upstream:  N/A                |  Streng
         Branch:                     |  Work issues:
  public/ticket/11095                |       Commit:
   Dependencies:                     |  825710898d20ba257240bd3cbb45f9c194cb6c01
                                     |     Stopgaps:
-------------------------------------+-------------------------------------

Comment (by pbruin):

 I've been experimenting a bit and it seems to work well.  Would it be
 possible to make `EllipticCurve.isogeny()` and `EllipticCurveIsogeny`
 accept `algorithm='bmss'`?  In the following example I wanted to compute a
 20-isogeny between two elliptic curves over a quadratic field (knowing a
 priori that such an isogeny exists).  Trying `E.isogeny()` gives a
 `NotImplementedError` and it seems that I have to import `isogeny_kernel`:
 {{{
 sage: K.<a> = NumberField(x^2 - 17*x - 120)
 sage: E = EllipticCurve([0, 1, 0, -89423170640*a + 1999987182576,
 87486176701141216*a - 1956665490639249900])
 sage: E_isog = EllipticCurve([0, 0, 0, 1/3*(6255584200920576*a -
 139908796923911440), 1/27*(-5210907833850999276681216*a +
 116544166379886781944583040)])
 sage: E.isogeny(kernel=None, codomain=E_isog, degree=20)
 ...
 NotImplementedError: For basic Kohel's algorithm, if the kernel degree is
 even then the kernel must be contained in the two torsion.
 sage: from sage.schemes.elliptic_curves.isogeny_char_zero import
 isogeny_kernel
 sage: isogeny_kernel(E, E_isog, 20)
 x^10 + (-2152280*a + 48136659)*x^9 + (-148051244547864/5*a +
 3311228950404238/5)*x^8 + (-129467694651804753040*a +
 2895599965960126731024)*x^7 + (-131438756167338709694710304*a +
 2939683593714796730731625088)*x^6 + (196151384137228169247793952562368*a -
 4387008996787386307912516668742368)*x^5 +
 (211127593344837320952211060140401067136*a -
 4721958274971357551356075375634080673472)*x^4 +
 (-676089273725371340027412364537916253836377856/5*a +
 15121023690506428142245429629695675550575584512/5)*x^3 +
 (-58033791954670621184885097803503676816467494405632*a +
 1297950399599077493253508317741911096974395766973184)*x^2 +
 (26614381917191620756309912883562400685500952121788824576*a -
 595241952679626281929246822605533328842111805768309632256)*x +
 665314371570672918992258944764049661423822960574864980480000*a -
 14880038428536031844363469294864157021058877011246176591280640
 }}}
 By the way, in this example Stark's algorithm fails; I haven't checked
 exactly why.
 {{{
 sage: isogeny_kernel(E, E_isog, 20, algorithm='stark')
 ...
 RuntimeError: Stark's algorithm returned an unexpected result. Please
 report this bug.
 }}}

--
Ticket URL: <http://trac.sagemath.org/ticket/11095#comment:36>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to