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

 Replying to [comment:26 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?

 Yes, precisely.  It should be pretty easy as you are mainly creating a new
 file.  It's just the changes to other files which will need to be redone
 if they have changed.

 >
 >
 > 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)
 >

 Good (except:  (x, -y-a1*x-a3) :)

 > 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?

 That sounds good.  Pedantically one might want to post-compose with other
 autmorphisms (when j=0 or j=1728 and ...) but I cannot quote imagine
 needing that.  If there was the possibility to compose with any W. iso.
 that would be useful perhaps.

 Don't worry about doing everything now -- let's get something working (as
 you have) and  let people use it!

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