Dear Forum,
Michael Weller writes:
> I need to do some finite field matrix computations over GF(43) of high
> enough dimensions s.t. the compressed storage technique is absolutely
> needed. Alas, whenever I ConvertToMatrixRep or even ConvertToVectorRep
> I end up with a zero matrix/vector. This is the case for all machines and
> fields I tried. Even for GF(2) like in the example below:
[...]
> gap> test := [1,0,1,0,1];
> [ 1, 0, 1, 0, 1 ]
> gap> MakeImmutable(test);
> gap> ConvertToVectorRep(test, 2);
If you check the documentation on ConvertToVectorRep you see that
the elements of test must lie in GF(2).
`ConvertToVectorRep( <list> , <field> )' converts <list> to an internal
vector representation appropriate for a vector over <field>. It is
forbidden to call this function unless all elements of <list> lie in
<field>.
thus, you should do gap> test :=Z(2)* [1,0,1,0,1]; [ Z(2)^0, 0*Z(2), Z(2)^0, 0*Z(2), Z(2)^0 ] gap> ConvertToVectorRep(test, 2); 2 gap> Print(test); [ Z(2)^0, 0*Z(2), Z(2)^0, 0*Z(2), Z(2)^0 ]gap> gap> MakeImmutable(test); gap> test; <an immutable GF2 vector of length 5> gap> Print(test); [ Z(2)^0, 0*Z(2), Z(2)^0, 0*Z(2), Z(2)^0 ]gap>
I changed the order of calles to CovertToVectorRep and MakeImmutable,
as I'd be rather surprised that one can actually change an immutable object
(by calling ConvertToVectorRep)
HTH,
Dmitrii