Singular Manual: getLattice

| #### D.15.13.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

User manual for Singular version 4.4.1, 2025, generated by texi2html.