up previous next
the Hilbert-Poincare series
HilbertSeriesShifts(M: MODULE, ShiftsList: LIST):TAGGED("$hp.PSeries")
HilbertSeriesShifts(M: TAGGED("Quotient"), ShiftsList: LIST)
:TAGGED("$hp.PSeries")
|
This function computes the Hilbert-Poincare series
(single-graded) module
M
with shifts
sh
.
This function is only a handy shortcut to avoid creating the proper
free module with shifts
sh
.
NOTE: functions producing tagged objects cannot safely be compared
for equality with other values.
For more information, see the article: A.M. Bigatti, "Computations of
Hilbert-Poincare Series" J. Pure Appl. Algebra, 119/3 (1997),
237--253.
/**/ Use P ::= QQ[x,y,z];
/**/ F := NewFreeModule(P, ColMat([2,0])); -- P(-2) (+) P(0)
/**/ M := SubmoduleRows(F, mat([[x,y^3], [x-z,0]]));
/**/ HilbertSeries(M);
(2*t^3) / (1-t)^3
/**/ HilbertSeriesShifts(M, [3,1]);
(2*t^4) / (1-t)^3
|