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.
uses: group, ideal, topaz
Objects
- derived from: PolyhedralFan
A polyhedral complex. The derivation from PolyhedralFan works like the derivation of Polytope from Cone.
Properties of PolyhedralComplex
- MAXIMAL_POLYTOPES_COMBINATORIAL_DIMS: common::Array<Int>
Alias for property MAXIMAL_CONES_COMBINATORIAL_DIMS.
- MAXIMAL_POLYTOPES_FACETS: common::SparseMatrix<Int, NonSymmetric>
Alias for property MAXIMAL_CONES_FACETS.
- POINTS: common::Matrix<Scalar, NonSymmetric>
overrides of derived PolyhedralFan properties; similar to overrides for Polytope objects derived from Cone Alias for property INPUT_RAYS.
- UNDOCUMENTED
- MAXIMAL_CELLS: common::IncidenceMatrix<NonSymmetric>
Maximal cells of the polyhedral complex. Indices refer to POINTS. Points do not have to be vertices of the cells.
- UNDOCUMENTED
- CONVEX: common::Bool
True if POINTS are in convex position. In this case POINTS and RAYS, and MAXIMAL_CELLS and MAXIMAL_POLYTOPES are equal. FIXME: This should possibly either go or be duplicated in application polytope. Keep an eye on it!
User Methods of PolyhedralComplex
- AMBIENT_DIM ()
UNDOCUMENTED
- DIM ()
UNDOCUMENTED
- UNDOCUMENTED
- VISUAL ()
Visualizes the polyhedral complex. The cells of the complex may have interior points. return: Visual::PolyhedralComplex
Options
option list: Visual::Polygons::decorations - VISUAL ()
Visualizes the polyhedral complex. return: Visual::PolyhedralComplex
Options
option list: Visual::Polygons::decorations
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.
Properties of PolyhedralFan
- UNDOCUMENTED
- UNDOCUMENTED
- COMPLETE: common::Bool
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.
- CONES: common::Array<IncidenceMatrix<NonSymmetric>>
List of all cones of the fan of each dimension. Indices refer to RAYS.
- 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, NonSymmetric>
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 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: graph::FaceLattice
The 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.
- MAXIMAL_CONES: common::IncidenceMatrix<NonSymmetric>
Non redundant list of maximal cones. Indices refer to RAYS.
- MAXIMAL_CONES_COMBINATORIAL_DIMS: common::Array<Int>
The combinatorial dimensions of the maximal cones.
- MAXIMAL_CONES_INCIDENCES: common::Array<IncidenceMatrix<NonSymmetric>>
Array of incidence matrices of all maximal cones
- UNDOCUMENTED
- FACET_NORMALS: common::Matrix<Scalar, NonSymmetric>
The possible facet normals of all maximal cones.
- LINEALITY_SPACE: common::Matrix<Scalar, NonSymmetric>
Since we do not require our cones to be pointed: a basis of the lineality space of the fan. Co-exists with RAYS.
- LINEAR_SPAN_NORMALS: common::Matrix<Scalar, NonSymmetric>
The possible linear span normals of all maximal cones.
- 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_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, NonSymmetric>
A basis of the orthogonal complement to LINEALITY_SPACE.
- RAYS: common::Matrix<Scalar, NonSymmetric>
Rays from which the cones are formed. Non-redundant. Co-exists with LINEALITY_SPACE.
- UNDOCUMENTED
- INPUT_CONES: common::Array<Set<Int>>
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
Input section only. Ask for MAXIMAL_CONES if you want to know the maximal cones (indexed by RAYS)
- INPUT_LINEALITY: common::Matrix<Scalar, NonSymmetric>
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.
- INPUT_RAYS: common::Matrix<Scalar, NonSymmetric>
Rays from which the cones are formed. May be redundant. 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
- UNDOCUMENTED
- HOMOLOGY: topaz::Array<HomologyGroup<Integer>>
The homology of the intersection of the fan with the unit sphere.
- INTERSECTION_COMPLEX: topaz::SimplicialComplex
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.
- UNDOCUMENTED
- INPUT_RAY_LABELS: common::Array<String>
Unique names assigned to the INPUT_RAYS. Similar to RAY_LABELS for RAYS.
- 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.
User Methods of PolyhedralFan
- cone ()
Gives the ith maximal cone.
- UNDOCUMENTED
- MAXIMAL_CONES_DIMS ()
The dimensions of the maximal cones.
- UNDOCUMENTED
- AMBIENT_DIM ()
returns the dimension of the ambient space
- DIM ()
returns the dimension of the linear space spanned by the fan
- UNDOCUMENTED
- VISUAL ()
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
- derived from: PolyhedralFan
Properties of PolyhedralFan<Rational>
- UNDOCUMENTED
- GORENSTEIN: common::Bool
A fan is GORENSTEIN if it is Q_GORENSTEIN with Q_GORENSTEIN_INDEX equal to one
- Q_GORENSTEIN: common::Bool
A fan is Q_GORENSTEIN if each maximal cone is a polytope::Cone<Rational>::Q_GORENSTEIN_CONE
- 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.
- derived from: PolyhedralFan
A PolyhedralFan with a symmetry group acting on the coordinates.
Properties of SymmetricFan
- UNDOCUMENTED
- UNDOCUMENTED
- CONES_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, NonSymmetric>
The possible facet normals of all maximal cone representatives.
- REPS_LINEAR_SPAN_NORMALS: common::Matrix<Scalar, NonSymmetric>
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.
- Category: Tropical varietiesderived from: PolyhedralFan
the tropical variety defined by a fan
Properties of TropicalVariety
- UNDOCUMENTED
User Functions
- common_refinement (f1, f2) → PolyhedralFan
Computes the common refinement of two complete fans.
- UNDOCUMENTED
- check_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 ...) → PolyhedralFan
Checks whether the polytope::Cone objects form a polyhedral fan. If this is the case, returns that PolyhedralFan.
- UNDOCUMENTED
- normal_fan (p)
- UNDOCUMENTED
- tiling_quotient (P, Q) → PolyhedralComplex
Calculates the quotient of P by Q+L, where Q+L is a lattice tiling. The result is a polytopal complex inside Q.
- UNDOCUMENTED
- groebner_fan (I)
- UNDOCUMENTED
- projection (P, indices) → PolyhedralFan
Orthogonally project a pointed fan to a coordinate subspace.
The subspace the fan P is projected on is given by indices in the set indices. The option revert inverts the coordinate list.
Parameters
PolyhedralFan P Array<Int> indices Options
Bool revert inverts the coordinate listReturns
PolyhedralFan - projection_full (P) → PolyhedralFan
Orthogonally project a fan to a coordinate subspace such that redundant columns are omitted, i.e., the projection becomes full-dimensional without changing the combinatorial type.
- UNDOCUMENTED
- secondary_fan (M)
Call wiki:external_software#gfan to compute the secondary cone of a vector configuration.
Parameters
Matrix M whose rows are the vectors in the configuration