On Fri, Jul 17, 2009 at 6:35 AM, David Joyner<wdjoy...@gmail.com> wrote: > > On Fri, Jul 17, 2009 at 9:13 AM, David Joyner<wdjoy...@gmail.com> wrote: >> On Thu, Jul 16, 2009 at 5:19 AM, Martin >> Albrecht<m...@informatik.uni-bremen.de> wrote: >>> >>> On Thursday 16 July 2009, David Joyner wrote: >>>> On Wed, Jul 15, 2009 at 7:31 PM, Kiran Kedlaya<ksk...@gmail.com> wrote: >>>> > One pet complaint that you might bring up with the Singular team: I >>>> >>>> Speaking of pet complaints, can you ask if they will at some point fix >>>> the bugs in the Riemann-Roch computations in the Brill-Noether routines? >>>> To be honest, I have not checked them recently but as of a few years >>>> ago they were unreliable. The Sage module sage/coding/ag_codes.py >>>> (from 2006) is waiting for some Singular routines to be fixed I think. >>>> I do not know of an open source correct and functional implementation of >>>> any general algorithm to compute a basis for a Riemann-Roch space >>>> of a curve over a finite field. >>> >>> Hi David, >>> >>> this is now >>> >>> http://www.singular.uni-kl.de:8002/trac/ticket/153 >>> >>> Would you mind giving concrete examples there? >> >> >> Thanks for creating it. >> >> I've looked through my emails from 2006 and cannot find a trace of the >> examples I had then. I vaguely remember a certain example which would
This is in the Sage source code project_curve.py file: The following example illustrates that the Riemann-Roch space function in Singular doesn't *not* work correctly. :: sage: R.<x,y,z> = GF(5)[] sage: f = x^7 + y^7 + z^7 sage: C = Curve(f); pts = C.rational_points() sage: D = C.divisor([ (3, pts[0]), (-1,pts[1]), (10, pts[5]) ]) sage: C.riemann_roch_basis(D) # output is random (!!!!) [x/(y + x), (z + y)/(y + x)] The answer has dimension 2 (confirmed via Magma). But it varies between 1 and quite large with Singular. When I run this today it consistently gives the same number of basis elements: sage: len(C.riemann_roch_basis(D) ) 48 sage: len(C.riemann_roch_basis(D) ) 48 sage: len(C.riemann_roch_basis(D) ) 48 I don't know why it always gives 48 now, which is very wrong, since the output should have length 2. At least the length isn't random now. The output still is (but this is OK given the problem): sage: v = C.riemann_roch_basis(D) sage: w = C.riemann_roch_basis(D) sage: set(v) == set(w) False sage: len(v) 48 sage: len(w) 48 -- William --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to sage-devel-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---