GaloisMat( mat )
mat must be a matrix of cyclotomics (or possibly unknowns, see Unknown). The conjugate of a row in mat under a particular Galois automorphism is defined pointwise. If mat consists of full orbits under this action then the Galois group of its entries acts on mat as a permutation group, otherwise the orbits must be completed before.
GaloisMat( mat )
returns a record with fields mat
, galoisfams
and generators
:
mat
:mat
have identical
entries.
galoisfams
:mat
; its entries are either
1, 0, -1 or lists:mat[i]
consists of rationals, i.e. [ 'mat[i]' ] forms an orbit.mat[i]
contains unknowns; in
this case [ 'mat[i]' ] is regarded as an orbit, too, even if
mat[i]
contains irrational entries.mat[i]
is the first element of its
orbit in mat
; l_1 is the list of positions of rows which
form the orbit, and l_2 is the list of corresponding Galois
automorphisms (as exponents, not as functions); so we have
'mat'[ l_1[j] ][k] = 'GaloisCyc'( 'mat'[i][k], l_2[j] ).mat[i]
is an element of a
nontrivial orbit but not the first element of it.
generators
:mat
.
Note that mat should be a set, i.e. no two rows should be equal. Otherwise only the first row of some equal rows is considered for the permutations, and a warning is printed.
gap> GaloisMat( [ [ E(3), E(4) ] ] ); rec( mat := [ [ E(3), E(4) ], [ E(3), -E(4) ], [ E(3)^2, E(4) ], [ E(3)^2, -E(4) ] ], galoisfams := [ [ [ 1, 2, 3, 4 ], [ 1, 7, 5, 11 ] ], 0, 0, 0 ], generators := [ (1,2)(3,4), (1,3)(2,4) ] ) gap> GaloisMat( [ [ 1, 1, 1 ], [ 1, E(3), E(3)^2 ] ] ); rec( mat := [ [ 1, 1, 1 ], [ 1, E(3), E(3)^2 ], [ 1, E(3)^2, E(3) ] ], galoisfams := [ 1, [ [ 2, 3 ], [ 1, 2 ] ], 0 ], generators := [ (2,3) ] )
GAP 3.4.4