We provide signed permutations, that is permutations that can additionally change the sign of their result.
Assume \(n \in \mathbb{N}\), then a signed permutation on \(n\) points is a permutation \(\pi\) on \(\{ 1 \ldots n \}\) together with signs \(sgn : \{ 1 .. n \} \rightarrow \{-1,1\}\). A signed permutation on \(n\) points acts on the set \(\{ -n \ldots 1, 1 \ldots n \}\) by \( \omega ^ { (\pi, sgn) } = sgn(\omega)\cdot sgn(|\omega|^\pi) \cdot (|\omega|^\pi) \).
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.
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
‣ IsSignedPerm ( arg ) | ( filter ) |
Returns: true
or false
Category of signed permutations
‣ ListSignedPerm ( perm ) | ( operation ) |
Convert a signed permutation into a list of images, equivalent to List([1..LargestMovedPoint(s)], x -> x^s);
‣ ListSignedPerm ( arg1, arg2 ) | ( operation ) |
Convert a signed permutation to a list of images of length len. Arguments perm, len
‣ SignedPerm ( arg ) | ( function ) |
Given a list of signed images create a signed permutation object in IsSignedPermListRep
(7.2-8).
‣ NewSignedPerm ( arg1, arg2 ) | ( constructor ) |
‣ NewSignedPerm ( arg1, arg2, arg3 ) | ( constructor ) |
‣ IsSignedPermRep ( arg ) | ( filter ) |
Returns: true
or false
Representation of signed permutations as a permutation and a vector of signs.
‣ IsSignedPermListRep ( arg ) | ( filter ) |
Returns: true
or false
Representation of signed permutations as a list of signed images
‣ OnPosPoints ( arg ) | ( function ) |
Only act as a permutation on \(\{ 1\ldots n\}\)
‣ LargestMovedPoint ( arg ) | ( attribute ) |
The largest point that is moved by the signed permutation, where moving includes changing the sign.
‣ RandomSignedPermList ( arg ) | ( function ) |
Create a random list of images that can be used to create a signed permutation.
‣ RandomSignedPerm ( arg ) | ( function ) |
Create a random signed permutation
generated by GAPDoc2HTML