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

Reply via email to