Macaulay 2 can do multigraded Hilbert series. Let's first assume that you have a presentation of your multigraded ring. I'll mention how to calculate this below. So for your $S = k[ac,ad,bc,bd]$, we'll write it as $S = k[x,y,z,w] / (xz - yw)$.
Assuming that each of $a,b,c,d$ has its own degree direction (so the grading is by ${bf Z}^4$), we input $k[x,y,z,w]$ as
S = QQ[x,y,z,w, Degrees=> {{1,0,1,0}, {1,0,0,1}, {0,1,1,0}, {0,1,0,1}}]
where here QQ means the rationals. Then we want the Hilbert series of the ideal $(xz - yw)$, so we put
i8 : hilbertSeries ideal(y*z-x*w)
and the answer is:
1 - T T T T
0 1 2 3
o8 = ----------------------------------------
(1 - T T )(1 - T T )(1 - T T )(1 - T T )
1 3 1 2 0 3 0 2
If you also need to get the presentation, we can do this as follows. First, download normaliz:
http://www.mathematik.uni-osnabrueck.de/normaliz/
and the Macaulay 2 interface to normaliz (I think this is automatically there in Macaulay 2 1.3.1):
http://www.math.uiuc.edu/Macaulay2/doc/Macaulay2-1.2/share/doc/Macaulay2/Normaliz/html/
After loading the package with
loadPackage "Normaliz"
Set the path to normaliz in Macaulay 2 using the command
setNmzExecPath("path to the executables norm32 and norm64");
The torusInvariants command will give you generators for the subring of invariants. Finally, we can use the ringmap command to define a surjection from a polynomial ring onto the subring to get the desired ideal.
No comments:
Post a Comment