application: group
The application group provides basic functionality for working with permutation groups. An object of type Group is defined by a list of GENERATORS describing the permutation of some indices. The object GroupOfCone encapsulates symmetry information of a Cone. It can act on the indices of rays (DOMAIN=>1), of facets (DOMAIN=>2), or on coordinates (DOMAIN=>3).
Objects

A finite permutation group.
Properties of Group


CHARACTER_TABLE: common::Matrix<Rational, NonSymmetric>
The character table. NOTE: We do not support complex characters, but for the moment only real rational ones.


CONJUGACY_CLASS_REPRESENTATIVES: common::Array<Array<Int>>
A set of representatives for each conjugacy class



GENERATORS: common::Array<Array<Int>>
Some generating set for the group. All generators must have the same length DEGREE. FIXME: Concrete description as second row of permutation representation







A permutation group which acts on a Cone by permuting (1) its RAYS (DOMAIN=>1), (2) its FACETS (DOMAIN=>2), or (3) the coordinates (DOMAIN=>3).
Properties of GroupOfCone

These properties capture combinatorial information of the object. Combinatorial properties only depend on combinatorial data of the object like, e.g., the face lattice.
Contained in extensionbundled:group
.
REPRESENTATIVE_INTERIOR_RIDGE_SIMPLICES: common::Array<boost_dynamic_bitset>
The (d1)dimensional simplices in the interior.

REPRESENTATIVE_MAX_BOUNDARY_SIMPLICES: common::Array<boost_dynamic_bitset>
The boundary (d1)dimensional simplices of a cone of combinatorial dimension d.

REPRESENTATIVE_MAX_INTERIOR_SIMPLICES: common::Array<boost_dynamic_bitset>
The interior ddimensional simplices of a cone of combinatorial dimension d.



These properties capture information of the object that is concerned with the action of permutation groups.

COORDINATES_IN_ORBITS: common::Array<Set<Int>>
An array that contains a set of indices (of rays) for each orbit of coordinates.

DOMAIN: common::Int
Indicates on which domain the group action is defined, see Enum defined in 'apps/polytope/rules/permlib.rules'.
OnRays=1: action on the (indices of the) raysOnFacets=2: action on the facetsOnCoords=3: action on the coordinates 
FACETS_IN_ORBITS: common::Array<Set<Int>>
An array that contains a set of indices (of facets) for each orbit of facets. The indices of the facets correspond to their indices in the polymake object.

INEQUALITIES_IN_ORBITS: common::Array<Set<Int>>
An array that contains a set of indices (of inequalities) for each orbit of inequalities. The indices of the inequalities correspond to their indices in the polymake object.

INPUT_RAYS_IN_ORBITS: common::Array<Set<Int>>
An array that contains a set of indices (of input rays) for each orbit of rays. The indices of the input rays correspond to their indices in the polymake object.








N_REPRESENTATIVE_SIMPLICES: common::Array<Int>
An array of size COMBINATORIAL_DIM whose kth entry stores the number of symmetry classes of kdimensional simplices in the cone.
Contained in extensionbundled:group
. 
RAYS_IN_ORBITS: common::Array<Set<Int>>
An array that contains a set of indices (of rays) for each orbit of rays. The indices of the rays correspond to their indices in the polymake object.

REPRESENTATIVE_FACETS: common::Matrix<Rational, NonSymmetric>
Representatives for the orbits of facets of the cone under this group action. No redundancies are allowed.
FIXME: Could cause problems since representatives are not unique! The order should correspond to the order of the orbits of facets!

REPRESENTATIVE_LINEAR_SPAN: common::Matrix<Rational, NonSymmetric>
Representatives for the orbits of the linear span of the cone under this group action.
No redundancies are allowed. FIXME: Could cause problems since representatives are not unique! The order should correspond to the order of the orbits of facets!

REPRESENTATIVE_RAYS: common::Matrix<Rational, NonSymmetric>
Representatives for the orbits of rays of the cone under this group action. No redundancies are allowed.
FIXME: Could cause problems since representatives are not unique! How to do canonicalization? The order should correspond to the order of the orbits of rays!

REPRESENTATIVE_SIMPLICES: common::Array<Array<boost_dynamic_bitset>>
An array of size COMBINATORIAL_DIM whose kth entry stores one representative for each symmetry class of kdimensional simplices in the cone.
Contained in extensionbundled:group
. 
SYMMETRIC_FACETS: common::Matrix<Rational, NonSymmetric>
The symmetrized facets of the cone. Same order as in the FACETSsection.
Explanation: The symmetry group of a cone also act on the facets. If the cone is not fulldimensional, however, the facets may appear unsymmetric. Nevertheless, there always exists some symmetric facet description.

SYMMETRIC_RAYS: common::Matrix<Rational, NonSymmetric>
The symmetrized rays of the cone. Same order as in the RAYSsection. Explanation: The symmetry group of a cone also act on the rays. If the cone has a nontrivial lineality space, however, the rays may appear unsymmetric. Nevertheless, there always exists some symmetric ray description.

SYMMETRIZED_COCIRCUIT_EQUATIONS: common::SparseMatrix<Rational, NonSymmetric>
A SparseMatrix whose rows are the sum of all cocircuit equations corresponding to a fixed symmetry class of interior ridge.
Contained in extensionbundled:group
.



A permutation group which acts on a Polytope by permuting (1) its VERTICES (DOMAIN=>1), (2) its FACETS (DOMAIN=>2), or (3) the coordinates (DOMAIN=>3).
Properties of GroupOfPolytope

These properties capture information of the object that is concerned with the action of permutation groups.

N_ORBITS_OF_POINTS: common::Int
The number of orbits of points. Alias for property GroupOfCone::N_ORBITS_OF_INPUT_RAYS.

N_ORBITS_OF_VERTICES: common::Int
The number of orbits of vertices. Alias for property GroupOfCone::N_ORBITS_OF_RAYS.

N_REPRESENTATIVE_VERTICES: common::Int
The number of vertex representatives. Alias for property GroupOfCone::N_REPRESENTATIVE_RAYS.

POINTS_IN_ORBITS: common::Array<Set<Int>>
An array that contains a set of indices (of points) for each orbit of points. The indices of the points correspond to their indices in the polymake object. Alias for property GroupOfCone::INPUT_RAYS_IN_ORBITS.

REPRESENTATIVE_AFFINE_HULL: common::Matrix<Rational, NonSymmetric>
Representatives for the orbits of linear span of the polytope under this group action. No redundancies are allowed. Alias for property GroupOfCone::REPRESENTATIVE_LINEAR_SPAN.

REPRESENTATIVE_VERTICES: common::Matrix<Rational, NonSymmetric>
Representatives for the orbits of vertices of the polytope under this group action. No redundancies are allowed. Alias for property GroupOfCone::REPRESENTATIVE_RAYS.

SYMMETRIC_VERTICES: common::Matrix<Rational, NonSymmetric>
The symmetrized vertices of the polytope. Same order as in the VERTICESsection.
Explanation: The symmetry group of a polytope also act on the vertices. If the polytope has a nontrivial lineality space, however, the vertices may appear unsymmetric. Nevertheless, there always exists some symmetric vertex description.

VERTICES_IN_ORBITS: common::Array<Set<Int>>
An array that contains a set of indices (of vertices) for each orbit of vertices. The indices of the vertices correspond to their indices in the polymake object. Alias for property GroupOfCone::RAYS_IN_ORBITS.



UNDOCUMENTED
Properties of PermutationRepresentationOnSets



DOMAIN_IN_ORBIT_ORDER: common::Array<Set<Int>>
the list of sets on which the group acts, ordered by orbits and conjugacy classes







UNDOCUMENTED
Contained in extensionderived from: Representationbundled:group
.
Properties of QuotientedPermutationRepresentation


DOMAIN: common::Array<boost_dynamic_bitset>
the list of equivalence classs of sets on which the group acts




UNDOCUMENTED
Properties of Representation


IRREDUCIBLE_DECOMPOSITION: common::Array<Int>
the decomposition into irreducible representations, in the same order as the rows of the GROUP.CHARACTER_TABLE

User Functions

These functions are concerned with orbits in groups.

are_in_same_orbit (group, vec1, vec2) → Bool

orbit <action_type> (G, O) → Set<Object>
The orbit of an object O under a group generated by G.

orbit (G, C) → Set<container>

orbits_coord_action_complete (group, mat) → List
Computes the orbit of the set of all vectors of the matrix mat under group, which acts by permuting coordinates. The set of vectors does not have to be complete.
Contained in extensionbundled:group
.Parameters
Group group a group of coordinate permutationsMatrix<Scalar> mat some input vectorsReturns
List ( Matrix all generated vectors, Array orbits of generated vectors) 
orbits_induced_action (group, inc) → Array
Computes the orbits of a set on which an action is induced. The incidences between the domain elements and the elements in the set are given by an incidence matrix inc.
Contained in extensionbundled:group
.Parameters
Group group a group of a coneIncidenceMatrix inc the incidences between domain elements and elements on which an action is inducedReturns
Array an array of the orbits of the induced action 
orbits_of_domain (group) → Array

orbit_coord_action (group, mat) → Array
Computes the orbits of the vectors (homogenized) of a matrix mat by permuting the coordinates of the vectors (skipping the homogenizing coordinate). The group must act on the set of vectors. Choose the function 'orbits_coord_action_complete' if your set is not complete.
Contained in extensionbundled:group
.Parameters
Group group a group acting on the cone by permuting the coordinatesMatrix<Scalar> mat a matrix with vectors on which the group acts by coordinate permutationReturns
Array an array of the orbits under the action on the coordinates 
orbit_permlib (G, S) → Set

orbit_permlib (G, S) → Set


Special purpose functions.

conjugacy_classes (the, the) → Array<Set<Array<Int>>>
Calculate the conjugacy classes of a group
Parameters
Array<Array<Int>> the generators of the groupArray<Array<Int>> the representatives of the conjugacy classesReturns
Array<Set<Array<Int>>> 
irreducible_decomposition (the, the) → Array<Int>
Calculate the decomposition into irreducible components of a given representation

isotypic_basis (the, the) → SparseMatrix
Calculate a basis of the isotypic component given by the ith irrep
Parameters
PermutationRepresentationOnSets the representation in questionInt the index of the sought irrepOptions
String domain_ordering the domain ordering to use: lex (default) or orbitReturns
SparseMatrix a matrix whose rows form a basis of the ith irrep 
isotypic_projector (the, the) → SparseMatrix
Calculate the projector into the isotypic component given by the ith irrep
Parameters
PermutationRepresentationOnSets the representation in questionInt the index of the sought irrepOptions
String domain_ordering the domain ordering to use: lex (default) or orbitReturns
SparseMatrix 
isotypic_supports (the, the) → IncidenceMatrix
For each isotypic component, which of a given array of sets are supported on it?
Parameters
PermutationRepresentationOnSets the representation in questionArray<Set> the given array of setsOptions
String domain_ordering the domain ordering to use: lex (default) or orbitReturns
IncidenceMatrix 
isotypic_supports (the, the) → IncidenceMatrix
For each row of a given SparseMatrix, to which isotypic components does it have a nonzero projection? The columns of the SparseMatrix correspond, in order, to the sets of the representation.
Parameters
PermutationRepresentationOnSets the representation in questionSparseMatrix the given matrixOptions
String domain_ordering the domain ordering to use: lex (default) or orbitReturns
IncidenceMatrix 
quotiented_character (the) → Array<Int>
Calculate character of quotiented representation
Contained in extensionbundled:group
. 
rep (the, the) → SparseMatrix
Calculate the representation of a group element
Parameters
PermutationRepresentationOnSets the representation in questionArray<Int> the group elementReturns
SparseMatrix 
row_support_sizes (the) → Array<Int>
How many nonzero entries are there in each row of a SparseMatrix?


With these clients you can produce objects of type Group  groups from certain parameterized families, as stabilizers of sets in other groups or from different kinds of cycle notations.

alternating_group (degree) → Group

cyclic_group (degree) → Group

group_from_cyclic_notation0 (group) → Group

group_from_cyclic_notation1 (group) → Group

group_from_permlib_cyclic_notation (gens, degree) → Group
Constructs a Group from generators given in permlib cyclic notation, i.e., indices separated by whitespace, generators separated by commas.
Contained in extensionbundled:group
.Parameters
Array<String> gens generators of the permutation group in permlib cyclic notationInt degree the degree of the permutation groupReturns
Group the group generated by gens 
stabilizer_of_set (group, set) → Group

stabilizer_of_vector (group, vec) → Group

symmetric_group (degree) → Group


These functions capture information of the object that is concerned with the action of permutation groups.

col_to_row_action (M, of) → Array
If the action of some permutations on the entries of the rows maps each row of a matrix to another row we obtain an induced action on the set of rows of the matrix. Considering the rows as points this corresponds to the action on the points induced by the action of some permutations on the coordinates.

lex_min_representative (G, S) → Set

orbit_supports (R, M) → SparseMatrix<Int>
For each nonzero entry of a SparseMatrix whose columns are indexed by the domain of a representation, compute the index of the orbit representative of the columns of nonzero entries
Contained in extensionbundled:group
.Parameters
PermutationRepresentationOnSets R a representationMatrix M a matrixReturns
SparseMatrix<Int> the indices of the orbits of the members of A 
orbit_support_sets (R, M) → Array<Set<Int>>
For each row of a Matrix whose columns are indexed by the domain of a representation, collect the indices of the orbit representatives of the columns of nonzero entries
Contained in extensionbundled:group
.Parameters
PermutationRepresentationOnSets R a representationMatrix M a matrixReturns
Array<Set<Int>> the indices of the orbits of the members of A


Miscellaneous functions.

action_inv <action_type> (p, O) → Object
The image of an object O under the inverse of a permutation p.

all_group_elements (group) → Array

group_from_generators (gens, group)
Computes the basic properties BASE, STRONG_GENERATORS, and TRANSVERSALS and stores the result in the given Group object group.
Contained in extensionbundled:group
.Parameters
Array<Array<Int>> gens some generators of the groupGroup group to fill in the data 
group_to_cyclic_notation (g) → String