On Mon, Aug 10, 2009 at 2:18 PM, VictorMiller <victorsmil...@gmail.com>wrote:
> > divisor_of_function appears to be badly broken: > > E = EllipticCurve(j=1) > xx,yy,zz = E.coordinate_ring().gens() > E.divisor_of_function(yy) > > gives the output > > Type Error: "A positive bound (=0) must be specified. > > If I then do > > E0 = E.change_ring(GF(144169)) > xxx,yyy,zzz = E0.coordinate_ring().gens() > E0.divisor_of_function(yyy) > > just hangs up. > > Looking at projective_curve.py starting at line 74, shows a rather bad > algorithm: > > It has a loop that tries all rational points on the curve (which is > certainly disastrous for curves over > the rationals -- this appears to be the source of the first error -- > since bound=0 is the default > when calling E.rational_points()) and checks each one to see if it's a > 0 of the function which is the input. > > This is terrible on two counts: (1) It's just not correct, since the > function might have 0's or poles which are not at points defined over > the field of definition. (2) It's either very inefficient (over finite > fields), or might never end over infinite fields. It would seem much > better for it to reduce the problem to one of the zeros of a zero- > dimensional ideal (using Groebner in the most general case), which > essentially reduces to factorization of univariate polynomials. > I agree. For now we should completely remove the function though, since clearly what is there now is worse than nothing. William --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to sage-support-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-support URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---