Dear Evgeny, dear Forum, I have written such a function for a demo. It is maybe not very elegant or optimized but seems to work:
# write elements of GF(q^d) as dxd-matrices over GF(q) MatricesFieldElts := function(q, d) local f, bas, basv, z, zmat, res, i; f := GF(GF(q), d); bas := Basis(f); basv := BasisVectors(bas); z := Z(q^d); zmat := List(basv*z, x-> Coefficients(bas, x)); for i in zmat do ConvertToVectorRep(i, q); od; MakeImmutable(zmat); ConvertToMatrixRep(zmat, q); res := [zmat^0]; for i in [1..q^d-2] do res[i+1] := res[i] * zmat; od; res[q^d] := NullMat(d, d, GF(q)); return res; end; # blow up GF(q^d)-matrix over subfield of size q and degree d BlowUpMatrixOverSmallField := function(mat, q, d) local flist, z, f, tmp; flist := MatricesFieldElts(q, d); z := Z(q^d); f := function(c) if IsZero(c) then return flist[q^d]; fi; return flist[LogFFE(c, z)+1]; end; tmp := List(mat, r-> List(r, f)); tmp := Concatenation(List(tmp, r-> List([1..d], i-> Concatenation( List(r, m-> m[i]))))); ConvertToMatrixRep(tmp, q); return tmp; end; gap> A := [ [ Z(2^2), 0*Z(2) ], [ 0*Z(2), Z(2)^0 ] ];; gap> AA := BlowUpMatrixOverSmallField(A, 2, 2); <a 4x4 matrix over GF2> gap> Display(AA); . 1 . . 1 1 . . . . 1 . . . . 1 Best regards, Frank On Thu, Oct 24, 2019 at 08:20:31AM +0700, Evgeny Vdovin wrote: > Dear all, > > Could you give me an idea, how could I realize the following procedure: > > Let A be a n*n matrix over a non-prime field GF(p^k) (say, A in GL(2,4)). I > need to generate matrix B of size nk*nk over GF(p) such that each k*k block > in it is an element in GF(p^k) realized as k*k matrices over GF(p) and the > element corresponds to an element of A. > > For example, if > A = > [ > [Z(2^2),0*Z(2^2)], > [0*Z(2^2),Z(2^2)^(-0)] > ] > and > Z(2^2) = > [ > [a,b], > [c,d] > ]; > Z(2^2)^(-1)= > [ > [x,y], > [z,t] > ], > then > B= > [ > [a,b,0*Z(2),0*Z(2)], > [c,d,0*Z(2),0*Z(2)], > [0*Z(2),0*Z(2),x,y], > [0*Z(2),0*Z(2),z,t] > ]. > > All the best, Evgeny. > > -- > Evgeny Vdovin > Sobolev Institute of Mathematics > pr-t Acad. Koptyug, 4 > 630090, Novosibirsk, Russia > Office +7 383 3297663 > Fax +7 383 3332598 > _______________________________________________ > Forum mailing list > Forum@gap-system.org > https://mail.gap-system.org/mailman/listinfo/forum -- /// Dr. Frank Lübeck, Lehrstuhl D für Mathematik, Pontdriesch 14/16, \\\ 52062 Aachen, Germany /// E-mail: frank.lueb...@math.rwth-aachen.de \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ _______________________________________________ Forum mailing list Forum@gap-system.org https://mail.gap-system.org/mailman/listinfo/forum