|  |  7.5.20.0. Gweights Procedure from librarynctools.lib(see  nctools_lib).
 
Example:Usage:
Gweights(r); r a ring or a square matrix
Return:
intvec
Purpose:
compute an appropriate weight int vector for a G-algebra, i.e., such that
\foral\;i<j\;\;lm_w(d_{ij}) <_w x_i x_j.
the polynomials d_{ij} are taken from r itself, if it is of the type ring
 or defined by the given square polynomial matrix
 
Theory:
Gweightsreturns an integer vector, whose weighting should be used to redefine the G-algebra in order
to get the same non-commutative structure w.r.t. a weighted ordering. If the input is a matrix and the output is the zero
vector then there is not a G-algebra structure associated to these relations with respect to the given variables.Another possibility is to use
 weightedRingto obtain directly a G-algebra with the new appropriate (weighted) ordering.
 See also:
 weightedRing.|  | LIB "nctools.lib";
ring r = (0,q),(a,b,c,d),lp;
matrix C[4][4];
C[1,2]=q; C[1,3]=q; C[1,4]=1; C[2,3]=1; C[2,4]=q; C[3,4]=q;
matrix D[4][4];
D[1,4]=(q-1/q)*b*c;
def S = nc_algebra(C,D); setring S; S;
==> // coefficients: QQ(q) considered as a field
==> // number of vars : 4
==> //        block   1 : ordering lp
==> //                  : names    a b c d
==> //        block   2 : ordering C
==> // noncommutative relations:
==> //    ba=(q)*ab
==> //    ca=(q)*ac
==> //    da=ad+(q2-1)/(q)*bc
==> //    db=(q)*bd
==> //    dc=(q)*cd
Gweights(S);
==> 2,1,1,1
def D=fetch(r,D);
Gweights(D);
==> 2,1,1,1
 | 
 
 |