#5976: [with patch; needs work] Add an Elliptic Curve Isogeny object
---------------------------+------------------------------------------------
 Reporter:  shumow         |       Owner:  shumow         
     Type:  enhancement    |      Status:  assigned       
 Priority:  major          |   Milestone:  sage-4.0.1     
Component:  number theory  |    Keywords:  Elliptic Curves
---------------------------+------------------------------------------------

Comment(by shumow):

 Replying to [comment:25 cremona]:
 > Replying to [comment:24 cremona]:
 > > This is certainly coming along nicely.  To allow people (e.g. me) to
 play with it, it would be nice to add a member function to the class
 EllipticCurve_field (in ell_field.py) called isogeny so that one could do
 E.isogeny(args) instead of EllipticCurveIsogeny(E, args).
 >

 Thank you!  Will do.

 > PS I could not get isogeny_v2.patch to apply.  Is it supposed to replace
 the previous twp patches (as I assumed)?

 Hmm, yeah, I created the patch with 3.4, so I'm guessing that the patch is
 trying to jump too many versions at once.  Because most of everything in
 this change is in one new file, I can fairly easily update to the newest
 version, and recreate a patch.  But in general, is there an easy way to
 counter this type of patch rot?  I have heard other sage devs talking
 about "rebasing patches."  Is this what they are talking about?


 Also, when I release the fixed patch.  I have a few changes in the code
 that will improve things.  I might as well get your feedback on the ideas
 now.  As we discussed the isogenies (with specified kernel) are only
 specified upto a factor of +/-1, so that we have a problem if we want to
 create the multiplication_by_m isogeny (for example.)  Because it would be
 nice to easily switch between the two, I have added a few new member
 functions:

 set_post_isomorphism(isomorphism):
 post composes the isogeny object with WeierstrassIsomorphism isomorphism

 switch_sign():
 calls post compose with the weierstrass isomorphism (x,-y)

 Also, I made it so that the unary operator -phi is defined, basically it
 deep copies phi, then calls switch_sign() on the copy, and returns it.

 This seems to me like the best way to overcome the fact that the
 isomorphism is only defined up to +/-1 factor, while balancing people
 actually wanting to compute something specific.  Your thoughts?

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