Hi, this e-mail by Frank on libsingular-devel leads to the following question: do we want to set the random seed of Singular by default at Sage/Singular start- up? From what I gather from randstate.pyx we don't do that even for NTL.
I would vote for setting the random seed to all 'subsystems' by default by Sage's randstate whenever these 'subsystems' are initialised. Cheers, Martin ---------- Forwarded Message ---------- Subject: [libsingular-devel] Riemann-Roch computations in the Brill-Noether routines Date: Friday 30 October 2009 From: Frank Seelisch <seeli...@mathematik.uni-kl.de> To: libsingular-de...@googlegroups.com Hi everybody, this deals with the problem in SINGULAR's "brnoeth.lib" you have reported some time ago; see the below snippet from a mail from William Stein to David Joyner. As far as we understand correctly, the problem seems to be that SAGE wants to have stable results when calling this piece of SINGULAR code? But "brnoeth.lib" uses randomly chosen points; so there is some kind of indeterminacy in there. (I hope that is what your problem really is about.) We suggest to use a random seed, e.g., to pass on the random seed that you use in SAGE to SINGULAR. This can either be done via the SINGULAR command system("random", mySeedAsAnInt); or directly in C by assigning the SINGULAR-internal variable siseed = mySeedAsAnInt; When providing the random seed this way, SINGULAR will procude the same sequence of random numbers on all platforms. I hope this resolves your problem! Regards, Frank ========================================================================= Thanks for the Singular-ish version via evals. I wrote the following pure-Singular version, which you can put in a file "rrbasis.lib" and load into singular with < "rrbasis.lib"; (or you can just paste it in): LIB "brnoeth.lib"; kill X, X2,R,G,LG; ring R=11,(x,y),lp; list X = Adj_div(x^7 + y^7 - 1); def X2 = NSplaces(1,X); def X3 = extcurve(1,X2); def RR =X3[1][5]; setring RR; print("POINTS"); print(POINTS); /* PROBLEM -- this G defined a different divisor every time the this code is run!!! Need a way to compute G from a list of points */ intvec G=(10,-1,0,0,9,0,0,0,0,0,0,0,0,0); def R = X2[1][2]; setring R; list LG = BrillNoether(G,X2); print(LG); It gives random answers since the G has a different meaning every time the function is run. -- name: Martin Albrecht _pgp: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x8EF0DC99 _otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF _www: http://www.informatik.uni-bremen.de/~malb _jab: martinralbre...@jabber.ccc.de --~--~---------~--~----~------------~-------~--~----~ To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---