application: fan
This application deals with polyhedral fans. You can define a fan, e.g. via its RAYS and MAXIMAL_CONES and compute several properties like HASSE_DIAGRAM and F_VECTOR.
imports from: common, graph, polytope
uses: topaz
Objects
- PolyhedralFan
A polyhedral fan
Properties of PolyhedralFan
- GORENSTEIN: common::Bool
A fan is GORENSTEIN if it is Q_GORENSTEIN with Q_GORENSTEIN_INDEX equal to one
- Q_GORENSTEIN_INDEX: common::Int
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.
- Basic propertiesCOMBINATORIAL_DIM: common::Int
the combinatorial dimension, that is, the dimension of the fan modulo its LINEALITY_SPACE.
CONES: common::Array<IncidenceMatrix<NonSymmetric>>List of all cones of the fan of each dimension. Indices refer to RAYS.
INPUT_CONES: common::Array<Set<Int>>Maybe redundant list of not necessarily maximal cones. Indices refer to INPUT_RAYS.
INPUT_LINEALITY: common::Matrix<Scalar>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.
LINEALITY_SPACE: common::Matrix<Scalar>Since we do not require our cones to be pointed: a basis of the lineality space of the fan.
MAXIMAL_CONES: common::IncidenceMatrix<NonSymmetric>Non redundant list of maximal cones. Indices refer to RAYS.
MAXIMAL_CONES_FACETS: common::SparseMatrix<Int, NonSymmetric>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_INCIDENCES: common::Array<IncidenceMatrix<NonSymmetric>>array of incidence matrices of all maximal cones
MAXIMAL_CONES_LINEAR_SPAN_NORMALS: common::IncidenceMatrix<NonSymmetric>Tells for each maximal cone what is its linear span. Indices refer to LINEAR_SPAN_NORMALS. Rows correspond to MAXIMAL_CONES_FACETS
ORTH_LINEALITY_SPACE: common::Matrix<Scalar>A basis of the orthogonal complement to LINEALITY_SPACE.
RAY_LABELS: common::Array<String>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.
- CombinatoricsCOMPLETE: common::Bool
The polyhedral fan is complete if its suport is the whole space.
Due to undecibilty issues this is checked heuristically only. See the remarks on SPHERE for details.
DUAL_GRAPH: graph::Graph<Undirected>The graph whose nodes are the maximal cones which are connected if they share a common facet.
F2_VECTOR: common::Matrix<Integer>f_ik is the number of incident pairs of i-dimensional cones and k-dimensional cones; the main diagonal contains the F_VECTOR.
GRAPH: graph::Graph<Undirected>The graph of the cone 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: graph::FaceLatticeThe poset of subcones of the polyhedral fan organized as a directed graph. Each node corresponds to some proper subcone of the fan. The nodes corresponding to the rays and maximal cones appear in the same order as the elements of RAYS and MAXIMAL_CONES properties.
One special node represents the origin.
- TopologyHOMOLOGY: topaz::Array<HomologyGroup>
The homology of the intersection of the fan with the unit sphere.
INTERSECTION_COMPLEX: topaz::SimplicialComplexIf 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 insersection.
User Methods of PolyhedralFan
- cone ()
Gives the ith maximal cone.
- VisualizationVISUAL ()
Visualizes the fan, intersected with the unit ball. return: Visual::PolyhedralFan
FIXME: use combinatorics via MAXIMAL_CONES_FACETS
Options
option list: Visual::Polygons::decorations
Permutations of PolyhedralFan
- SymmetricFanderived from: PolyhedralFan
A PolyhedralFan with a symmetry group acting on the coordinates.
Properties of SymmetricFan
- Basic propertiesCONES_REPS: common::Array<Array<Set<Int>>>
List of all cones of all dimensions of the fan, one from each orbit. Indices refer to RAYS.
INPUT_CONES_REPS: common::Array<Set<Int>>Maybe redundant list of not necessarily maximal cones, one from each orbit. Indices refer to INPUT_RAYS.
MAXIMAL_CONES_IN_ORBITS: common::Array<Set<Int>>Tells which maximal cone is in the orbit of which representative, indices refers to rows of MAXIMAL_CONES.
MAXIMAL_CONES_REPS: common::Array<Set<Int>>Non redundant list of maximal cones, one from each orbit. Indices refer to RAYS.
MAXIMAL_CONES_REPS_FACETS: common::SparseMatrix<Int, NonSymmetric>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: common::IncidenceMatrix<NonSymmetric>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
RAYS_IMAGES: common::Array<Array<Int>>Each row contains the image of all RAYS under one element of the symmetry group.
RAYS_IN_ORBITS: common::Array<Set<Int>>Tells which ray is in the orbit of which representative, indices refers to rows of RAYS.
REPS_FACET_NORMALS: common::Matrix<Scalar>The possible facet normals of all maximal cone representatives.
REPS_LINEAR_SPAN_NORMALS: common::Matrix<Scalar>The possible linear span normals of all maximal cone representatives.
SYMMETRY_GENERATORS: common::Array<Array<Int>>Each element of the array is a generator of the subgroup of the symmetric group acting on the coordintates. Each generator is represented by an Array whose ith entry is the image of ith coordinate.
SYMMETRY_GROUP: common::Array<Array<Int>>Each element of the array is an element of the symmetry group.
User Methods of SymmetricFan
- cone_representative ()
Gives the ith maximal cone representative.
- TropicalVarietyderived from: PolyhedralFan
UNDOCUMENTED
Properties of TropicalVariety
User Functions
- common_refinement (f1, f2) → PolyhedralFan
Computes the common refinement of two complete fans.
- Consistency checkcheck_fan (rays, cones) → PolyhedralFan
Checks whether a given set of rays together with a list cones defines a polyhedral fan. If this is the case, the ouput is the PolyhedralFan defined by rays as INPUT_RAYS, cones as INPUT_CONES, lineality_space as LINEALITY_SPACE if this option is given.
Parameters
Matrix rays Array< Set<int> > cones Options
Matrix lineality_space Common lineality space for the cones.Bool verbose prints information about the check.Returns
PolyhedralFan check_fan_objects (C ...) → PolyhedralFanChecks whether the polytope::Cone objects form a polyhedral fan. If this is the case, returns that PolyhedralFan.
- Constructing a fanhyperplane_arrangement (H)
Compute the fan given by a bunch of hyperplanes H.
Parameters
Matrix H normal_fan (p)Computes the normal fan of p.
Parameters
Polytope p