documentation:latest:polytope:cone

Available versions of this document: latest release, release 4.0, release 3.6, release 3.5, nightly master

Reference documentation for older polymake versions: release 3.4, release 3.3, release 3.2

# BigObject Cone<Scalar>

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.

Type Parameters:

Scalar: numeric data type used for the coordinates, must be an ordered field. Default is Rational.

Specializations:

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.

Permutations:
FacetPerm:

permuting the FACETS

VertexPerm:

permuting the RAYS TODO: rename into RaysPerm and introduce an overriding alias in Polytope

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.

Type:
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.

Type:
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.

Type:
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.

Type:
Matrix<Scalar,NonSymmetric>

Properties from algebraic geometry.

TORIC_IDEAL

The matrix containing the exponent vectors of the binomials whose vanishing set is the affine toric variety given by the cone. In other words the rows of this matrix give the relations between the Hilbert basis elements.

Type:
BinomialIdeal
depends on extension:

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)}.

Type:
Integer
Example:

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.

Type:
SparseMatrix<Rational,NonSymmetric>

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.

Type:
Int

DUAL_GRAPH

Facet-ridge graph. Dual to GRAPH.

Type:
Graph<Undirected>

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

Type:
Bool

EXCESS_FACET_DEGREE

Measures the deviation of the cone from being simple in terms of the DUAL_GRAPH.

Type:
Int

EXCESS_RAY_DEGREE

Measures the deviation of the cone from being simple in terms of the GRAPH.

Type:
Int

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.

Type:
Matrix<Integer,NonSymmetric>

FACETS_THRU_RAYS

Transposed to RAYS_IN_FACETS. Notice that this is a temporary property; it will not be stored in any file.

Type:
IncidenceMatrix<NonSymmetric>

FACET_SIZES

Number of incident rays for each facet.

Type:
Array<Int>

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.

Type:
Vector<Integer>

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), …

Type:
SparseMatrix<Rational,NonSymmetric>

F_VECTOR

The vector counting the number of faces (fk is the number of (k+1)-faces).

Type:
Vector<Integer>

GRAPH

Vertex-edge graph obtained by intersecting the cone with a transversal hyperplane.

Type:
Graph<Undirected>

HASSE_DIAGRAM
Type:
Lattice<BasicDecoration,Sequential>
Methods of HASSE_DIAGRAM:
dim()

The dimension of the underlying object

Returns:
Int
nodes_of_dim(Int d)

The indices of nodes in the HASSE_DIAGRAM corresponding to faces of dimension d in the underlying object

Parameters:

Int d: dimension

Returns:
Set<Int>
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

Parameters:

Int d1: lower dimension of the range

Int d2: upper dimension of the range

Returns:
Set<Int>

INTERIOR_RIDGE_SIMPLICES

The (d-1)-dimensional simplices in the interior.

Type:
Array<Set<Int>>

MAX_BOUNDARY_SIMPLICES

The boundary (d-1)-dimensional simplices of a cone of combinatorial dimension d

Type:
Array<Set<Int>>

MAX_INTERIOR_SIMPLICES

The interior d-dimensional simplices of a cone of combinatorial dimension d

Type:
Array<Set<Int>>

N_EDGES

The number of edges of the GRAPH

Type:
Int

N_FACETS

The number of FACETS.

Type:
Int

N_RAYS

The number of RAYS

Type:
Int

N_RAY_FACET_INC

Number of pairs of incident vertices and facets.

Type:
Int

N_RIDGES

The number of ridges (faces of codimension 2) equals the number of edges of the DUAL_GRAPH

Type:
Int

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.

Type:
IncidenceMatrix<NonSymmetric>

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.

Type:
IncidenceMatrix<NonSymmetric>

RAY_SIZES

Number of incident facets for each ray.

Type:
Array<Int>

SELF_DUAL

True if the cone is self-dual.

Type:
Bool

SIMPLE

True if the facets of the cone are simple. Dual to SIMPLICIAL.

Type:
Bool

SIMPLICIAL

True if the facets of the cone are simplicial.

Type:
Bool

SIMPLICIAL_CONE

True if the cone is simplicial.

Type:
Bool

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.

Type:
Int

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.

Type:
Int

EPSILON

Threshold for zero test for scalar products (e.g. vertex * facet normal)

Type:
Float

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.

Type:
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.

Type:
IncidenceMatrix<NonSymmetric>

FULL_DIM

CONE_AMBIENT_DIM and CONE_DIM coincide. Notice that this makes sense also for the derived Polytope class.

Type:
Bool

INEQUALITIES_THRU_RAYS

transposed RAYS_IN_INEQUALITIES Notice that this is a temporary property; it will not be stored in any file.

Type:
IncidenceMatrix<NonSymmetric>

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.

Type:
IncidenceMatrix<NonSymmetric>

LINEALITY_DIM

Dimension of the LINEALITY_SPACE (>0 in the non-POINTED case)

Type:
Int

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.

Type:
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.

Type:
Matrix<Scalar,NonSymmetric>

N_EQUATIONS

The number of EQUATIONS.

Type:
Int

N_INPUT_LINEALITY

The number of INPUT_LINEALITY.

Type:
Int

N_INPUT_RAYS

The number of INPUT_RAYS.

Type:
Int

ONE_RAY

A ray of a pointed cone.

Type:
Vector<Scalar>

POINTED

True if the cone does not contain a non-trivial linear subspace.

Type:
Bool

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.

Type:
Bool

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.

Type:
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.

Type:
IncidenceMatrix<NonSymmetric>

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.

Type:
Matrix<Scalar,NonSymmetric>

REL_INT_POINT

A point in the relative interior of the cone.

Type:
Vector<Scalar>

TRIVIAL

True if the only valid point in the cone is the unique non-sensical point (0,…,0)

Type:
Bool

These properties capture information that depends on the lattice structure of the cone. polymake always works with the integer lattice.

DEGREE_ONE_GENERATORS

Elements of the HILBERT_BASIS for the cone of degree 1 with respect to the MONOID_GRADING.

Type:
Matrix<Integer,NonSymmetric>

GORENSTEIN_CONE

A cone is Gorenstein if it is Q-Gorenstein with index one

Type:
Bool

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)

Type:
Array<Matrix<Integer,NonSymmetric>>
depends on extension:

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

Type:
RationalFunction<Rational,Int>
depends on extension:

HOMOGENEOUS

True if the primitive generators of the rays lie on an affine hyperplane in the span of the rays.

Type:
Bool

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.

Type:
Vector<Integer>
depends on extension:

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.

Type:
Vector<Integer>

N_HILBERT_BASIS

The number of elements of the HILBERT_BASIS.

Type:
Int

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).

Type:
Bool

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.

Type:
Int

SMOOTH_CONE

A cone is smooth if the primitive generators are part of a lattice basis.

Type:
Bool

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

GROUP
Type:
Group
Methods of GROUP:
REPRESENTATIVE_INEQUALITIES()

explicit representatives of equivalence classes of INEQUALITIES under a group action

Returns:
Matrix
REPRESENTATIVE_INPUT_RAYS()

explicit representatives of equivalence classes of INPUT_RAYS under a group action

Returns:
Matrix
Properties of GROUP:
BITSET_ACTION
Type:
ImplicitActionOnSets
MATRIX_ACTION
Type:
MatrixActionOnVectors<Scalar>
Properties of MATRIX_ACTION:
RAYS_ORBITS

Alias for property VECTORS_ORBITS.

Type:
Array<Set<Int>>
REPRESENTATIVE_BOUNDARY_RIDGE_SIMPLICES

One representative for each orbit of boundary ridge simplices

Type:
Array<Bitset<Int>>
REPRESENTATIVE_FACETS
Type:
Matrix<Scalar,NonSymmetric>
REPRESENTATIVE_INTERIOR_RIDGE_SIMPLICES

One representative for each orbit of interior ridge simplices

Type:
Array<Bitset<Int>>
REPRESENTATIVE_MAX_BOUNDARY_SIMPLICES

One representative for each orbit of maximal-dimensional boundary simplices

Type:
Array<Bitset<Int>>
REPRESENTATIVE_MAX_INTERIOR_SIMPLICES

One representative for each orbit of maximal-dimensional interior simplices

Type:
Array<Bitset<Int>>
REPRESENTATIVE_RAYS
Type:
Matrix<Scalar,NonSymmetric>

These properties collect information about triangulations of the object and properties usually computed from such, as the volume.

TRIANGULATION
Type:
GeometricSimplicialComplex<Scalar>
Properties of TRIANGULATION:
BOUNDARY
derived from:
GeometricSimplicialComplex
Type:
GeometricSimplicialComplex
Properties of BOUNDARY:
FACET_TRIANGULATIONS

For each facet the set of simplex indices of BOUNDARY that triangulate it.

Type:
Array<Set<Int>>
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.

Type:
Set<Int>
WEIGHTS

Weight vector to construct a regular TRIANGULATION. Must be generic.

Type:
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.

Type:
Array<Set<Int>>

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.

Type:
Array<String>

FACET_LABELS

Unique names assigned to the FACETS, analogous to RAY_LABELS.

Type:
Array<String>

FTR_CYCLIC_NORMAL

Reordered transposed RAYS_IN_FACETS. Dual to RIF_CYCLIC_NORMAL.

Type:
Array<Array<Int>>

INEQUALITY_LABELS

Unique names assigned to the INEQUALITIES, analogous to RAY_LABELS.

Type:
Array<String>

INPUT_RAY_LABELS

Unique names assigned to the INPUT_RAYS, analogous to RAY_LABELS.

Type:
Array<String>

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.

Type:
Array<Array<Int>>

NEIGHBOR_RAYS_CYCLIC_NORMAL

Reordered GRAPH. Dual to NEIGHBOR_FACETS_CYCLIC_NORMAL.

Type:
Array<Array<Int>>

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.

Type:
Array<String>

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.

Type:
Array<Array<Int>>

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

Returns:
Int

DUAL_DIAMETER()

The diameter of the DUAL_GRAPH

Returns:
Int

DUAL_TRIANGLE_FREE()

True if the DUAL_GRAPH contains no triangle

Returns:
Bool

TRIANGLE_FREE()

True if the GRAPH contains no triangle

Returns:
Bool

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

Returns:
Int

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

Returns:
Int

DUAL_EVEN()

True if the DUAL_GRAPH is bipartite

Returns:
Bool

EVEN()

True if the GRAPH is bipartite

Returns:
Bool

FACET_DEGREES()

Facet degrees of the polytope. The degree of a facet is the number of adjacent facets.

Returns:
Vector<Int>

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.

Parameters:

Int type …: flag type

Returns:
Int

VERTEX_DEGREES()

Ray degrees of the cone

Returns:
Vector<Int>

faces_of_dim(Cone c)

Output the faces of a given dimension

Parameters:

Cone c: the input cone

Returns:
Array<Set<Int>>

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

Returns:
Int

DIM()

returns the geometric dimension of the cone (including the lineality space) for the dimension of the pointed part ask for COMBINATORIAL_DIM

Returns:
Int

contains(Vector<Scalar> v)

checks whether a given point is contained in a cone

Parameters:

Vector<Scalar> v: point

Returns:
Bool

contains_in_interior(Vector<Scalar> v)

checks whether a given point is contained in the strict interior of a cone

Parameters:

Vector<Scalar> v: point

Returns:
Bool

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

Returns:
Matrix<Integer>

The following methods compute topological invariants.

DUAL_GRAPH_SIGNATURE()

Difference of the black and white nodes if the DUAL_GRAPH is BIPARTITE. Otherwise -1.

Returns:
Int

GRAPH_SIGNATURE()

Difference of the black and white nodes if the GRAPH is BIPARTITE. Otherwise -1.

Returns:
Int

These methods are for visualization.

VISUAL()

Visualizes the cone, intersected with the unit ball.

Options:
option list Visual::Polygons::decorations
option list geometric_options_linear
Returns:
Visual::Cone

• documentation/latest/polytope/cone.txt