#3416: Weierstrass form and Jacobian for cubics and certain other genus-one 
curves
------------------------------------------------------------------------------+
       Reporter:  moretti                                                     | 
        Owner:  was                                   
           Type:  enhancement                                                 | 
       Status:  needs_review                          
       Priority:  major                                                       | 
    Milestone:  sage-5.7                              
      Component:  elliptic curves                                             | 
   Resolution:                                        
       Keywords:  nagell, weierstrass, cubic, elliptic curves, editor_wstein  | 
  Work issues:                                        
Report Upstream:  N/A                                                         | 
    Reviewers:  John Cremona, Marco Streng, Nils Bruin
        Authors:  Niels Duif, Volker Braun                                    | 
    Merged in:                                        
   Dependencies:  #12553, #13084, #13458                                      | 
     Stopgaps:                                        
------------------------------------------------------------------------------+

Comment (by was):

 Another possibility (which is easy in Python) is to enhance objects with
 extra structure. For example,

 {{{
 sage: K.<a,b> = NumberField([x^2+1,x^3-2]); K
 Number Field in a with defining polynomial x^2 + 1 over its base field
 sage: L.<c> = K.absolute_field(); L
 Number Field in c with defining polynomial x^6 + 3*x^4 + 4*x^3 + 3*x^2 -
 12*x + 5
 sage: L.structure()
 (Isomorphism map:
   From: Number Field in c with defining polynomial x^6 + 3*x^4 + 4*x^3 +
 3*x^2 - 12*x + 5
   To:   Number Field in a with defining polynomial x^2 + 1 over its base
 field, Isomorphism map:
   From: Number Field in a with defining polynomial x^2 + 1 over its base
 field
   To:   Number Field in c with defining polynomial x^6 + 3*x^4 + 4*x^3 +
 3*x^2 - 12*x + 5)
 }}}

 In our case, we could do:
 {{{
 sage: E = EllipticCurve_from_cubic(x^3+y^3+z^3, [1,0,-1])
 sage: E.extra_defining_data()
 {'cubic':x^3+y^3+z^3, 'morphism':..., 'point':[1,0,-1]}
 }}}

 If the morphism gets computed, it's there; if it doesn't get computed, it
 isn't.
 Whether or not it gets computed can be determined as you suggest
 {{{
 E = EllipticCurve_from_cubic(x^3+y^3+z^3, [1,0,-1], morphism=False)
 }}}
 BUT the input does not impact the return type -- you get an elliptic curve
 no matter what.

 I not sure I agree with the assertion that people/algorithms will always
 compute the morphism.  There are alternative algorithms for computing the
 jacobian of a genus 1 curve that give the Jacobian without giving the
 morphism -- one involves computing the a_p and doing a search for curves
 with those a_p, and another involves "Fermionic Fock Spaces" (I think).

 To me the above proposal fits better with how one thinks in mathematics;
 when you construct one object from another, you might as well remember you
 did so, and take advantage of it.

 Another possibility would be to add a "jacobian_structure()" method to
 elliptic curves, which usually returns the identity map E-->E, but in the
 above case, returns a morphism X-->E.  More generally, it could return a
 simply transitive group-object, i.e., a map E x X --> X, but that's
 getting complicated.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/3416#comment:62>
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?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to