# Singular

##### 7.7.15.0. weightedRing
Procedure from library `nctools.lib` (see nctools_lib).

Usage:
weightedRing(r); r a ring

Return:
ring

Purpose:
equip the variables of the given ring with weights such that the relations of new ring (with weighted variables) satisfies the ordering condition for G-algebras: e.g. \forall\;i<j\;\;lm_w(d_{ij})<_w x_i x_j.

Note:
activate this ring with the "setring" command

Example:
 ```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; ==> // characteristic : 0 ==> // 1 parameter : q ==> // minpoly : 0 ==> // 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 def t=weightedRing(S); setring t; t; ==> // characteristic : 0 ==> // 1 parameter : q ==> // minpoly : 0 ==> // number of vars : 4 ==> // block 1 : ordering M ==> // : names a b c d ==> // : weights 2 1 1 1 ==> // : weights 0 0 0 1 ==> // : weights 0 0 1 0 ==> // : weights 0 1 0 0 ==> // block 2 : ordering C ==> // noncommutative relations: ==> // ba=(q)*ab ==> // ca=(q)*ac ==> // da=ad+(q2-1)/(q)*bc ==> // db=(q)*bd ==> // dc=(q)*cd ```