[GAP Forum] Orbit of group action on matrices

Benjamin Sambale bsambale at gmx.de
Sat Sep 25 19:14:03 BST 2010


  Am 25.09.2010 10:59, schrieb Burkhard Höfling:
> On 25/09/2010, at 8:36 , Benjamin Sambale wrote:
>
>> Dear Forum,
>>
>> I've defined an action of a permutation group on a set of square matrices in the following way:
>>
>> act:=function(x,g)
>>    local i;
>>    for i in [1..Length(x[1])] do x[i]:=Permuted(x[i],g); od;
>>    return Permuted(x,g);
>> end;
>>
>> This works as expected, for example:
>>
>> gap>  act([[1,2],[3,4]],(1,2));
>> [ [ 4, 3 ], [ 2, 1 ] ]
>>
>> However, using the Orbit command gives
>>
>> gap>  Orbit(Group((1,2)),[[1,2],[3,4]],act);
>> Lists Assignment:<list>  must be a mutable list
>>
>> What is wrong here?
> Your action tries to change the argument x (by assigning permuted rows). But this is probably not what you had intended anyway. Try the following.
>
> act:=function(x,g)
>    local i, y;
>    y := [];
>    for i in [1..Length(x[1])] do y[i]:=Permuted(x[i],g); od;
>    return Permuted(y,g);
> end;
>
> Cheers,
>
> Burkhard.
>
>
> _______________________________________________
> Forum mailing list
> Forum at mail.gap-system.org
> http://mail.gap-system.org/mailman/listinfo/forum
>

Thanks Burkhard and Keshav. I already tried Keshav's approach with 
StructuralCopy instead of ShallowCopy and it did not work. I'm a bit 
confused about that, but it doesn't matter, because both your approaches 
work excellent.

Best wishes,
Benjamin



More information about the Forum mailing list