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@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

_______________________________________________
Forum mailing list
Forum@mail.gap-system.org
http://mail.gap-system.org/mailman/listinfo/forum

Reply via email to