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

D.15.17.1 setBaseMultigrading

Procedure from library multigrading.lib (see multigrading_lib).

Usage:
setBaseMultigrading(M[, G]); M is an integer matrix, G is a group (or lattice)

Purpose:
attaches weights of variables and grading group to the basering.

Note:
M encodes the weights of variables column-wise.

Return:
nothing

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;
// GradingGroup:
intmat L[3][2] =
1, 1,
1, 3,
1, 5;
// attaches M & L to R (==basering):
setBaseMultigrading(M, L); // Grading: Z^3/L
// Weights are accessible via "getVariableWeights()":
getVariableWeights();
==> 1,0,0,
==> 0,1,0,
==> 0,0,1 
// Test all possible usages:
(getVariableWeights() == M) && (getVariableWeights(R) == M) && (getVariableWeights(basering) == M);
==> 1
// Grading group is accessible via "getLattice()":
getLattice();
==> 1,1,
==> 1,3,
==> 1,5 
// Test all possible usages:
(getLattice() == L) && (getLattice(R) == L) && (getLattice(basering) == L);
==> 1
// And its hermite NF via getLattice("hermite"):
getLattice("hermite");
==> 1,0,
==> 1,2,
==> 1,4 
// Test all possible usages:
intmat H = hermiteNormalForm(L);
(getLattice("hermite") == H) && (getLattice(R, "hermite") == H) && (getLattice(basering, "hermite") == H);
==> 1
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)
// Weights are accessible via "getVariableWeights()":
getVariableWeights() == M;
==> 1
// Torsion is accessible via "getLattice()":
getLattice() == L;
==> 1
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
// Weights are accessible via "getVariableWeights()":
getVariableWeights() == M;
==> 1
// Torsion is accessible via "getLattice()":
getLattice() == L;
==> 1