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

Reply via email to