Home Online Manual
Top
Back: getGradingGroup
Forward: createGroup
FastBack:
FastForward:
Up: multigrading_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.15.11.4 getLattice

Procedure from library multigrading.lib (see multigrading_lib).

Usage:
getLattice([R[,opt]])

Purpose:
get associated grading group matrix, i.e. generators (cols) of the grading group

Return:
intmat, the grading group matrix, or
its hermite normal form if an optional argument ("hermiteNormalForm") is given or smith normal form if an optional argument ("smith") is given

Example:
 
LIB "multigrading.lib";
ring R = 0, (x, y, z), dp;
// Weights of variables
intmat M[3][3] =
1, 0, 0,
0, 1, 0,
0, 0, 1;
// Torsion:
intmat L[3][2] =
1, 1,
1, 3,
1, 5;
// attaches M & L to R (==basering):
setBaseMultigrading(M, L); // Grading: Z^3/L
// Torsion is accessible via "getLattice()":
getLattice() == L;
==> 1
// its hermite NF:
print(getLattice("hermite"));
==>      1     0
==>      1     2
==>      1     4
kill L, M;
// ----------- isomorphic multigrading -------- //
// Weights of variables
intmat M[2][3] =
1, -2, 1,
1,  1, 0;
// Torsion:
intmat L[2][1] =
0,
2;
// attaches M & L to R (==basering):
setBaseMultigrading(M, L); // Grading: Z + (Z/2Z)
// Torsion is accessible via "getLattice()":
getLattice() == L;
==> 1
// its hermite NF:
print(getLattice("hermite"));
==>      0
==>      2
kill L, M;
// ----------- extreme case ------------ //
// Weights of variables
intmat M[1][3] =
1,  -1, 10;
// Torsion:
intmat L[1][1] =
0;
// attaches M & L to R (==basering):
setBaseMultigrading(M); // Grading: Z^3
// Torsion is accessible via "getLattice()":
getLattice() == L;
==> 1
// its hermite NF:
print(getLattice("hermite"));
==>      0