extension: bundled:group
application: common
Property Types
application: group
Objects
-
Properties of GroupOfCone
-
N_REPRESENTATIVE_SIMPLICES: common::Array<Int>
An array of size COMBINATORIAL_DIM whose k-th entry stores the number of symmetry classes of k-dimensional simplices in the cone.
-
REPRESENTATIVE_SIMPLICES: common::Array<Array<boost_dynamic_bitset>>
An array of size COMBINATORIAL_DIM whose k-th entry stores one representative for each symmetry class of k-dimensional simplices in the cone.
-
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.
-
These properties capture combinatorial information of the object. Combinatorial properties only depend on combinatorial data of the object like, e.g., the face lattice.
-
REPRESENTATIVE_INTERIOR_RIDGE_SIMPLICES: common::Array<boost_dynamic_bitset>
The (d-1)-dimensional simplices in the interior.
-
REPRESENTATIVE_MAX_BOUNDARY_SIMPLICES: common::Array<boost_dynamic_bitset>
The boundary (d-1)-dimensional simplices of a cone of combinatorial dimension d.
-
REPRESENTATIVE_MAX_INTERIOR_SIMPLICES: common::Array<boost_dynamic_bitset>
The interior d-dimensional simplices of a cone of combinatorial dimension d.
-
-
-
-
UNDOCUMENTED
Properties of QuotientedPermutationRepresentation
-
-
DOMAIN: common::Array<boost_dynamic_bitset>
the list of equivalence classs of sets on which the group acts
-
-
-
User Functions
-
all_group_elements (group) → Array
-
are_in_same_orbit (group, vec1, vec2) → Bool
-
group_from_cyclic_notation0 (group) → Group
-
group_from_cyclic_notation1 (group) → Group
-
group_from_generators (gens, group)
Computes the basic properties BASE, STRONG_GENERATORS, and TRANSVERSALS and stores the result in the given Group object group.
Parameters
Array<Array<Int>> gens some generators of the groupGroup group to fill in the data -
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.
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 -
group_to_cyclic_notation (g) → String
-
lex_min_representative (G, S) → Set
-
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.
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.
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.
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
-
orbit_supports (R, M) → SparseMatrix<Int>
For each non-zero 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 non-zero entries
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 non-zero entries
Parameters
PermutationRepresentationOnSets R a representationMatrix M a matrixReturns
Array<Set<Int>> the indices of the orbits of the members of A -
quotiented_character (the) → Array<Int>
Calculate character of quotiented representation
-
stabilizer_of_set (group, set) → Group
-
stabilizer_of_vector (group, vec) → Group
application: matroid
User Functions
-
fano_matroid () → Matroid
-
projective_plane (p) → Matroid
application: polytope
Objects
-
Properties of Cone
-
COCIRCUIT_EQUATIONS: common::SparseMatrix<Rational, NonSymmetric>
A matrix whose rows contain the cocircuit equations of P. The columns correspond to the MAX_INTERIOR_SIMPLICES.
-
FOLDABLE_COCIRCUIT_EQUATIONS: common::SparseMatrix<Rational, NonSymmetric>
A matrix whose rows contain the foldable cocircuit equations of P. The columns correspond to 2 * MAX_INTERIOR_SIMPLICES. col 0 = 0, col 1 = first simplex (black copy), col 2 = first simplex (white copy), col 3 = second simplex (black copy), ...
-
-
MAX_BOUNDARY_SIMPLICES: common::Array<Set<Int>>
The boundary (d-1)-dimensional simplices of a cone of combinatorial dimension d
-
MAX_INTERIOR_SIMPLICES: common::Array<Set<Int>>
The interior d-dimensional simplices of a cone of combinatorial dimension d
-
-
Properties of PointConfiguration
-
COCIRCUIT_EQUATIONS: common::SparseMatrix<Rational, NonSymmetric>
Tells the cocircuit equations that hold for the configuration, one for each interior ridge
-
INTERIOR_RIDGE_SIMPLICES: common::Array<Set<Int>>
Tells the number of codimension 1 simplices that are not on the boundary
-
MAX_BOUNDARY_SIMPLICES: common::Array<Set<Int>>
Tells the full-dimensional simplices on the boundary that contain no points except for the vertices.
-
MAX_INTERIOR_SIMPLICES: common::Array<Set<Int>>
Tells the full-dimensional simplices that contain no points except for the vertices.
-
-
-
SIMPLEXITY_LOWER_BOUND: common::Int
A lower bound for the minimal number of simplices in a triangulation
-
-
Properties of Polytope
-
FOLDABLE_MAX_SIGNATURE_UPPER_BOUND: common::Int
An upper bound for the maximal signature of a foldable triangulation of a polytope The signature is the absolute difference of the normalized volumes of black minus white maximal simplices, where only odd normalized volumes are taken into account.
-
QUOTIENT_SPACE: QuotientSpace
A topological quotient space obtained from a polytope by identifying faces.
-
SIMPLEXITY_LOWER_BOUND: common::Int
A lower bound for the minimal number of simplices in a triangulation
-
-
A topological quotient space obtained from a Polytope by identifying faces. This object will sit inside the polytope.
Properties of QuotientSpace
-
Properties defining a quotient space.
-
IDENTIFICATION_GROUP: group::Group
The group encoding the quotient space. The faces of the space are the orbits of the faces of the polytope under the group.
-
-
These properties capture combinatorial information of the object. Combinatorial properties only depend on combinatorial data of the object like, e.g., the face lattice.
-
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
-
-
FACES: common::Array<Array<Set<Int>>>
The faces of the quotient space, ordered by dimension. One representative of each orbit class is kept.
-
FACE_ORBITS: common::Array<Set<Array<Set<Int>>>>
The orbits of faces of the quotient space, ordered by dimension.
-
-
N_SIMPLICES: common::Array<Int>
The simplices made from points of the quotient space (also internal simplices, not just faces)
-
REPRESENTATIVE_INTERIOR_RIDGE_SIMPLICES: common::Array<boost_dynamic_bitset>
The (d-1)-dimensional simplices in the interior.
-
REPRESENTATIVE_MAX_BOUNDARY_SIMPLICES: common::Array<boost_dynamic_bitset>
The boundary (d-1)-dimensional simplices of a cone of combinatorial dimension d
-
REPRESENTATIVE_MAX_INTERIOR_SIMPLICES: common::Array<boost_dynamic_bitset>
The interior d-dimensional simplices of a cone of combinatorial dimension d
-
SIMPLEXITY_LOWER_BOUND: common::Int
A lower bound for the number of simplices needed to triangulate the quotient space
-
-
SIMPLICIAL_COMPLEX: topaz::SimplicialComplex
A simplicial complex obtained by two stellar subdivisions of the defining polytope.
-
SYMMETRY_GROUP: group::Group
The symmetry group induced by the symmetry group of the polytope on the FACES of the quotient space
-
-
User Functions
-
alternating_group (degree, domain) → group::GroupOfPolytope
Constructs an alternating group of given degree. (See also group::alternating_group.)
-
cocircuit_equation (C, rho, index_of) → SparseVector<Int>
The cocircuit equations of a cone C corresponding to some interior ridge rho with respect to a list of interior simplices symmetries of the cone are NOT taken into account
Parameters
Cone C Set<Int> rho the interior ridgeMap<Set<Int>, Int> index_of the interior_simplicesReturns
SparseVector<Int> -
cocircuit_equations (C, interior_ridge_simplices, interior_simplices) → SparseMatrix<Int>
A matrix whose rows contain the cocircuit equations of a cone C with respect to a list of interior simplices symmetries of the cone are NOT taken into account
Parameters
Cone C Array<Set> interior_ridge_simplices Array<Set> interior_simplices Options
String filename where to write the output (default empty)Bool reduce_rows whether to perform row reduction (default 1)Int log_frequency how often to print log messagesReturns
SparseMatrix<Int> -
convert_coord_action (group, mat, dom_out) → group::Group
Converts the generators of a group acting on coordinates to generators of the corresponding group which acts on the rows of the given matrix mat. The parameter dom_out specifies whether mat describes vertices or facets.
Parameters
group::Group group input group acting on coordinatesMatrix mat vertices or facets of a polytopeInt dom_out OnRays(1) or OnFacets(2)Options
String name an optional name for the output groupReturns
group::Group a new group object with the generators induced on the new domain -
convert_group_domain (group, VIF) → group::Group
Converts the generators of the input group from the domain onRays to generators on the domain onFacets, and vice versa.
Parameters
group::Group group IncidenceMatrix VIF the vertex-facet incidence matrix of the cone or polytopeOptions
String name an optional name for the output groupReturns
group::Group a new group object with the generators induced on the new domain -
cs_quotient (P)
For a centrally symmetric polytope, divide out the central symmetry, i.e, identify diametrically opposite faces.
Parameters
Polytope P , centrally symmetric -
cyclic_group (degree, domain) → group::GroupOfPolytope
Constructs a cyclic group of given degree. (See also group::cyclic_group.)
-
cylinder_2 () → Polytope
Return a 2-dimensional cylinder obtained by identifying two opposite sides of a square.
Returns
Polytope -
foldable_max_signature_ilp (d, points, volume, cocircuit_equations) → LinearProgram<Rational>
Set up an ILP whose MAXIMAL_VALUE is the maximal signature of a foldable triangulation of a polytope, point configuration or quotient manifold
Parameters
Int d the dimension of the input polytope, point configuration or quotient manifoldMatrix points the input points or verticesRational volume the volume of the convex hullSparseMatrix cocircuit_equations the matrix of cocircuit equationsOptions
String filename a name for a file in .lp format to store the linear programReturns
LinearProgram<Rational> an ILP that provides the result -
foldable_max_signature_upper_bound (d, points, volume, cocircuit_equations) → Integer
Calculate the LP relaxation upper bound to the maximal signature of a foldable triangulation of polytope, point configuration or quotient manifold
Parameters
Int d the dimension of the input polytope, point configuration or quotient manifoldMatrix points the input points or verticesRational volume the volume of the convex hullSparseMatrix cocircuit_equations the matrix of cocircuit equationsReturns
Integer the optimal value of an LP that provides a bound -
group_from_cyclic_notation0 (group, domain) → group::GroupOfPolytope
Constructs a group from a string with generators in cyclic notation. All numbers in the string are 0-based, meaning that 0 is the smallest number allowed.
Parameters
String group generators in cyclic notationInt domain of the polytope symmetry group. 1 for action on vertex indices, 2 for action" on facet indices, 3 for action on coordinatesReturns
group::GroupOfPolytope Example: -
group_from_cyclic_notation1 (group, domain) → group::GroupOfPolytope
Constructs a group from a string with generators in cyclic notation. All numbers in the string are 1-based, meaning that 1 is the smallest number allowed. Example: "(1,3)(2,4)"
Parameters
String group generators in cyclic notationInt domain of the polytope symmetry group. 1 for action on vertex indices, 2 for action" on facet indices, 3 for action on coordinatesReturns
group::GroupOfPolytope # @example > $g = group_from_cyclic_notation1("(1,3)(2,4)",0); > print $g->GENERATORS; | 2 3 0 1 -
interior_and_boundary_ridges (P) → Pair<Array<Set>,Array<Set>>
Find the (d-1)-dimensional simplices in the interior and in the boundary of a d-dimensional polytope or cone
Example: -
linear_symmetries (m) → group::Group
Computes the linear symmetries of a matrix m whose rows describe a point configuration via 'sympol'.
Parameters
Matrix m holds the points as rows whose linear symmetry group is to be computedReturns
group::Group the linear symmetry group of mExample: -
linear_symmetries (c, dual) → group::GroupOfCone
Computes the linear symmetries of a given polytope p via 'sympol'. If the input is a cone, it may compute only a subgroup of the linear symmetry group.
Parameters
Cone c the cone (or polytope) whose linear symmetry group is to be computedBool dual true if group action on vertices, false if action on facetsReturns
group::GroupOfCone the linear symmetry group of p (or a subgroup if p is a cone) -
max_interior_simplices (P) → Array<Set>
Find the maximal interior simplices of a polytope P. Symmetries of P are NOT taken into account.
Example: -
max_interior_simplices (P)
find the maximal interior simplices of a point configuration that DO NOT contain any point in their closure, except for the vertices. Symmetries of the configuration are NOT taken into account.
Parameters
PointConfiguration P the input point configuration -
projected_cocircuit_equations (C, ridge_rep, isotypic_components) → SparseMatrix<Rational>
A SparseMatrix whose rows contain projections of the cocircuit equations of a cone C corresponding to the orbit of a specified ridge onto a direct sum of specified isotypic components
Parameters
Cone C Set<Int> ridge_rep interior ridgeSet<Int> isotypic_components the isotypic components to project toReturns
SparseMatrix<Rational> -
quarter_turn_manifold () → Polytope
Return the 3-dimensional Euclidean manifold obtained by identifying opposite faces of a 3-dimensional cube by a quarter turn. After identification, two classes of vertices remain.
Returns
Polytope -
quotient_of_triangulation (T, G, R) → SparseVector
In a triangulation T, find the number of representatives of simplices wrt to G, and return the counts in the order indicated by the array R
Parameters
Array<Set> T the input triangulation,Array<Array<Int>> G the generators of the symmetry groupArray<Set> R the canonical lex-min representatives of the simplicesOptions
Bool foldable is the triangulation foldable?Returns
SparseVector V the number of times a simplex G-isomorphic to each representative in R occurs in T -
quotient_space_simplexity_ilp (d, V, volume, cocircuit_equations) → LinearProgram
Set up an LP whose MINIMAL_VALUE is a lower bound for the minimal number of simplices needed to triangulate a polytope, point configuration or quotient manifold
Parameters
Int d the dimension of the input polytope, point configuration or quotient manifoldMatrix V the input points or verticesScalar volume the volume of the convex hullSparseMatrix cocircuit_equations the matrix of cocircuit equationsOptions
String filename a name for a file in .lp format to store the linear programReturns
LinearProgram an LP that provides a lower bound -
quotient_space_simplexity_lower_bound (d, V, volume, cocircuit_equations) → Integer
Calculate a lower bound for the minimal number of simplices needed to triangulate a polytope, point configuration or quotient manifold
Parameters
Int d the dimension of the input polytope, point configuration or quotient manifoldMatrix V the input points or verticesScalar volume the volume of the convex hullSparseMatrix cocircuit_equations the matrix of cocircuit equationsReturns
Integer the optimal value of an LP that provides a lower bound -
representation_conversion_up_to_symmetry (c, a, dual, rayCompMethod) → List
Computes the dual description of a polytope up to its linear symmetry group.
Parameters
Cone c the cone (or polytope) whose dual description is to be computedgroup::Group a symmetry group of the cone c (group::GroupOfCone or group::GroupOfPolytope)Bool dual true if V to H, false if H to VInt rayCompMethod specifies sympol's method of ray computation via lrs(0), cdd(1), beneath_and_beyond(2), ppl(3)Returns
List (Bool success indicator, Matrix<Rational> vertices/inequalities, Matrix<Rational> lineality/equations) -
simplexity_ilp (d, points, the, volume, cocircuit_equations) → LinearProgram
Set up an ILP whose MINIMAL_VALUE is the minimal number of simplices needed to triangulate a polytope, point configuration or quotient manifold
Parameters
Int d the dimension of the input polytope, point configuration or quotient manifoldMatrix points the input points or verticesArray<Set> the representatives of maximal interior simplicesScalar volume the volume of the convex hullSparseMatrix cocircuit_equations the matrix of cocircuit equationsOptions
String filename a name for a file in .lp format to store the linear programReturns
LinearProgram an LP that provides a lower bound -
simplexity_ilp_with_angles (d, points, the, volume, cocircuit_equations) → LinearProgram
Set up an ILP whose MINIMAL_VALUE is the minimal number of simplices needed to triangulate a polytope, point configuration or quotient manifold
Parameters
Int d the dimension of the input polytope, point configuration or quotient manifoldMatrix points the input points or verticesArray<Set> the (representative) maximal interior simplicesScalar volume the volume of the convex hullSparseMatrix cocircuit_equations the matrix of cocircuit equationsOptions
String filename a name for a file in .lp format to store the linear programReturns
LinearProgram an LP that provides a lower bound -
simplexity_lower_bound (d, points, volume, cocircuit_equations) → Integer
Calculate the LP relaxation lower bound for the minimal number of simplices needed to triangulate a polytope, point configuration or quotient manifold
Parameters
Int d the dimension of the input polytope, point configuration or quotient manifoldMatrix points the input points or verticesScalar volume the volume of the convex hullSparseMatrix cocircuit_equations the matrix of cocircuit equationsReturns
Integer the optimal value of an LP that provides a lower bound -
symmetric_group (degree, domain) → group::GroupOfPolytope
Constructs a symmetric group of given degree. (See also group::symmetric_group.)
Parameters
Int degree Int domain of the polytope's symmetry group. 1 for action on vertex indices, 2 for action" on facet indices, 3 for action on coordinatesReturns
group::GroupOfPolytope Example: -
symmetrized_foldable_max_signature_ilp (d, points, volume, generators, symmetrized_foldable_cocircuit_equations) → LinearProgram<Rational>
Set up an ILP whose MAXIMAL_VALUE is the maximal signature of a foldable triangulation of a polytope, point configuration or quotient manifold
Parameters
Int d the dimension of the input polytope, point configuration or quotient manifoldMatrix points the input points or verticesRational volume the volume of the convex hullArray<Array<Int>> generators the generators of the symmetry groupSparseMatrix symmetrized_foldable_cocircuit_equations the matrix of symmetrized cocircuit equationsOptions
String filename a name for a file in .lp format to store the linear programReturns
LinearProgram<Rational> an ILP that provides the result -
symmetrized_foldable_max_signature_upper_bound (d, points, volume, cocircuit_equations) → Integer
Calculate the LP relaxation upper bound to the maximal signature of a foldable triangulation of polytope, point configuration or quotient manifold
Parameters
Int d the dimension of the input polytope, point configuration or quotient manifoldMatrix points the input points or verticesRational volume the volume of the convex hullSparseMatrix cocircuit_equations the matrix of cocircuit equationsReturns
Integer the optimal value of an LP that provides a bound -
truncated_orbit_polytope (v, group, eps) → SymmetricPolytope
Constructs an orbit polytope of a given point v with respect to a given group group, in which all vertices are cut off by hyperplanes in distance eps
Parameters
Vector v point of which orbit polytope is to be constructedgroup::GroupOfPolytope group group for which orbit polytope is to be constructedRational eps scaled distance by which the vertices of the orbit polytope are to be cut offReturns
SymmetricPolytope the truncated orbit polytope -
universal_polytope (P) → Polytope
-
universal_polytope (P, reps, cocircuit_equations) → Polytope
Calculate the universal polytope of a polytope, point configuration or quotient manifold
Parameters
Polytope P the input polytopeArray<Set> reps the representatives of maximal interior simplicesSparseMatrix cocircuit_equations the matrix of cocircuit equationsReturns
Polytope -
universal_polytope (PC) → Polytope
Calculate the universal polytope of a point configuration
-
write_foldable_max_signature_ilp (P, outfile_name)
-
write_quotient_space_simplexity_ilp ()
outputs a linear program whose optimal value is a lower bound for the number of simplices necessary to triangulate the polytope in such a way that its symmetries respect the triangulation of the boundary.
-
write_simplexity_ilp (P, outfile_name)
-
write_symmetrized_simplexity_ilp (P, outfile_name)
application: topaz
User Functions
-
bs2quotient (P, complex) → SimplicialComplex
Create a simplicial complex from a simplicial subdivision of a given complex by identifying vertices on the boundary of the original complex according to a group that acts on vertices.
Parameters
polytope::Polytope P the underlying polytopeSimplicialComplex complex a sufficiently fine subdivision of P, for example the second barycentric subdivisionReturns
SimplicialComplex