from application fan
A polyhedral fan. The current restriction is that each cone in the fan has to be pointed. This will be relaxed later. If a fan is specified via INPUT_RAYS
and INPUT_CONES
each input cone must list all the input rays incident. Once non-trivial linealities are allowed the following will apply: The RAYS
always lie in a linear subspace which is complementary to the LINEALITY_SPACE
.
Scalar
: numeric data type used for the coordinates, must be an ordered field
PolyhedralFan<Rational>
: Unnamed full specialization of PolyhedralFan
A typical example is the normal fan of a convex polytope.
> $f=normal_fan(polytope::cube(3)); > print $f->F_VECTOR; 6 12 8
permuting the MAXIMAL_CONES
permuting the RAYS
These properties are for input only. They allow redundant information.
INPUT_CONES
Maybe redundant list of not necessarily maximal cones. Indices refer to INPUT_RAYS
. Each cone must list all rays of INPUT_RAYS
it contains. The cones are allowed to contain lineality. Cones which do not have any rays correspond to the trivial cone (contains only the origin). An empty fan does not have any cones. Input section only. Ask for MAXIMAL_CONES
if you want to know the maximal cones (indexed by RAYS
).
INPUT_CONES_REPS
Maybe redundant list of not necessarily maximal cones, one from each orbit. All vectors in the input must be non-zero. Indices refer to INPUT_RAYS
.
INPUT_LINEALITY
Vectors whose linear span defines a subset of the lineality space of the fan; redundancies are allowed. Input section only. Ask for LINEALITY_SPACE
if you want to know the lineality space.
Matrix<Scalar,NonSymmetric>
INPUT_RAYS
Rays from which the cones are formed. May be redundant. All vectors in the input must be non-zero. You also need to provide INPUT_CONES
to define a fan completely. Input section only. Ask for RAYS
if you want a list of non-redundant rays.
Matrix<Scalar,NonSymmetric>
INPUT_RAYS_REPS
One Ray from each orbit. May be redundant.
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.
COMBINATORIAL_DIM
Combinatorial dimension.
COMPLETE
The polyhedral fan is complete if its suport is the whole space. Due to undecidability issues this is checked heuristically only. See the remarks on SPHERE for details. Note that in the case of a polyhedral complex, this refers to the underlying fan, so should always be false.
CONES
List of all cones of the fan of each dimension. Indices refer to RAYS
.
CONES_COMBINATORIAL_DIMS
The combinatorial dimensions of the cones.
DUAL_GRAPH
The graph whose nodes are the maximal cones which are connected if they share a common facet. Only defined if PURE
F2_VECTOR
fik is the number of incident pairs of i-dimensional cones and k-dimensional cones; the main diagonal contains the F_VECTOR
.
F_VECTOR
fk is the number of k-dimensional cones starting from dimension k=1.
GRAPH
The graph of the fan intersected with a sphere, that is, the vertices are the rays which are connected if they are contained in a common two-dimensional cone.
HASSE_DIAGRAM
MAXIMAL_CONES
Non redundant list of maximal cones. Indices refer to RAYS
. Cones which do not have any rays correspond to the trivial cone (contains only the origin). An empty fan does not have any cones.
MAXIMAL_CONES_COMBINATORIAL_DIMS
The combinatorial dimensions of the maximal cones.
MAXIMAL_CONES_INCIDENCES
Array of incidence matrices of all maximal cones.
MAXIMAL_CONES_THRU_RAYS
Transposed to MAXIMAL_CONES
. Notice that this is a temporary property; it will not be stored in any file.
N_CONES
Number of CONES
.
N_MAXIMAL_CONES
Number of MAXIMAL_CONES
.
PURE
The polyhedral fan is pure if all maximal cones are of the same dimension.
SIMPLICIAL
The polyhedral fan is simplicial if all maximal cones are simplicial.
These properties capture geometric information of the object. Geometric properties depend on geometric information of the object, like, e.g., vertices or facets.
FACET_NORMALS
The possible facet normals of all maximal cones.
Matrix<Scalar,NonSymmetric>
FAN_AMBIENT_DIM
Dimension of the space which contains the polyhedral fan.
FAN_DIM
Dimension of the polyhedral fan.
FULL_DIM
True if FAN_DIM
and FAN_AMBIENT_DIM
coincide.
LINEALITY_DIM
Dimension of LINEALITY_SPACE
.
LINEALITY_SPACE
Since we do not require our cones to be pointed: a basis of the lineality space of the fan. Co-exists with RAYS
.
Matrix<Scalar,NonSymmetric>
LINEAR_SPAN_NORMALS
The possible linear span normals of all maximal cones.
Matrix<Scalar,NonSymmetric>
MAXIMAL_CONES_FACETS
Tells for each maximal cone what are its facets. A negative number means that the corresponding row of FACET_NORMALS
has to be negated.
MAXIMAL_CONES_LINEAR_SPAN_NORMALS
Tells for each maximal cone what is its linear span. Indices refer to LINEAR_SPAN_NORMALS
. Rows correspond to MAXIMAL_CONES_FACETS
.
N_FACET_NORMALS
The number of possible facet normals of all maximal cones.
N_INPUT_RAYS
Number of INPUT_RAYS
.
N_RAYS
Number of RAYS
.
ORTH_LINEALITY_SPACE
A basis of the orthogonal complement to LINEALITY_SPACE
.
Matrix<Scalar,NonSymmetric>
POINTED
True if LINEALITY_SPACE
is trivial.
PSEUDO_REGULAR
True if the fan is a subfan of a REGULAR
fan
RAYS
Rays from which the cones are formed. Non-redundant. Co-exists with LINEALITY_SPACE
.
Matrix<Scalar,NonSymmetric>
REGULAR
True if the fan is the normal fan of a bounded polytope.
These properties capture information of the object that is concerned with the action of permutation groups.
CONES_ORBIT_SIZES
Number of CONES_REPS
in each orbit.
CONES_REPS
List of all cones of all dimensions of the fan, one from each orbit. Indices refer to RAYS
.
GROUP
REPRESENTATIVE_INPUT_CONES
explicit representatives of equivalence classes of INPUT_CONES
under a group action
REPRESENTATIVE_INPUT_RAYS
explicit representatives of equivalence classes of INPUT_RAYS
under a group action
MATRIX_ACTION
MatrixActionOnVectors<Scalar>
MAXIMAL_CONES_ACTION
REPRESENTATIVE_COMBINATORIAL_DIMS
dimensions of representatives of maximal cones
REPRESENTATIVE_F_VECTOR
counts how many representatives of maximal cones there are in each dimension
REPRESENTATIVE_CONES
REPRESENTATIVE_MAXIMAL_CONES
REPRESENTATIVE_RAYS
Matrix<Scalar,NonSymmetric>
MAXIMAL_CONES_IN_ORBITS
Tells which maximal cone is in the orbit of which representative, indices refers to rows of MAXIMAL_CONES
.
MAXIMAL_CONES_ORBIT_SIZES
Number of MAXIMAL_CONES_REPS
in each orbit.
MAXIMAL_CONES_REPS
Non redundant list of maximal cones, one from each orbit. Indices refer to RAYS
.
MAXIMAL_CONES_REPS_DIMS
The dimensions of MAXIMAL_CONES_REPS
.
MAXIMAL_CONES_REPS_FACETS
Tells for each maximal cone representative what are its facets. A negative number means that the corresponding row of REPS_FACET_NORMALS
has to be negated.
MAXIMAL_CONES_REPS_LINEAR_SPAN_NORMALS
Tells for each maximal cone representative what is its linear span. Indices refer to REPS_LINEAR_SPAN_NORMALS
. Rows correspond to MAXIMAL_CONES_REPS_FACETS
N_MAXIMAL_CONE_ORBITS
Number of orbits of MAXIMAL_CONES
.
N_RAY_ORBITS
Number of orbits of RAYS
.
N_SYMMETRIES
Number of elements of the symmetry group.
ORBITS_F_VECTOR
fk is the number of k-dimensional cones up to symmetry.
RAYS_IMAGES
Each row contains the image of all RAYS
under one element of the symmetry group.
RAYS_IN_ORBITS
Tells which ray is in the orbit of which representative, indices refers to rows of RAYS
.
RAYS_ORBIT_SIZES
Number of elements of each orbit of RAYS
.
RAYS_REPS
One ray from each orbit. Non-redundant.
Matrix<Scalar,NonSymmetric>
RAYS_REPS_LABELS
Unique names assigned to the RAYS_REPS
.
REPS_FACET_NORMALS
The possible facet normals of all maximal cone representatives.
Matrix<Scalar,NonSymmetric>
REPS_LINEAR_SPAN_NORMALS
The possible linear span normals of all maximal cone representatives.
Matrix<Scalar,NonSymmetric>
SYMMETRY_GENERATORS
Each element of the array is a generator of the subgroup of the symmetric group acting on the coordinates. Each generator is represented by an Array whose i-th entry is the image of the i-th coordinate.
SYMMETRY_GROUP
Each element of the array is an element of the symmetry group.
The following properties are topological invariants.
HOMOLOGY
The homology of the intersection of the fan with the unit sphere.
INTERSECTION_COMPLEX
If the fan is SIMPLICIAL
the simplicial complex obtained by intersection the fan with the unit sphere. If the fan is not SIMPLICIAL
the crosscut complex of the intersection.
Properties coming from associated toric varieties
GORENSTEIN
A fan is Gorenstein if it is Q_GORENSTEIN
with Q_GORENSTEIN_INDEX
equal to one.
Q_GORENSTEIN
A fan is Q-GORENSTEIN if each maximal cone is Q_Gorenstein.
Q_GORENSTEIN_INDEX
If a fan is Q_GORENSTEIN
, then its Q-Gorenstein index is the least common multiple of the Q-Gorenstein indices of its maximal cones. Otherwise Q_GORENSTEIN_INDEX is undefined.
SMOOTH_FAN
A fan is smooth if all cones of the fan are smooth.
These properties are for visualization.
INPUT_RAY_LABELS
Unique names assigned to the INPUT_RAYS
. Similar to RAY_LABELS
for RAYS
.
MAXIMAL_CONE_LABELS
Unique names assigned to the MAXIMAL_CONES
. Similar to RAY_LABELS
for RAYS
.
RAY_LABELS
Unique names assigned to the RAYS
. If specified, they are shown by visualization tools instead of vertex indices. For a polyhedral fan built from scratch, you should create this property by yourself, either manually in a text editor, or with a client program.
These methods capture combinatorial information of the object. Combinatorial properties only depend on combinatorial data of the object like, e.g., the face lattice.
CONES_DIMS()
The dimensions of the cones.
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.
DIM()
Returns the dimension of the linear space spanned by the fan.
These methods capture information of the object that is concerned with the action of permutation groups.
These methods are for visualization.
VISUAL()
Visualizes the fan, intersected with the unit ball.
geometric_options_linear