|Multi-dimensional cycle indices|
X:=Èi=1n Xi.Replacing in such a situation the cycle index of G acting on X by a so-called n-dimensional cycle index we get more information about the permutation representation of G. The n-dimensional cycle index which uses for each set Xi a separate family of indeterminates xi,1,xi,2,... is given by
Zn(G,X1È...ÈXn):=(1)/(|G|)ågÎG Õi=1n(Õj=1|Xi|xi,jai,j(g)),where (ai,1(g),...,ai,|Xi|(g)) is the cycle type of the permutation corresponding to g acting on Xi.
Let me give a short description how to handle polynomials with variables in several alphabets. In SYMMETRICA there is a routine which allows to multiply two polynomials in disjoint sets of indeterminates. The corresponding routine is called
INT mult_disjunkt_polynom_polynom(a,b,c) OP a,b,c;where
bare the two polynomials that should be multiplied.
cis the result. A POLYNOM object in SYMMETRICA consists of three parts:
ais evaluated. (Let this number be n.) Then for each monomial summand of
ait is tested, if its self-part is of length less than n, and if this is so, then this self-part is changed into a VECTOR object of length n and all the new entries are set to zero. Then the self part of each monomial summand of
bis appended to the self-part of
a(of length n), forming a new self-part of a monomial summand of
c. The corresponding coefficients of the monomials of
bare multiplied to get the new coefficient of this monomial.
In order to work with these polynomials in
two or more alphabets it is therefore
important to know how many variables are in the first alphabet, in the
second alphabet and so on.
Or in other words, we must keep in mind
at which index of the self-part of the monomial summands the
different alphabets start.
(The index where the i-th family starts, is the
number of variables which
have already occurred in the previous i-1 families.)
Using a vector of INTEGER objects, where for each
polynomial the position in the self-parts of the monomial summands is
indicated, where the new alphabet starts, gives the whole information.
For example consider two polynomials
in two different alphabets
a is a polynomial in xi and
b is a polynomial
in yi) where
a has n variables.
cto be a polynomial in two families of variables and the corresponding vector of starting points would be [0,n]. A monomial summand of
ccan be interpreted as
s_po_k(c) Õi=0n-1xi+1s_po_ii(c,i) Õi=ns_po_li(c)-1yi-n+1s_po_ii(c,i).For that reason a multi dimensional cycle index in SYMMETRICA consists of a VECTOR-part and a POLYNOMial-part, which can be selected by
OP s_mz_v(a) OP a!; OP s_mz_po(a) OP a;
select_multi-zykelind_vector, which selects the vector part of the multi-dimensional cycle index
a. The routine
select_multi-zykelind_polynom, which selects the polynomial part of the multi-dimensional cycle index
Furthermore there is
OP s_mz_vi(a,i) OP a; INT i;which selects the i-th entry (0£i) of the vector part of the multi-dimensional cycle index
INT s_mz_vii(a,i) OP a; INT i;you can select the i-th entry of the vector part of the multi-dimensional cycle index
aas an integer.
From a VECTOR part and a POLYNOM part of a multi-dimensional cycle index you can form the corresponding cycle index with
INT m_v_po_mz(v,po,zyk) OP v,po,zyk;It makes a multi-dimensional cycle index
zykfrom the POLYNOMial
powith the different alphabets starting at the position given in the VECTOR
zykmust be different.
From a multi-dimensional cycle index one can extract some of the families of indeterminates by
INT mz_extrahieren(a,b,c) OP a,b,c;where
ais a multi dimensional cycle index and
bis a VECTOR object. Its length tells how many families shall be combined into the new cycle index
c. The entries of
bare INTEGER objects. If for instance
ais a 6-dimensional cycle index and you want to extract the first and fifth family of indeterminates then
bwould be the VECTOR [1,5] of length 2. In the case you choose only one family to be extracted the result will be a
POLYNOMobject, otherwise it is a multi dimensional cycle index as described above.
For identifying different alphabets there is the routine
INT mz_vereinfachen(a,b) OP a,b;which computes from a multi dimensional cycle index
aa cycle index
bin only one alphabet.
|Multi-dimensional cycle indices|