I should mention that CoCoALib has excellent support for computing Hilbert series of monomial ideals, possibly at this time better than that in Frobby. Indeed, CoCoALib is known for having the best implementation of Bigatti Et.Al.'s algorithm anywhere (not so strange since Anna Bigatti wrote the CoCoALib implementation). The slice-based algorithm in Frobby is new, and certainly not slow, but I haven't done proper benchmarks yet, and it may not come out on top. In any case I'll also be implementing Bigatti Et.Al.'s algorithm in Frobby to be able to make an as fair as possible comparison in my paper on the new algorithm.
Singular does do weighed Hilbert series, which is what I actually need. It doesn't do multigraded Hilbert series, which is where each variable is graded by a vector rather than just a single number. Frobby does do this, but as I said I don't actually need that at this time. However, the implementation in Singular has issues. For one thing Singular has only 32-bit signed exponents, which can wrap without a warning. In the example below, it even wraps at 16 bits for some reason: > ring r = 0, (a,b,c), lp; > ((a^100))^1000; a34464 Here 34464 is 10^5 - 2^16. Singular does do weighed Hilbert series, but it uses a dense representation and I haven't found a way to change it to sparse: > ring r = 0, x, lp; > ideal I=x^100; > hilb(I, 1); 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0 The Hilbert series can be made to be wrong with no warning, probably due to wrapping of exponents: > ring r = 0, x, lp; > ideal I = x^(2^30); > intvec d = 2^30; > hilb(I, 1, d); 0,0 What I'm doing above is to use a weight vector giving the variable x a weight of 2^30. It can also be made to crash: > ring r = 0, (a,b,c), lp; > ideal I = a*b, b*c, c*a100; > intvec d=100,100,2^30; > hilb(I, 1, d); // ** I is no standard basis Singular : signal 11 (v: 3044/2009062302): Segment fault/Bus error occurred (r:1246190151) please inform the authors trying to restart... This is all on the Singular that comes with Sage 4.0.1, on Mac OS 10.5: sage: singular_console() SINGULAR / Development A Computer Algebra System for Polynomial Computations / version 3-0-4 0< by: G.-M. Greuel, G. Pfister, H. Schoenemann \ Nov 2007 FB Mathematik der Universitaet, D-67653 Kaiserslautern \ The documentation for Hilbert-Poincare series in Singular is at http://www.singular.uni-kl.de/Manual/3-0-4/sing_212.htm http://www.singular.uni-kl.de/Manual/3-0-4/sing_597.htm I'm going to report this to the Singular team, so some or all of it may be fixed at some point. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---