#11474: Elliptic curves should be unique parent structures
-------------------------------------+-------------------------------------
       Reporter:  SimonKing          |        Owner:  cremona
           Type:  defect             |       Status:  needs_info
       Priority:  major              |    Milestone:  sage-6.3
      Component:  elliptic curves    |   Resolution:
       Keywords:  unique parent      |    Merged in:
        Authors:  Simon King         |    Reviewers:
Report Upstream:  N/A                |  Work issues:
         Branch:                     |       Commit:
  u/defeo/ticket/11474               |  8cbb73e266096e02efc917545aab36d067b7e063
   Dependencies:                     |     Stopgaps:
-------------------------------------+-------------------------------------

Comment (by pbruin):

 Replying to [comment:33 cremona]:
 > Thanks.  We need to reach a conclusion while there are other "needs
 review" tickets claiming to depend on this.  I used to know what that
 meant, but now... it may or may not mean that the branches asking for
 review include the unreviewed commits here.  For example #12880.
 I think the other tickets depend on this one in the sense that they need
 elliptic curves to be unique parents, not in the sense that they already
 include commits that belong to this ticket.

 In my opinion we should definitely make elliptic curves unique parents.
 The question is whether we should use `UniqueRepresentation` or
 `UniqueFactory` (or a custom cache, but I don't see why that would be
 needed).  I would personally prefer a `UniqueFactory`, mostly because I
 think it is more natural and uses less black magic than
 `UniqueRepresentation` + `__classcall__`, and hence will be easier to
 understand/extend for other developers.

 The idea is that the `UniqueFactory` is the place where we do all the work
 related to converting various input data into the 5-tuple of
 ''a''-coefficients.  There are ''many'' possible input data, for example:
 - ''a''-coefficients
 - base ring + ''a''-coefficients
 - ''c''-coefficients
 - Cremona label
 - base ring + Cremona label
 - ''j''-invariant
 The logic of converting any of these input data into ''a''-coefficients is
 very similar for the various base rings, so it seems best to do it all in
 one place.  I imagine that the future `UniqueFactory` would do the work of
 the current (user-level) function
 `sage.schemes.elliptic_curves.EllipticCurve` plus the handling of Cremona
 labels, which is currently duplicated [triplicated?] in
 `EllipticCurve_rational_field`, `EllipticCurve_number_field` and
 `EllipticCurve_padic_field`.

 Of course, whoever implements this in the end has to make the choice how
 to do it.  Unfortunately I am currently a bit too busy with some research
 things and don't have a lot of time for it at the moment.

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