[GAP Forum] matrix realization over prime field
Frank Lübeck
frank.luebeck at math.rwth-aachen.de
Thu Oct 24 02:55:50 BST 2019
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 at 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.Luebeck at Math.RWTH-Aachen.De
\\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/
More information about the Forum
mailing list