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: group, ideal, topaz

Objects

User Functions

  •  

    These clients provide consistency checks, e.g. whether a given list of rays and cones defines a polyhedral fan.

  •  

    All around Tight spans of finite metric spaces and their conections to polyhedral geometry

    •  
      max_metric (n) → Matrix

      Compute a metric such that the f-vector of its tight span is maximal among all metrics with n points.

      See Herrmann and Joswig: Bounds on the f-vectors of tight spans, Contrib. Discrete Math., Vol.2, (2007)
      Parameters
      Intn
      the number of points
      Returns
      Matrix

      Example:
      • To compute the max-metric of five points and display the f-vector of its tight span, do this:> $M = max_metric(5);> $PC = metric_tight_span($M,extended=>1);> print $PC->POLYTOPAL_SUBDIVISION->TIGHT_SPAN->F_VECTOR; 16 20 5
    •  
      metric_extended_tight_span (M) → PolyhedralComplex

      Computes a extended tight span which is a PolyhedralComplex with induced from a mertic.

      Parameters
      Matrix<Rational>M
      a metric
      Returns
      PolyhedralComplex

      Example:
      • To compute the thrackle-metric of five points and display the f-vector of its tight span, do this:> $M = thrackle_metric(5);> $PC = metric_extended_tight_span($M);> print $PC->F_VECTOR; 16 20 5
    •  
      metric_tight_span (M) → SubdivisionOfPoints

      Computes a SubdivisionOfPoints with a weight function which is induced from a mertic.

      Parameters
      Matrix<Rational>M
      a metric
      Options
      Boolextended
      If true, the extended tight span is computed.
      Returns
      SubdivisionOfPoints

      Example:
      • To compute the thrackle-metric of five points and display the f-vector of its tight span, do this:> $M = thrackle_metric(5);> $PC = metric_tight_span($M,extended=>1);> print $PC->POLYTOPAL_SUBDIVISION->TIGHT_SPAN->F_VECTOR; 16 20 5
    •  
      min_metric (n) → Matrix

      Compute a metric such that the f-vector of its tight span is minimal among all metrics with n points.

      See Herrmann and Joswig: Bounds on the f-vectors of tight spans, Contrib. Discrete Math., Vol.2, (2007)
      Parameters
      Intn
      the number of points
      Returns
      Matrix

      Example:
      • To compute the min-metric of five points and display the f-vector of its tight span, do this:> $M = min_metric(5);> $PC = metric_tight_span($M,extended=>1);> print $PC->POLYTOPAL_SUBDIVISION->TIGHT_SPAN->F_VECTOR; 16 20 5
    •  
      thrackle_metric (n) → Matrix

      Compute a thrackle metric on n points. This metric can be interpreted as a lifting function for the thrackle triangulation.

      See De Loera, Sturmfels and Thomas: Gröbner bases and triangulations of the second hypersimplex, Combinatorica 15 (1995)
      Parameters
      Intn
      the number of points
      Returns
      Matrix

      Example:
      • To compute the thrackle-metric of five points and display the f-vector of its tight span, do this:> $M = thrackle_metric(5);> $PC = metric_extended_tight_span($M);> print $PC->F_VECTOR; 16 20 5
    •  
      tight_span_max_metric (n) → SubdivisionOfPoints

      Compute a SubdivisionOfPoints with a tight span of a metric such that the f-vector is maximal among all metrics with n points.

      See Herrmann and Joswig: Bounds on the f-vectors of tight spans, Contrib. Discrete Math., Vol.2, (2007)
      Parameters
      Intn
      the number of points
      Returns
      SubdivisionOfPoints

      Example:
      • To compute the f-vector of the tight span with maximal f-vector, do this:> print tight_span_max_metric(5)->POLYTOPAL_SUBDIVISION->TIGHT_SPAN->F_VECTOR; 11 15 5
    •  
      tight_span_min_metric (n) → SubdivisionOfPoints

      Compute a SubdivisionOfPoints with a tight span of a metric such that the f-vector is minimal among all metrics with n points.

      See Herrmann and Joswig: Bounds on the f-vectors of tight spans, Contrib. Discrete Math., Vol.2, (2007)
      Parameters
      Intn
      the number of points
      Returns
      SubdivisionOfPoints

      Example:
      • To compute the f-vector of the tight span with minimal f-vector, do this:> print tight_span_min_metric(5)->POLYTOPAL_SUBDIVISION->TIGHT_SPAN->F_VECTOR; 11 15 5
    •  
      tight_span_thrackle_metric (n) → SubdivisionOfPoints

      Compute SubdivisionOfPoints with a tight span of th thrackle metric on n points. This metric can be interpreted as a lifting function which induces the thrackle triangulation of the second hypersimplex.

      See De Loera, Sturmfels and Thomas: Gröbner bases and triangulations of the second hypersimplex, Combinatorica 15 (1995)
      Parameters
      Intn
      the number of points
      Returns
      SubdivisionOfPoints

      Example:
      • To compute the $f$-vector, do this:> print tight_span_min_metric(5)->POLYTOPAL_SUBDIVISION->TIGHT_SPAN->F_VECTOR; 11 15 5
  •  

    Special purpose functions.

    •  
      building_set (the, n) → PowerSet

      Produce a building set from a family of sets.

      Parameters
      Set<Set>the
      generators of the building set
      Intn
      the size of the ground set
      Returns
      PowerSet
    •  
      cone_of_tubing (G, T) → Cone

      Output the cone of a tubing

      Parameters
      GraphG
      the input graph
      GraphT
      the input tubing
      Returns
      Cone
    •  
      flip_tube (G, T, t) → Graph

      Flip a tubing in a tube

      Parameters
      GraphG
      the input graph
      GraphT
      the input tubing
      Intt
      the tube to flip, identified by its root
      Returns
      Graph
    •  
      is_building_set (the, n) → Bool

      Check if a family of sets is a building set.

      Parameters
      PowerSetthe
      would-be building set
      Intn
      the size of the ground set
      Returns
      Bool
    •  
      is_B_nested (the, the) → Bool

      Check if a family of sets is nested wrt a given building set.

      Parameters
      Set<Set>the
      would-be nested sets
      PowerSetthe
      building set
      Returns
      Bool
    •  
      tubes_of_graph (G) → Set<Set>

      Output the set of all tubes of a graph

      Parameters
      GraphG
      the input graph
      Returns
      Set<Set>
    •  
      tubes_of_tubing (G, T) → Set<Set>

      Output the tubes of a tubing

      Parameters
      GraphG
      the input graph
      GraphT
      the input tubing
      Returns
      Set<Set>
    •  
      tubing_of_graph (G) → Set<Set>

      Output one tubing of a graph

      Parameters
      GraphG
      the input graph
      Returns
      Set<Set>
  •  

    These clients provide standard constructions for PolyhedralFan objects, e.g. from polytopes (face_fan or normal_fan) or from other fans (via projection, refinement or product).

  •  

    These clients provide constructions for PolyhedralComplex objects.

    •  
      mixed_subdivision (P_0, P_1, VIF, t_0, t_1) → PolyhedralComplex

      Create a weighted mixed subdivision of the Minkowski sum of two polytopes, using the Cayley trick. The polytopes must have the same dimension, at least one of them must be pointed. The vertices of the first polytope P_0 are weighted with t_0, and the vertices of the second polytope P_1 with t_1.

      Default values are t_0=t_1=1.

      Parameters
      PolytopeP_0
      the first polytope
      PolytopeP_1
      the second polytope
      Array<Set>VIF
      the indices of the vertices of the mixed cells
      Scalart_0
      the weight for the vertices of P_0; default 1
      Scalart_1
      the weight for the vertices of P_1; default 1
      Options
      Boolno_labels
      Do not copy VERTEX_LABELS from the original polytopes. default: 0
      Returns
      PolyhedralComplex
    •  
      mixed_subdivision (m, C, a) → PolyhedralComplex

      Create a weighted mixed subdivision of a Cayley embedding of a sequence of polytopes. Each vertex v of the i-th polytope is weighted with t_i, the i-th entry of the optional array t.

      Parameters
      Intm
      the number of polytopes giving rise to the Cayley embedding
      PolytopeC
      the Cayley embedding of the input polytopes
      Array<Set>a
      triangulation of C
      Options
      Vector<Scalar>t
      scaling for the Cayley embedding; defaults to the all-1 vector
      Boolno_labels
      Do not copy VERTEX_LABELS from the original polytopes. default: 0
      Returns
      PolyhedralComplex
    •  
      mixed_subdivision (A) → PolyhedralComplex

      Create a weighted mixed subdivision of a sequence (P1,...,Pm) of polytopes, using the Cayley trick. All polytopes must have the same dimension, at least one of them must be pointed. Each vertex v of the i-th polytope is weighted with t_i, the i-th entry of the optional array t.

      Parameters
      Array<Polytope>A
      the input polytopes
      Options
      Vector<Scalar>t
      scaling for the Cayley embedding; defaults to the all-1 vector
      Boolno_labels
      Do not copy VERTEX_LABELS from the original polytopes. default: 0
      Returns
      PolyhedralComplex
    •  
      tiling_quotient <Coord> (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.

      Type Parameters
      Coord
      Parameters
      PolytopeP
      a polytope
      PolytopeQ
      a polytope that tiles space
      Returns
      PolyhedralComplex

Common Option Lists

  •  

    These options capture geometric information of the object. Geometric properties depend on geometric information of the object, like, e.g., vertices or facets.

    •  
      secondary_cone_options

      Parameters for user method secondary_cone.

      Options
      Matrix<Scalar>equations
      system of linear equation the cone is cut with
      Set<Int>lift_to_zero
      restrict lifting function to zero at points designated
      Boollift_face_to_zero
      restrict lifting functions to zero at the entire face spanned by points designated
      Booltest_regularity
      throws an exception if subdivision is not regular
  •  

    These options are for visualization.