#5890: [with patch, woth positive review] clean up
schemes/elliptic_curves/ell_generic.py
---------------------------+------------------------------------------------
 Reporter:  AlexGhitza     |       Owner:  AlexGhitza          
     Type:  defect         |      Status:  assigned            
 Priority:  major          |   Milestone:  sage-4.0            
Component:  number theory  |    Keywords:  elliptic curve field
---------------------------+------------------------------------------------

Comment(by cremona):

 Review: first of all, this is just moving code around, all perfectly
 sensible (lots of stuff moved down from ell_generic to ell_field, and
 Hasse_bound function moved off to plane curves (where I should have put it
 in the first place).

 I applied first 12097.patch (from #5919) then trac_5765-rebased.patch
 (from #5765) and then trac_5890.patch (from here), all successfully.

 Doctests in schemes/plane_curves and schemes/elliptic_curves pass.  I will
 give this a positive review, despite the following, which will make it
 harder to do EC factoring (but the fault lies not in the patch here,
 rather in moving the test for a point lying on a curve which is now more
 sophisticated to harder to fool.... but that is not for this ticket to
 sort out.

 The example
 {{{
 N = 1001
 R = Zmod(N)
 R.is_field = lambda: True
 E = EllipticCurve(R, [-1,0])
 }}}
 works but you cannot construct a point in the curve (e.g. E(0,0)) since
 this happens:
 {{{
 sage: P = E(0,0)
 ---------------------------------------------------------------------------
 NotImplementedError                       Traceback (most recent call
 last)

 /home/masgaj/.sage/temp/host_56_150/32116/_home_masgaj__sage_init_sage_0.py
 in <module>()

 /local/jec/sage-3.4.2.alpha0/local/lib/python2.5/site-
 packages/sage/schemes/elliptic_curves/ell_generic.pyc in __call__(self,
 *args, **kwds)
     609                 args = tuple(args[0])
     610
 --> 611         return plane_curve.ProjectiveCurve_generic.__call__(self,
 *args, **kwds)
     612
     613     def _reduce_point(self, R, p):

 /local/jec/sage-3.4.2.alpha0/local/lib/python2.5/site-
 packages/sage/schemes/generic/scheme.pyc in __call__(self, *args)
     196                 else:
     197                     return self.point(S)
 --> 198         return self.point(args)
     199
     200     def point_homset(self, S = None):

 /local/jec/sage-3.4.2.alpha0/local/lib/python2.5/site-
 packages/sage/schemes/generic/scheme.pyc in point(self, v, check)
     230
     231     def point(self, v, check=True):
 --> 232         return self._point_class(self, v, check=check)
     233
     234     def _point_class(self):

 /local/jec/sage-3.4.2.alpha0/local/lib/python2.5/site-
 packages/sage/schemes/generic/morphism.pyc in __init__(self, X, v, check)
     415     """
     416     def __init__(self, X, v, check=True):
 --> 417         raise NotImplementedError
     418
     419

 NotImplementedError:
 }}}

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/5890#comment:5>
Sage <http://sagemath.org/>
Sage - Open Source Mathematical Software: Building the Car Instead of 
Reinventing the Wheel

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to