|
D.15.21.2 truncateM
Procedure from library tateProdCplxNegGrad.lib (see tateProdCplxNegGrad_lib).
- Usage:
- truncateM(M,c); M module, c intvec
- Purpose:
- truncate M at c
- Assume:
M is multigraded S-module with S multigraded ring, c is an intvec of the right length
- Return:
- module, the truncated module M_{>= c}
- Note:
- Output is the truncated module (multigraded , grading is not shifted), works for arbitrary products
Example:
| LIB "tateProdCplxNegGrad.lib";
intvec c = 1,1,1;
def(S,E) = productOfProjectiveSpaces(c);
setring(S);
intmat grading[3][2] = 0,0,0,0,0,0;
module te = freemodule(2);
te = setModuleGrading(te,grading);
intvec c = 1,1,1;
==> // ** redefining c (intvec c = 1,1,1;) ./examples/truncateM.sing:8
module Mtrunc = truncateM(te,c);
Mtrunc;
==> Mtrunc[1]=x(0)(1)*x(1)(1)*x(2)(1)*gen(1)
==> Mtrunc[2]=x(0)(0)*x(1)(1)*x(2)(1)*gen(1)
==> Mtrunc[3]=x(0)(1)*x(1)(0)*x(2)(1)*gen(1)
==> Mtrunc[4]=x(0)(0)*x(1)(0)*x(2)(1)*gen(1)
==> Mtrunc[5]=x(0)(1)*x(1)(1)*x(2)(0)*gen(1)
==> Mtrunc[6]=x(0)(0)*x(1)(1)*x(2)(0)*gen(1)
==> Mtrunc[7]=x(0)(1)*x(1)(0)*x(2)(0)*gen(1)
==> Mtrunc[8]=x(0)(0)*x(1)(0)*x(2)(0)*gen(1)
==> Mtrunc[9]=x(0)(1)*x(1)(1)*x(2)(1)*gen(2)
==> Mtrunc[10]=x(0)(0)*x(1)(1)*x(2)(1)*gen(2)
==> Mtrunc[11]=x(0)(1)*x(1)(0)*x(2)(1)*gen(2)
==> Mtrunc[12]=x(0)(0)*x(1)(0)*x(2)(1)*gen(2)
==> Mtrunc[13]=x(0)(1)*x(1)(1)*x(2)(0)*gen(2)
==> Mtrunc[14]=x(0)(0)*x(1)(1)*x(2)(0)*gen(2)
==> Mtrunc[15]=x(0)(1)*x(1)(0)*x(2)(0)*gen(2)
==> Mtrunc[16]=x(0)(0)*x(1)(0)*x(2)(0)*gen(2)
getModuleGrading(Mtrunc);
==> 0,0,
==> 0,0,
==> 0,0
multiDeg(Mtrunc);
==> 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
==> 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
==> 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
|