On Jun 10, 2008, at 10:34 AM, John Cremona wrote:
> Problem/question 2: looking at the code in ell_generic.py I find that > there are now *3* different implementations of division polys of > various kinds. > > (1) E.division_pol = E.torsion_pol is by David Kohel (2005-04-25) and > returns a polynomial in x alone, with a factor of the 2-division poly > in x when m is even. > (2) E.full_division_pol is William's new code (which can be asked to > call the preceding when m is odd) which returns a polynomial in x and > y, i.e. in the 2-variable poly ring over K, which happens to be of the > form p(x) or y*p(x) where p is a poly in x alone (but belonging to > K[x,y]). > (3) There is code which is all commented out due to David Harvey > (2006-09-24) consisting of 3 functions pseudo_torsion_polynomial(), > multiple_x_numerator(() and multiple_x_denominator(). The first is > the same as before for odd m but for even m just omits the factor of > the 2-division poly. I like this implementation: it uses a cache, > and also the user supplies their own 'x' which need not be an > indeterminate. This is *very* useful since it is expensive to compute > (say) the 10th division poly as a polynomial and then substitute > avalue for x, it is much faster to evaluate as you go along. The last > two give the numerator and denominator of the x-coordinate of m*P, > i.e. of the first rational function returned by William's > multiplication_by_m(). [By the way, it is easy to get the > y-coordinate from the x-coordinate: if the x-coord is X(x) then the > y-coord is c*y*X'(x) where c is a constant. I think the constant is m > in this case (look at the invariant differential). > > Does anyone know why those three functions are commented out? > William, why did you write your own new functions instead of using > these? Can we try to clean all this up once and for all? Would you > trust me to do this? I can't remember why they are commented out. However I should mention that there is yet *another* implementation of something very similar, see sage.schemes.elliptic_curves.padics, the function _multiply_point(). david --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---