from application polytope
A polyhedral cone, not necessarily pointed. Note that in contrast to the vertices of a polytope, the RAYS
are given in affine coordinates.
Scalar
: numeric data type used for the coordinates, must be an ordered field. Default is Rational
.
Cone::ExactCoord
: An affine cone with an exact coordinate type, like Rational.
Cone<Float>
: An affine cone with float coordinates realized in Rd.
Cone<Rational>
: An affine rational cone realized in Rd.
These properties are for input only. They allow redundant information.
EQUATIONS
Equations that hold for all INPUT_RAYS
of the cone. All vectors in this section must be non-zero. Input section only. Ask for LINEAR_SPAN
if you want to see an irredundant description of the linear span.
Matrix<Scalar,NonSymmetric>
INEQUALITIES
Inequalities giving rise to the cone; redundancies are allowed. All vectors in this section must be non-zero. Dual to INPUT_RAYS
. Input section only. Ask for FACETS
if you want to compute an H-representation from a V-representation.
Matrix<Scalar,NonSymmetric>
INPUT_LINEALITY
(Non-homogenous) vectors whose linear span defines a subset of the lineality space of the cone; redundancies are allowed. All vectors in the input must be non-zero. Dual to EQUATIONS
. Input section only. Ask for LINEALITY_SPACE
if you want to compute a V-representation from an H-representation.
Matrix<Scalar,NonSymmetric>
INPUT_RAYS
(Non-homogenous) vectors whose positive span form the cone; redundancies are allowed. Dual to INEQUALITIES
. All vectors in the input must be non-zero. Input section only. Ask for RAYS
if you want to compute a V-representation from an H-representation.
Matrix<Scalar,NonSymmetric>
These properties capture combinatorial information of the object. Combinatorial properties only depend on combinatorial data of the object like, e.g., the face lattice.
ALTSHULER_DET
Let M be the vertex-facet incidence matrix, then the Altshuler determinant is defined as max{det(M ∗ MT), det(MT ∗ M)}.
This prints the Altshuler determinant of the built-in pentagonal pyramid (Johnson solid 2):
> print johnson_solid("pentagonal_pyramid")->ALTSHULER_DET; 25
COCIRCUIT_EQUATIONS
A matrix whose rows contain the cocircuit equations of P. The columns correspond to the MAX_INTERIOR_SIMPLICES
.
COMBINATORIAL_DIM
Combinatorial dimension This is the dimension all combinatorial properties of the cone like e.g. RAYS_IN_FACETS
or the HASSE_DIAGRAM
refer to. Geometrically, the combinatorial dimension is the dimension of the intersection of the pointed part of the cone with a hyperplane that creates a bounded intersection.
DUAL_GRAPH
Facet-ridge graph. Dual to GRAPH
.
ESSENTIALLY_GENERIC
All intermediate polytopes (with respect to the given insertion order) in the beneath-and-beyond algorithm are simplicial. We have the implications: RAYS
in general position ⇒ ESSENTIALLY_GENERIC ⇒ SIMPLICIAL
EXCESS_FACET_DEGREE
Measures the deviation of the cone from being simple in terms of the DUAL_GRAPH
.
EXCESS_RAY_DEGREE
Measures the deviation of the cone from being simple in terms of the GRAPH
.
F2_VECTOR
The vector counting the number of incidences between pairs of faces. `fik` is the number of incident pairs of `(i+1)`-faces and `(k+1)`-faces. The main diagonal contains the F_VECTOR
.
FACETS_THRU_RAYS
Transposed to RAYS_IN_FACETS
. Notice that this is a temporary property; it will not be stored in any file.
FACET_SIZES
Number of incident rays for each facet.
FLAG_VECTOR
Condensed form of the flag vector, containing all entries indexed by sparse sets in {0, …, COMBINATORIAL_DIM
-1} in the following order: (1, f0, f1, f2, f02, f3, f03, f13, f4, f04, f14, f24, f024, f5, …). Use Dehn-Sommerville equations, via user function N_FLAGS
, to extend.
FOLDABLE_COCIRCUIT_EQUATIONS
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), …
F_VECTOR
The vector counting the number of faces (`fk` is the number of `(k+1)`-faces).
GRAPH
Vertex-edge graph obtained by intersecting the cone with a transversal hyperplane.
HASSE_DIAGRAM
dim()
The dimension of the underlying object
nodes_of_dim(Int d)
The indices of nodes in the HASSE_DIAGRAM
corresponding to faces of dimension d in the underlying object
Int
d
: dimension
nodes_of_dim_range(Int d1, Int d2)
The indices of nodes in the HASSE_DIAGRAM
corresponding to faces with dimension in the range (d1,d2) in the underlying object
INTERIOR_RIDGE_SIMPLICES
The (d-1)-dimensional simplices in the interior.
MAX_BOUNDARY_SIMPLICES
The boundary (d-1)-dimensional simplices of a cone of combinatorial dimension d
MAX_INTERIOR_SIMPLICES
The interior d-dimensional simplices of a cone of combinatorial dimension d
N_EDGES
The number of edges of the GRAPH
N_FACETS
The number of FACETS
.
N_RAYS
The number of RAYS
N_RAY_FACET_INC
Number of pairs of incident vertices and facets.
N_RIDGES
The number of ridges (faces of codimension 2) equals the number of edges of the DUAL_GRAPH
RAYS_IN_FACETS
Ray-facet incidence matrix, with rows corresponding to facets and columns to rays. Rays and facets are numbered from 0 to N_RAYS
-1 rsp. N_FACETS
-1, according to their order in RAYS
rsp. FACETS
.
RAYS_IN_RIDGES
Ray-ridge incidence matrix, with rows corresponding to ridges and columns to rays. Rays and ridges are numbered from 0 to N_RAYS
-1 rsp. N_RIDGES
-1, according to their order in RAYS
rsp. RIDGES
.
RAY_SIZES
Number of incident facets for each ray.
SELF_DUAL
True if the cone is self-dual.
SIMPLE
True if the facets of the cone are simple. Dual to SIMPLICIAL
.
SIMPLICIAL
True if the facets of the cone are simplicial.
SIMPLICIAL_CONE
True if the cone is simplicial.
These properties capture geometric information of the object. Geometric properties depend on geometric information of the object, like, e.g., vertices or facets.
CONE_AMBIENT_DIM
The dimension of the space in which the cone lives.
CONE_DIM
Dimension of the linear span of the cone = dimension of the cone. If the cone is given purely combinatorially, this is the dimension of a minimal embedding space deduced from the combinatorial structure.
EPSILON
Threshold for zero test for scalar products (e.g. vertex * facet normal)
FACETS
Facets of the cone, encoded as inequalities. All vectors in this section must be non-zero. Dual to RAYS
. This section is empty if and only if the cone is trivial (e.g. if it encodes an empty polytope). Notice that a polytope which is a single point defines a one-dimensional cone, the face at infinity is a facet. The property FACETS
appears only in conjunction with the property LINEAR_SPAN
, or AFFINE_HULL
, respectively. The specification of the property FACETS
requires the specification of LINEAR_SPAN
, or AFFINE_HULL
, respectively, and vice versa.
Matrix<Scalar,NonSymmetric>
FACETS_THRU_INPUT_RAYS
Transposed to INPUT_RAYS_IN_FACETS
. Notice that this is a temporary property; it will not be stored in any file.
FULL_DIM
CONE_AMBIENT_DIM
and CONE_DIM
coincide. Notice that this makes sense also for the derived Polytope class.
INEQUALITIES_THRU_RAYS
transposed RAYS_IN_INEQUALITIES
Notice that this is a temporary property; it will not be stored in any file.
INPUT_RAYS_IN_FACETS
Input ray-facet incidence matrix, with rows corresponding to facet and columns to input rays. Input_rays and facets are numbered from 0 to N_INPUT_RAYS
-1 rsp. N_FACETS
-1, according to their order in INPUT_RAYS
rsp. FACETS
.
LINEALITY_DIM
Dimension of the LINEALITY_SPACE
(>0 in the non-POINTED case)
LINEALITY_SPACE
Basis of the linear subspace orthogonal to all INEQUALITIES
and EQUATIONS
All vectors in this section must be non-zero. The property LINEALITY_SPACE
appears only in conjunction with the property RAYS
, or VERTICES
, respectively. The specification of the property RAYS
or VERTICES
requires the specification of LINEALITY_SPACE
, and vice versa.
Matrix<Scalar,NonSymmetric>
LINEAR_SPAN
Dual basis of the linear span of the cone. All vectors in this section must be non-zero. The property LINEAR_SPAN
appears only in conjunction with the property FACETS
. The specification of the property FACETS
requires the specification of LINEAR_SPAN
, or AFFINE_HULL
, respectively, and vice versa.
Matrix<Scalar,NonSymmetric>
N_EQUATIONS
The number of EQUATIONS
.
N_INPUT_LINEALITY
The number of INPUT_LINEALITY
.
N_INPUT_RAYS
The number of INPUT_RAYS
.
ONE_RAY
A ray of a pointed cone.
Vector<Scalar>
POINTED
True if the cone does not contain a non-trivial linear subspace.
POSITIVE
True if all RAYS
of the cone have non-negative coordinates, that is, if the pointed part of the cone lies entirely in the positive orthant.
RAYS
Rays of the cone. No redundancies are allowed. All vectors in this section must be non-zero. The property RAYS
appears only in conjunction with the property LINEALITY_SPACE
. The specification of the property RAYS
requires the specification of LINEALITY_SPACE
, and vice versa.
Matrix<Scalar,NonSymmetric>
RAYS_IN_INEQUALITIES
Ray-inequality incidence matrix, with rows corresponding to facets and columns to rays. Rays and inequalities are numbered from 0 to N_RAYS
-1 rsp. number of INEQUALITIES
-1, according to their order in RAYS
rsp. INEQUALITIES
.
RAY_SEPARATORS
The i-th row is the normal vector of a hyperplane separating the i-th vertex from the others. This property is a by-product of redundant point elimination algorithm.
Matrix<Scalar,NonSymmetric>
REL_INT_POINT
A point in the relative interior of the cone.
Vector<Scalar>
TRIVIAL
True if the only valid point in the cone is the unique non-sensical point (0,…,0)
These properties capture information that depends on the lattice structure of the cone. polymake always works with the integer lattice.
CONE_TORIC_IDEAL
The ideal whose vanishing set is the affine toric variety given by the cone. In other words the rows of its BINOMIAL_GENERATORS
give the relations between the Hilbert basis elements.
DEGREE_ONE_GENERATORS
Elements of the HILBERT_BASIS
for the cone of degree 1 with respect to the MONOID_GRADING
.
GORENSTEIN_CONE
A cone is Gorenstein if it is Q-Gorenstein with index one
HILBERT_BASIS_GENERATORS
Generators for the HILBERT_BASIS
of a posiibly non-pointed cone the first matrix is a Hilbert basis of a pointed part of the cone the second matrix is a lattice basis of the lineality space note: the pointed part used in this property need not be the same as the one described by RAYS
or INPUT_RAYS
it will be if the cone is pointed (the polytope is bounded)
HILBERT_SERIES
Hilbert series of the monoid, given by the intersection of the cone with the lattice Z^d with respect to the MONOID_GRADING
HOMOGENEOUS
True if the primitive generators of the rays lie on an affine hyperplane in the span of the rays.
H_STAR_POLYNOMIAL
The Hilbert polynomial, the h^*-polynomial for lattice polytopes. The degree is at most on less then the h^*-vector.
H_STAR_VECTOR
The coefficients of the Hilbert polynomial, the h^*-polynomial for lattice polytopes, with respect to the MONOID_GRADING
, starting at the constant coefficient. For lattice polytopes the length of this vector is CONE_DIM
. In general the length is one less than the degree of the denominator of the HILBERT_SERIES
.
MONOID_GRADING
A grading for the monoid given by the intersection of the cone with the lattice Z^d, should be positive for all generators. If this property is not specified by the user there are two defaults: For rational polytopes the affine hyperplane defined by (1,0,\ldots,0) will be used. For HOMOGENEOUS
cones the affine hyperplane containing the primitive generators will be used.
N_HILBERT_BASIS
The number of elements of the HILBERT_BASIS
.
Q_GORENSTEIN_CONE
A cone is Q-Gorenstein if all primitive generators of the cone lie in an affine hyperplane spanned by a lattice functional in the dual cone (but not in the lineality space of the dual cone).
Q_GORENSTEIN_CONE_INDEX
If a cone is Q-Gorenstein, then its index is the common lattice height of the primitive generators with respect to the origin. Otherwise Q_GORENSTEIN_CONE_INDEX is undefined.
SMOOTH_CONE
A cone is smooth if the primitive generators are part of a lattice basis.
These properties capture information of the object that is concerned with the action of permutation groups.
GROUP
REPRESENTATIVE_INEQUALITIES()
explicit representatives of equivalence classes of INEQUALITIES under a group action
REPRESENTATIVE_INPUT_RAYS()
explicit representatives of equivalence classes of INPUT_RAYS
under a group action
BITSET_ACTION
MATRIX_ACTION
MatrixActionOnVectors<Scalar>
RAYS_ORBITS
Alias for property VECTORS_ORBITS
.
REPRESENTATIVE_BOUNDARY_RIDGE_SIMPLICES
One representative for each orbit of boundary ridge simplices
REPRESENTATIVE_FACETS
Matrix<Scalar,NonSymmetric>
REPRESENTATIVE_INTERIOR_RIDGE_SIMPLICES
One representative for each orbit of interior ridge simplices
REPRESENTATIVE_MAX_BOUNDARY_SIMPLICES
One representative for each orbit of maximal-dimensional boundary simplices
REPRESENTATIVE_MAX_INTERIOR_SIMPLICES
One representative for each orbit of maximal-dimensional interior simplices
REPRESENTATIVE_RAYS
Matrix<Scalar,NonSymmetric>
These properties collect information about triangulations of the object and properties usually computed from such, as the volume.
TRIANGULATION
GeometricSimplicialComplex<Scalar>
BOUNDARY
FACET_TRIANGULATIONS
For each facet the set of simplex indices of BOUNDARY
that triangulate it.
REFINED_SPLITS
The splits that are coarsenings of the current TRIANGULATION
. If the triangulation is regular these form the unique split decomposition of the corresponding weight function.
REGULAR
Checks regularity of TRIANGULATION
.
WEIGHTS
Weight vector to construct a regular TRIANGULATION
. Must be generic.
Vector<Scalar>
TRIANGULATION_INT
Conceptually, similar to TRIANGULATION
, but using INPUT_RAYS
. However, here we use a small object type. The main reason for the existence of this property (in this form) is the beneath_beyond algorithm, which automatically produces this data as a by-product of the conversion from INPUT_RAYS
to FACETS
. And that data is too valuable to throw away. Use big objects of type VectorConfiguration
if you want to work with triangulations using redundant points.
These properties are for visualization.
COORDINATE_LABELS
Unique names assigned to the coordinate directions, analogous to RAY_LABELS
. For Polytopes this should contain “inhomog_var” for the homogenization coordinate and this will be added automatically if necessary and CONE_AMBIENT_DIM
can be computed.
FACET_LABELS
Unique names assigned to the FACETS
, analogous to RAY_LABELS
.
FTR_CYCLIC_NORMAL
Reordered transposed RAYS_IN_FACETS
. Dual to RIF_CYCLIC_NORMAL
.
INEQUALITY_LABELS
Unique names assigned to the INEQUALITIES
, analogous to RAY_LABELS
.
INPUT_RAY_LABELS
Unique names assigned to the INPUT_RAYS
, analogous to RAY_LABELS
.
LABELED_FACETS
Print RAYS_IN_FACETS
using RAY_LABELS
NEIGHBOR_FACETS_CYCLIC_NORMAL
Reordered DUAL_GRAPH
for 3d-cones. The neighbor facets are listed in the order corresponding to RIF_CYCLIC_NORMAL
, so that the first two vertices in RIF_CYCLIC_NORMAL make up the ridge to the first neighbor facet and so on.
NEIGHBOR_RAYS_CYCLIC_NORMAL
Reordered GRAPH
. Dual to NEIGHBOR_FACETS_CYCLIC_NORMAL
.
RAY_LABELS
Unique names assigned to the RAYS
. If specified, they are shown by visualization tools instead of ray indices. For a cone built from scratch, you should create this property by yourself, either manually in a text editor, or with a client program. If you build a cone with a construction client taking some other input cone(s), you can create the labels automatically if you call the client with a relabel option. The exact format of the labels is dependent on the construction, and is described by the corresponding client.
RIF_CYCLIC_NORMAL
Reordered RAYS_IN_FACETS
for 2d and 3d-cones. Rays are listed in the order of their appearance when traversing the facet border counterclockwise seen from outside of the origin.
These methods are provided for backward compatibility with older versions of polymake only. They should not be used in new code.
DIAMETER()
The diameter of the GRAPH
of the cone
DUAL_DIAMETER()
The diameter of the DUAL_GRAPH
DUAL_TRIANGLE_FREE()
True if the DUAL_GRAPH
contains no triangle
TRIANGLE_FREE()
True if the GRAPH
contains no triangle
These methods capture combinatorial information of the object. Combinatorial properties only depend on combinatorial data of the object like, e.g., the face lattice.
CONNECTIVITY()
Connectivity of the GRAPH
this is the minimum number of nodes that have to be removed from the GRAPH
to make it disconnected
DUAL_CONNECTIVITY()
Connectivity of the DUAL_GRAPH
this is the minimum number of nodes that have to be removed from the DUAL_GRAPH
to make it disconnected
DUAL_EVEN()
True if the DUAL_GRAPH
is bipartite
EVEN()
True if the GRAPH
is bipartite
FACET_DEGREES()
Facet degrees of the polytope. The degree of a facet is the number of adjacent facets.
N_FLAGS(Int type …)
Determine the number of flags of a given type. type must belong to {0,…,COMBINATORIAL_DIM
-1}. Example: “N_FLAGS(0,3,4)” determines the entry f034 of the flag vector.
Int
type …
: flag type
VERTEX_DEGREES()
Ray degrees of the cone
These methods capture geometric information of the object. Geometric properties depend on geometric information of the object, like, e.g., vertices or facets.
AMBIENT_DIM()
returns the dimension of the ambient space of the cone
DIM()
returns the geometric dimension of the cone (including the lineality space) for the dimension of the pointed part ask for COMBINATORIAL_DIM
contains(Cone<Scalar> C_in)
checks whether a given cone is containeed in another
Cone<Scalar>
C_in
contains(Vector<Scalar> v)
checks whether a given point is contained in a cone
Vector<Scalar>
v
: point
contains_in_interior(Vector<Scalar> v)
checks whether a given point is contained in the strict interior of a cone
Vector<Scalar>
v
: point
These methods capture information that depends on the lattice structure of the cone. polymake always works with the integer lattice.
HILBERT_BASIS()
for a cone this method returns a Hilbert basis of the cone for a polytope this method returns a Hilbert basis of the homogenization cone of the polytope note: if the cone is not pointed (the polytope is not bounded) then the returned basis is not unique and usually not minimal
The following methods compute topological invariants.
DUAL_GRAPH_SIGNATURE()
Difference of the black and white nodes if the DUAL_GRAPH
is BIPARTITE
. Otherwise -1.
GRAPH_SIGNATURE()
These methods are for visualization.
VISUAL()
Visualizes the cone, intersected with the unit ball.
Visual::Polygons::decorations
geometric_options_linear
VISUAL_DUAL_FACE_LATTICE()
Visualize the dual face lattice of a cone as a multi-layer graph.
Int
seed
: random seed value for the node placement
Visual::Lattice::decorations
VISUAL_FACE_LATTICE()
Visualize the HASSE_DIAGRAM
of a cone as a multi-layer graph.
Int
seed
: random seed value for the node placement
Visual::Lattice::decorations