#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 nbruin):

 Replying to [comment:62 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)
 > }}}
 Aren't elliptic curves parents as well? That means they're unique. That
 makes it difficult to hang such information off them, because it means
 that all this structure information must be part of the constructor input.

 The natural implementation of a lot of these constructors would be via a
 factory function that will punt to `EllipticCurve([a1,a2,a3,a4,a6])` to
 actually create the elliptic curve, so at the moment of "unique
 instantiation" the extra data isn't naturally available.

 You can't go scribbling into fields on this elliptic curve because you
 risk overwriting information another constructor has already put there and
 which might still be relied upon elsewhere in the code.

 I'm starting to doubt that having unique parents is such a good design
 decision. Making one of the most complex objects in your system immutable
 complicates a lot of things.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/3416#comment:64>
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