Goto Chapter: Top 1 2 3 4 5 6 7 Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

7 Signed Permutations
 7.1 Different Representations
 7.2 Low-Level Descriptions

7 Signed Permutations

We provide signed permutations, that is permutations that can additionally change the sign of their result.

Assume n ∈ N, then a signed permutation on n points is a permutation π on { 1 ... n } together with signs sgn : { 1 .. n } → {-1,1}. A signed permutation on n points acts on the set { -n ... 1, 1 ... n } by ω ^ (π, sgn) = sgn(ω)⋅ sgn(|ω|^π) ⋅ (|ω|^π).

We provide two representations of signed permutations, one as a list of images IsSignedPermListRep (7.2-8) and one formed as pair of a permutation and a sign map IsSignedPermRep (7.2-7). Our benchmarks indicate that a list of images is the better representation, and hence this is the default.

To get started with signed permutations consider the following example

gap> s := SignedPerm([2,-1]);
<signed permutation in list rep>
gap> 1 ^ s;
2
gap> 2 ^ s;
-1
gap> OnPoints(2, s);
-1

One can form groups out of signed permutations

gap> r := SignedPerm([-1,3,-2,4]);; t := SignedPerm([3,1,4,2]);;
gap> G := Group(r,t);
<group with 2 generators>
gap> Size(G);
32
gap> Orbit(G, 1, OnPoints);
[ 1, -1, 3, -3, -2, 4, 2, -4 ]
gap> Stabilizer(G, 1, OnPoints);
<group of size 4 with 9 generators>

Note that currently the package does not make an effort to exploit the special structure of signed permutation groups as permutation groups.

7.1 Different Representations

To create signed permutations in the different representations, we provide a constructor.

gap> r := NewSignedPerm(IsSignedPermRep, [-1,3,-2,4]);;
gap> t := SignedPerm(IsSignedPermRep, [3,1,4,2]);;
gap> G := Group(r,t);
<group with 2 generators>
gap> Size(G);
32
gap> r := NewSignedPerm(IsSignedPermListRep, [-1,3,-2,4]);;
gap> t := SignedPerm(IsSignedPermListRep, [3,1,4,2]);;
gap> G := Group(r,t);
<group with 2 generators>
gap> Size(G);
32

7.2 Low-Level Descriptions

7.2-1 IsSignedPerm
‣ IsSignedPerm( arg )( filter )

Returns: true or false

Category of signed permutations

7.2-2 ListSignedPerm
‣ ListSignedPerm( perm )( operation )

Convert a signed permutation into a list of images, equivalent to List([1..LargestMovedPoint(s)], x -> x^s);

7.2-3 ListSignedPerm
‣ ListSignedPerm( arg1, arg2 )( operation )

Convert a signed permutation to a list of images of length len. Arguments perm, len

7.2-4 SignedPerm
‣ SignedPerm( arg )( function )

Given a list of signed images create a signed permutation object in IsSignedPermListRep (7.2-8).

7.2-5 NewSignedPerm
‣ NewSignedPerm( arg1, arg2 )( constructor )

7.2-6 NewSignedPerm
‣ NewSignedPerm( arg1, arg2, arg3 )( constructor )

7.2-7 IsSignedPermRep
‣ IsSignedPermRep( arg )( filter )

Returns: true or false

Representation of signed permutations as a permutation and a vector of signs.

7.2-8 IsSignedPermListRep
‣ IsSignedPermListRep( arg )( filter )

Returns: true or false

Representation of signed permutations as a list of signed images

7.2-9 OnPosPoints
‣ OnPosPoints( arg )( function )

Only act as a permutation on { 1... n}

7.2-10 LargestMovedPoint
‣ LargestMovedPoint( arg )( attribute )

The largest point that is moved by the signed permutation, where moving includes changing the sign.

7.2-11 RandomSignedPermList
‣ RandomSignedPermList( arg )( function )

Create a random list of images that can be used to create a signed permutation.

7.2-12 RandomSignedPerm
‣ RandomSignedPerm( arg )( function )

Create a random signed permutation

 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 4 5 6 7 Ind

generated by GAPDoc2HTML