# Singular          ### 7.3.24 ringlist (plural)

`Syntax:`
`ringlist (` ring_expression `)`
`ringlist (` qring_expression `)`
`Type:`
list
`Purpose:`
decomposes a ring/qring into a list of 6 (or 4 in the commutative case) components.
The first 4 components are common both for the commutative and for the non-commutative cases, the 5th and the 6th appear only in the non-commutative case.

1. upper triangle square matrix with nonzero upper triangle, containing structural coefficients of a G-algebra (this corresponds to the matrix C from the definition of G-algebras)
2. square matrix, containing structural polynomials of a G-algebra (this corresponds to the matrix D from the definition of G-algebras)
`Note:`
After modifying a list aquired with `ringlist`, one can construct a corresponding ring with `ring(list)`.
`Example:`
 ```// consider the quantized Weyl algebra ring r = (0,q),(x,d),Dp; def RS=nc_algebra(q,1); setring RS; RS; ==> // coefficients: QQ(q) ==> // number of vars : 2 ==> // block 1 : ordering Dp ==> // : names x d ==> // block 2 : ordering C ==> // noncommutative relations: ==> // dx=(q)*xd+1 list l = ringlist(RS); l; ==> : ==> : ==> 0 ==> : ==> : ==> q ==> : ==> : ==> : ==> lp ==> : ==> 1 ==> : ==> _=0 ==> : ==> : ==> x ==> : ==> d ==> : ==> : ==> : ==> Dp ==> : ==> 1,1 ==> : ==> : ==> C ==> : ==> 0 ==> : ==> _=0 ==> : ==> _[1,1]=0 ==> _[1,2]=(q) ==> _[2,1]=0 ==> _[2,2]=0 ==> : ==> _[1,1]=0 ==> _[1,2]=1 ==> _[2,1]=0 ==> _[2,2]=0 // now, change the relation d*x = q*x*d +1 // into the relation d*x=(q2+1)*x*d + q*d + 1 matrix S = l; // matrix of coefficients S[1,2] = q^2+1; l = S; matrix T = l; // matrix of polynomials T[1,2] = q*d+1; l = T; def rr = ring(l); setring rr; rr; ==> // coefficients: QQ(q) ==> // number of vars : 2 ==> // block 1 : ordering Dp ==> // : names x d ==> // block 2 : ordering C ==> // noncommutative relations: ==> // dx=(q2+1)*xd+(q)*d+1 ``` 