> < ^ From:

< ^ Subject:

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

> < [top]