====== BigObject Cycle ====== //from application [[..:tropical|tropical]]//\\ \\ A tropical cycle is a weighted, balanced, pure polyhedral complex. It is given as a polyhedral complex in tropical projective coordinates. To be precise: Each row of ''[[..:fan:PolyhedralComplex#VERTICES |VERTICES]]'' and ''[[..:fan:PolyhedralFan#LINEALITY_SPACE |LINEALITY_SPACE]]'' has a leading 1 or 0, depending on whether it is a vertex or a ray. The remaining n coordinates are interpreted as an element of Rn modulo (1,..,1). IMPORTANT NOTE: VERTICES are assumed to be normalized such that the first coordinate (i.e. column index 1) is 0. If your input is not of that form, use ''[[..:tropical:Cycle#PROJECTIVE_VERTICES |PROJECTIVE_VERTICES]]''. Note that there is a convenience method ''[[..:tropical#thomog |thomog]]'', which converts affine coordinates into projective coordinates. ? Type Parameters: :: ''Addition'': The tropical addition. Warning: There is NO default for this, you have to choose either ''[[..:common#Max |Max]]'' or ''[[..:common#Min |Min]]''. ? derived from: : ''[[..:fan:PolyhedralComplex |PolyhedralComplex]]'' ? Permutations: : ? CodimPerm: :: permuting ''[[..:tropical:Cycle#CODIMENSION_ONE_POLYTOPES |CODIMENSION_ONE_POLYTOPES]]'' ===== Properties ===== ==== Input property ==== These properties are for input only. They allow redundant information. ---- {{anchor:projective_vertices:}} ? **''PROJECTIVE_VERTICES''** :: A list of (non-redundant) vertices and rays of the complex. Note that ''[[..:fan:PolyhedralComplex#VERTICES |VERTICES]]'' are supposed to be normalized to a leading 0. If you want to input non-normalized vertices, use this property. ''[[..:fan:PolyhedralComplex#VERTICES |VERTICES]]'' will be derived from this: Each row of ''[[..:fan:PolyhedralComplex#VERTICES |VERTICES]]'' is just the corresponding row of ''[[..:tropical:Cycle#PROJECTIVE_VERTICES |PROJECTIVE_VERTICES]]'', with the first coordinate (i.e. column index 1) normalized to 0. ? Type: :''[[..:common#Matrix |Matrix]]<[[..:common#Rational |Rational]],[[..:common#NonSymmetric |NonSymmetric]]>'' ---- ==== Affine and projective coordinates ==== These properties deal with affine and projective coordinates, conversion between those and properties like dimension that change in projective space. ---- {{anchor:projective_ambient_dim:}} ? **''PROJECTIVE_AMBIENT_DIM''** :: This is the ambient projective dimension, i.e. it is ''[[..:fan:PolyhedralFan#FAN_AMBIENT_DIM |FAN_AMBIENT_DIM]]''-2. ? Type: :''[[..:common#Int |Int]]'' ---- {{anchor:projective_codimension:}} ? **''PROJECTIVE_CODIMENSION''** :: Codimension of the cycle. Same as ''[[..:tropical:Cycle#PROJECTIVE_AMBIENT_DIM |PROJECTIVE_AMBIENT_DIM]]'' - ''[[..:tropical:Cycle#PROJECTIVE_DIM |PROJECTIVE_DIM]]'' ? Type: :''[[..:common#Int |Int]]'' ---- {{anchor:projective_dim:}} ? **''PROJECTIVE_DIM''** :: This is the projective dimension of the cycle. Alias for ''[[..:fan:PolyhedralComplex#DIM |DIM]]''. ? Type: :''[[..:common#Int |Int]]'' ---- ==== Combinatorics ==== These properties capture combinatorial information of the object. Combinatorial properties only depend on combinatorial data of the object like, e.g., the face lattice. ---- {{anchor:codimension_one_polytopes:}} ? **''CODIMENSION_ONE_POLYTOPES''** :: Non-redundant list of all codimension one faces. Indices refer to ''[[..:fan:PolyhedralComplex#VERTICES |VERTICES]]''. Does not include any far faces. ? Type: :''[[..:common#IncidenceMatrix |IncidenceMatrix]]<[[..:common#NonSymmetric |NonSymmetric]]>'' ---- {{anchor:facet_normals_by_pairs:}} ? **''FACET_NORMALS_BY_PAIRS''** :: This maps an index pair (i,j), where i corresponds to the i-th row of ''[[..:tropical:Cycle#CODIMENSION_ONE_POLYTOPES |CODIMENSION_ONE_POLYTOPES]]'' and j to the j-th row of ''[[..:fan:PolyhedralComplex#MAXIMAL_POLYTOPES |MAXIMAL_POLYTOPES]]'', to the matching row number in ''[[..:fan:PolyhedralFan#FACET_NORMALS |FACET_NORMALS]]''. ? Type: :''[[..:common#Map |Map]]<[[..:common#Pair |Pair]]<[[..:common#Int |Int]],[[..:common#Int |Int]]>,[[..:common#Int |Int]]>'' ---- {{anchor:maximal_at_codim_one:}} ? **''MAXIMAL_AT_CODIM_ONE''** :: Incidence matrix of codimension one polytopes and maximal polytopes. Rows refer to ''[[..:tropical:Cycle#CODIMENSION_ONE_POLYTOPES |CODIMENSION_ONE_POLYTOPES]]'', columns to ''[[..:fan:PolyhedralComplex#MAXIMAL_POLYTOPES |MAXIMAL_POLYTOPES]]''. ? Type: :''[[..:common#IncidenceMatrix |IncidenceMatrix]]<[[..:common#NonSymmetric |NonSymmetric]]>'' ---- ==== Defining morphisms and functions ==== These properties are used to define morphisms or rational functions on a Cycle. ---- {{anchor:separated_codimension_one_polytopes:}} ? **''SEPARATED_CODIMENSION_ONE_POLYTOPES''** :: An incidence matrix describing which codimension one polytope in the complex is generated by which vertices. Each row corresponds to a codimension one polytope (More precisely, the i-th element represents the same codim 1 polytope as the i-th element of ''[[..:tropical:Cycle#CODIMENSION_ONE_POLYTOPES |CODIMENSION_ONE_POLYTOPES]]''). The indices in a row refer to rows of ''[[..:tropical:Cycle#SEPARATED_VERTICES |SEPARATED_VERTICES]]''. ? Type: :''[[..:common#IncidenceMatrix |IncidenceMatrix]]<[[..:common#NonSymmetric |NonSymmetric]]>'' ? from extension: : [[:external_software|bundled:atint]] ---- {{anchor:separated_conversion_vector:}} ? **''SEPARATED_CONVERSION_VECTOR''** :: A vector with an entry for each row in ''[[..:tropical:Cycle#SEPARATED_VERTICES |SEPARATED_VERTICES]]''. More precisely, the i-th entry gives the row index of the ray in ''[[..:fan:PolyhedralComplex#VERTICES |VERTICES]]'' that is equal to the i-th row of ''[[..:tropical:Cycle#SEPARATED_VERTICES |SEPARATED_VERTICES]]''. ? Type: :''[[..:common#Vector |Vector]]<[[..:common#Int |Int]]>'' ? from extension: : [[:external_software|bundled:atint]] ---- {{anchor:separated_maximal_polytopes:}} ? **''SEPARATED_MAXIMAL_POLYTOPES''** :: An incidence matrix describing which maximal polytope in the complex us generated by which rays. Each row corresponds to a maximal polytope (More precisely, the i-th element represents the same maximal polytope as the i-th element of ''[[..:fan:PolyhedralComplex#MAXIMAL_POLYTOPES |MAXIMAL_POLYTOPES]]''). The indices in a row refer to rows of ''[[..:tropical:Cycle#SEPARATED_VERTICES |SEPARATED_VERTICES]]'', i.e. the maximal polytope described by the i-th element is generated by the vertices corresponding to these row indices. ? Type: :''[[..:common#IncidenceMatrix |IncidenceMatrix]]<[[..:common#NonSymmetric |NonSymmetric]]>'' ? from extension: : [[:external_software|bundled:atint]] ---- {{anchor:separated_vertices:}} ? **''SEPARATED_VERTICES''** :: This is a matrix of vertices of the complex. More precisely, each ray r from ''[[..:fan:PolyhedralComplex#VERTICES |VERTICES]]'' occurs as a row in this matrix... - once, if r_0 = 1 - k times, if r_0 = 0 and k is the number of equivalence classes of maximal cones .. containing r with respect to the following relation: Two maximal cones m, m' containing r are equivalent, if they are equal or there exists a sequence of maximal cones m = m_1,...m_r = m', such that r is contained in each m_i and each intersection m_i cap m_i+1 contains at least one ray s with s_0 = 1. The reason for this is that, when for example specifying a piecewise affine linear function on a polyhedral complex, the same far ray with x0 = 0 might be assigned two different values, if it is contained in two "non-connected" maximal cones (where connectedness is to be understood as described above). If there is a ''[[..:tropical:Cycle#LOCAL_RESTRICTION |LOCAL_RESTRICTION]]'' the above equivalence relation is changed in such a way that the affine ray s with s_0 = 1 that must be contained in the intersection of two subsequent cones must be a compatible ray ? Type: :''[[..:common#Matrix |Matrix]]<[[..:common#Rational |Rational]],[[..:common#NonSymmetric |NonSymmetric]]>'' ? from extension: : [[:external_software|bundled:atint]] ---- ==== Intersection theory ==== These are general properties related to intersection theory. ---- {{anchor:degree:}} ? **''DEGREE''** :: The degree of the tropical variety, i.e. the weight of the intersection product with a uniform tropical linear space of complementary dimension. ? Type: :''[[..:common#Int |Int]]'' ? from extension: : [[:external_software|bundled:atint]] ---- ==== Local computations ==== These properties are used for doing computations locally around a specified part of a Cycle, given via a nontrivial ''[[..:tropical:Cycle#LOCAL_RESTRICTION |LOCAL_RESTRICTION]]''. ---- {{anchor:local_restriction:}} ? **''LOCAL_RESTRICTION''** :: This contains a list of sets of ray indices (referring to ''[[..:fan:PolyhedralComplex#VERTICES |VERTICES]]''). All of these sets should describe polyhedra of the polyhedral complex (though not necessarily maximal ones). A polyhedron is now called compatible with this property, if it contains one of these polyhedra If this list is not empty, all computations will be done only on (or around) compatible cones. The documentation of each property will explain in what way this restriction is enforced. If this list is empty or not defined, there is no restriction. Careful: The implementation assumes that ALL maximal cones are compatible. If in doubt, you can create a complex with a local restriction from a given complex by using one of the "local_..." creation methods This list is assumed to be irredundant, i.e. there are no doubles (though this should not break anything, it is simply less efficient). It is, however, possible that one element is a subset of another. ? Type: :''[[..:common#IncidenceMatrix |IncidenceMatrix]]<[[..:common#NonSymmetric |NonSymmetric]]>'' ? from extension: : [[:external_software|bundled:atint]] ---- ==== Weights and lattices ==== These properties relate to the weights of a tropical cycle. ---- {{anchor:is_balanced:}} ? **''IS_BALANCED''** :: Whether the cycle is balanced. As many functions in a-tint can deal with non-balanced complexes, we include this as a property. ? Type: :''[[..:common#Bool |Bool]]'' ? from extension: : [[:external_software|bundled:atint]] ---- {{anchor:is_irreducible:}} ? **''IS_IRREDUCIBLE''** :: Whether this complex is irreducible. ? Type: :''[[..:common#Bool |Bool]]'' ? from extension: : [[:external_software|bundled:atint]] ---- {{anchor:lattice_bases:}} ? **''LATTICE_BASES''** :: This incidence matrix gives a lattice basis for each maximal polytope. More precisely it gives a lattice basis whose span contains the lattice of the maximal polytope. Row i corresponds to cone i and gives lattice generator indices referring to ''[[..:tropical:Cycle#LATTICE_GENERATORS |LATTICE_GENERATORS]]''. If this property is computed via rules, it does indeed give a lattice basis for the cone lattice, but when it is computed during an operation like refinement or divisor it will in general be larger. If this property exists, lattice normals might be computed faster. ? Type: :''[[..:common#IncidenceMatrix |IncidenceMatrix]]<[[..:common#NonSymmetric |NonSymmetric]]>'' ? from extension: : [[:external_software|bundled:atint]] ---- {{anchor:lattice_generators:}} ? **''LATTICE_GENERATORS''** :: This is an irredundant list of all lattice generators of all maximal polyhedra. If this property exists, lattice normals might be computed faster ? Type: :''[[..:common#Matrix |Matrix]]<[[..:common#Integer |Integer]],[[..:common#NonSymmetric |NonSymmetric]]>'' ? from extension: : [[:external_software|bundled:atint]] ---- {{anchor:lattice_normals:}} ? **''LATTICE_NORMALS''** :: The lattice normals of codimension one faces with respect to adjacent maximal cells. It maps a pair of indices (i,j) to the lattice normal of the codimension one face given by row i in ''[[..:tropical:Cycle#CODIMENSION_ONE_POLYTOPES |CODIMENSION_ONE_POLYTOPES]]'' in the maximal cell given by row j in ''[[..:fan:PolyhedralComplex#MAXIMAL_POLYTOPES |MAXIMAL_POLYTOPES]]''. The lattice normal is a representative of a generator of the quotient of the saturated lattice of the maximal cell by the saturated lattice of the codimension one face. It is chosen such that it "points into the maximal cell" and is only unique modulo the lattice spanned by the codimension one cell. ? Type: :''[[..:common#Map |Map]]<[[..:common#Pair |Pair]]<[[..:common#Int |Int]],[[..:common#Int |Int]]>,[[..:common#Vector |Vector]]<[[..:common#Integer |Integer]]%%>>%%'' ---- {{anchor:lattice_normal_fct_vector:}} ? **''LATTICE_NORMAL_FCT_VECTOR''** :: For each lattice normal vector, this gives a vector of length (number of rays) + (lineality dim.), such that if a rational function is given by values on the rays and lin space generators, the value of the corresponding normal ''[[..:tropical:Cycle#LATTICE_NORMALS |LATTICE_NORMALS]]''->{i}->{j} can be computed by multiplying the function value vector with the vector ''[[..:tropical:Cycle#LATTICE_NORMAL_FCT_VECTOR |LATTICE_NORMAL_FCT_VECTOR]]''->{i}->{j}. This is done in the following way: We use the generating system (and indices refer to SEPARATED_VERTICES) <(r_i-r_0)_i>0, s_j, l_k>, where r_0 is the ray of the maximal cone with the lowest index in ''[[..:tropical:Cycle#SEPARATED_VERTICES |SEPARATED_VERTICES]]'', such that it fulfills x0 = 1, r_i are the remaining rays with x0 = 1, ordered according to their index in ''[[..:tropical:Cycle#SEPARATED_VERTICES |SEPARATED_VERTICES]]'', s_j are the rays of the cone with x0 = 0 and l_k are the lineality space generators. We will then store the coefficients a_i of (r_i - r_0) at the index of r_i, then - sum(a_i) at the index of r_0 and the remaining coefficients at the appropriate places. In particular, the value of a lattice normal under a rational function can be computed simply by taking the scalar product of RAY_VALUES | LIN_VALUES with this FCT_VECTOR ? Type: :''[[..:common#Map |Map]]<[[..:common#Pair |Pair]]<[[..:common#Int |Int]],[[..:common#Int |Int]]>,[[..:common#Vector |Vector]]<[[..:common#Rational |Rational]]%%>>%%'' ? from extension: : [[:external_software|bundled:atint]] ---- {{anchor:lattice_normal_sum:}} ? **''LATTICE_NORMAL_SUM''** :: Rows of this matrix correspond to ''[[..:tropical:Cycle#CODIMENSION_ONE_POLYTOPES |CODIMENSION_ONE_POLYTOPES]]'', and each row contains the weighted sum: sum_{cone > codim-1-face}( weight(cone) * ''[[..:tropical:Cycle#LATTICE_NORMALS |LATTICE_NORMALS]]''->{codim-1-face}->{cone}) ? Type: :''[[..:common#Matrix |Matrix]]<[[..:common#Rational |Rational]],[[..:common#NonSymmetric |NonSymmetric]]>'' ? from extension: : [[:external_software|bundled:atint]] ---- {{anchor:lattice_normal_sum_fct_vector:}} ? **''LATTICE_NORMAL_SUM_FCT_VECTOR''** :: Rows of this matrix correspond to ''[[..:tropical:Cycle#SEPARATED_CODIMENSION_ONE_POLYTOPES |SEPARATED_CODIMENSION_ONE_POLYTOPES]]'' and each row contains a function vector for the corresponding row of ''[[..:tropical:Cycle#LATTICE_NORMAL_SUM |LATTICE_NORMAL_SUM]]''. This function vector is computed in the same way as described under ''[[..:tropical:Cycle#LATTICE_NORMAL_FCT_VECTOR |LATTICE_NORMAL_FCT_VECTOR]]''. Note that for any codim-1-faces at which the complex is not balanced, the corresponding row is a zero row. If a face is balanced can be checked under ''[[..:tropical:Cycle#UNBALANCED_FACES |UNBALANCED_FACES]]''. ? Type: :''[[..:common#Matrix |Matrix]]<[[..:common#Rational |Rational]],[[..:common#NonSymmetric |NonSymmetric]]>'' ? from extension: : [[:external_software|bundled:atint]] ---- {{anchor:unbalanced_faces:}} ? **''UNBALANCED_FACES''** :: Indexes of faces in ''[[..:tropical:Cycle#CODIMENSION_ONE_POLYTOPES |CODIMENSION_ONE_POLYTOPES]]'' the complex is not balanced at. ? Type: :''[[..:common#Set |Set]]<[[..:common#Int |Int]]>'' ? from extension: : [[:external_software|bundled:atint]] ---- {{anchor:weights:}} ? **''WEIGHTS''** :: These are the integer weights associated to the maximal cells of the complex. Entries correspond to (rows of) ''[[..:fan:PolyhedralComplex#MAXIMAL_POLYTOPES |MAXIMAL_POLYTOPES]]''. ? Type: :''[[..:common#Vector |Vector]]<[[..:common#Integer |Integer]]>'' ---- {{anchor:weight_cone:}} ? **''WEIGHT_CONE''** :: The intersection of ''[[..:tropical:Cycle#WEIGHT_SPACE |WEIGHT_SPACE]]'' with the positive orthant. ? Type: :''[[..:polytope:Cone |Cone]]<[[..:common#Rational |Rational]]>'' ? from extension: : [[:external_software|bundled:atint]] ---- {{anchor:weight_space:}} ? **''WEIGHT_SPACE''** :: A Z-basis (as rows) for the space of weight distributions on this tropical cycle making it balanced (i.e. this cycle is irreducible, if and only if ''[[..:tropical:Cycle#WEIGHT_SPACE |WEIGHT_SPACE]]'' has only one row and the gcd of ''[[..:tropical:Cycle#WEIGHTS |WEIGHTS]]'' is 1. ? Type: :''[[..:common#Matrix |Matrix]]<[[..:common#Rational |Rational]],[[..:common#NonSymmetric |NonSymmetric]]>'' ? from extension: : [[:external_software|bundled:atint]] ---- {{anchor:weight_system:}} ? **''WEIGHT_SYSTEM''** :: The dual of ''[[..:tropical:Cycle#WEIGHT_SPACE |WEIGHT_SPACE]]''. ? Type: :''[[..:common#Matrix |Matrix]]<[[..:common#Rational |Rational]],[[..:common#NonSymmetric |NonSymmetric]]>'' ? from extension: : [[:external_software|bundled:atint]] ---- ===== Methods ===== ==== Affine and projective coordinates ==== These methods deal with affine and projective coordinates, conversion between those and properties like dimension that change in projective space. ---- {{anchor:affine_chart:}} ? **''affine_chart([[..:common#Int |Int]] chart)''** :: This produces a version of the cycle in the coordinates of a standard tropical chart, i.e. one coordinate is set to 0. It is returned as an ordinary polyhedral complex (which can, for example, be used for visualization). ? Parameters: :: ''[[..:common#Int |Int]]'' ''chart'': The coordinate which should be set to 0. Indexed from 0 to ''[[..:fan:PolyhedralComplex#AMBIENT_DIM |AMBIENT_DIM]]''-1 and 0 by default. ? Returns: :''[[..:fan:PolyhedralComplex |PolyhedralComplex]]<[[..:common#Rational |Rational]]>'' ---- ==== Basic polyhedral operations ==== These methods provide basic functionality related to polyhedral geometry, but not necessarily to tropical geometry ---- {{anchor:is_fan:}} ? **''is_fan([[..:common#Bool |Bool]] allow_translations)''** :: Checks whether this polyhedral structure is a fan, i.e. has only a single vertex at the origin. ? Parameters: :: ''[[..:common#Bool |Bool]]'' ''allow_translations'': . Optional and false by default. If true, a shifted fan is also accepted. ? Returns: :''[[..:common#Bool |Bool]]'' ? from extension: : [[:external_software|bundled:atint]] ---- ==== Combinatorics ==== These methods capture combinatorial information of the object. Combinatorial properties only depend on combinatorial data of the object like, e.g., the face lattice. ---- {{anchor:facet_normal:}} ? **''facet_normal([[..:common#Int |Int]] i, [[..:common#Int |Int]] j)''** :: Convenience function to ask for ''[[..:tropical:Cycle#FACET_NORMALS_BY_PAIRS |FACET_NORMALS_BY_PAIRS]]''->{new Pair(i,i)} ? Parameters: :: ''[[..:common#Int |Int]]'' ''i'': Row index in ''[[..:tropical:Cycle#CODIMENSION_ONE_POLYTOPES |CODIMENSION_ONE_POLYTOPES]]''. :: ''[[..:common#Int |Int]]'' ''j'': Row index in ''[[..:fan:PolyhedralComplex#MAXIMAL_POLYTOPES |MAXIMAL_POLYTOPES]]''. ? Returns: :''[[..:common#Int |Int]]'' ---- ==== Local computations ==== These methods are used for doing computations locally around a specified part of a Cycle, given via a nontrivial ''[[..:tropical:Cycle#LOCAL_RESTRICTION |LOCAL_RESTRICTION]]''. ---- {{anchor:balanced_faces:}} ? **''balanced_faces()''** :: A vector whose entries correspond to the rows of CODIMENSION_ONE_POLYTOPES. The i-th entry is true, if and only if the complex is balanced at that face Complement of UNBALANCED_FACES. ? Returns: :''[[..:common#Set |Set]]<[[..:common#Int |Int]]>'' ? from extension: : [[:external_software|bundled:atint]] ? Example: :: The following gives the balanced faces of the pg23 matroid. In fact, all of its faces are balanced. :: > $a = tropical::matroid_fan(pg23_matroid()); > print $a->balanced_faces(); {0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25} :: print $a->UNBALANCED_FACES; ---- {{anchor:delocalize:}} ? **''delocalize()''** :: Returns the cycle without its ''[[..:tropical:Cycle#LOCAL_RESTRICTION |LOCAL_RESTRICTION]]'' (Note that only the defining properties are kept. All derived information is lost). ? Returns: :''[[..:tropical:Cycle |Cycle]]'' ? from extension: : [[:external_software|bundled:atint]] ---- ==== Visualization ==== These methods are for visualization. ---- {{anchor:bb_visual:}} ? **''BB_VISUAL()''** :: Same as ''[[..:tropical:Cycle#VISUAL |VISUAL]]''. Kept for backwards compatibility. ? Options: : option list ''[[..:tropical#Visual_Cycle_BoundingDecorations |Visual::Cycle::BoundingDecorations]]'' ? from extension: : [[:external_software|bundled:atint]] ---- {{anchor:visual:}} ? **''VISUAL()''** :: Displays a (possibly weighted) polyhedral complex by intersecting it with a bounding polytope described by BoundingFacets. If BoundingFacets are not explicitly given one may use the MakeCube and BoundingOffset keywords for further settings of the automatically created bounding box. ? Options: : :: ''[[..:common#Int |Int]]'' ''Chart'': Which affine chart to visualize, i.e. which coordinate to shift to 0. This is 0 by default. :: ''[[..:common#String |String]]'' ''WeightLabels'': If "hidden", no weight labels are displayed. Not hidden by default. :: ''[[..:common#String |String]]'' ''CoordLabels'': If "show", coordinate labels are displayed at vertices. Hidden by default. :: ''[[..:common#Rational |Rational]]'' ''BoundingOffset'': The distance from a bounding facet to the nearest bounded vertex :: ''[[..:common#Matrix |Matrix]]<[[..:common#Rational |Rational]]>'' ''BoundingFacets'': describing the bounding polytope : option list ''[[..:tropical#Visual_Cycle_BoundingDecorations |Visual::Cycle::BoundingDecorations]]'' ? from extension: : [[:external_software|bundled:atint]] ---- {{anchor:bounding_box:}} ? **''bounding_box([[..:common#Int |Int]] chart)''** :: Takes a chart as input and computes the column-wise minimum and maximum of the coordinates of the nonfar vertices in homogeneous coordinates (the two opposing vertices of a bounding box). One can extend such a bounding box $bb1 with another $bb2 by using extend_bounding_box($bb1, $bb2). ? Parameters: :: ''[[..:common#Int |Int]]'' ''chart'': . The chart to be used for the computation. ? from extension: : [[:external_software|bundled:atint]] ---- {{anchor:bounding_box_facets:}} ? **''bounding_box_facets([[..:common#Int |Int]] offset, [[..:common#Int |Int]] chart)''** :: Takes offset and a chart as input and computes the facets of a bounding box. \ ? Parameters: :: ''[[..:common#Int |Int]]'' ''offset'': . The offset of a facet from the nearest bounded vertex in the affine chart :: ''[[..:common#Int |Int]]'' ''chart'': . The chart to be used for the computation. ? from extension: : [[:external_software|bundled:atint]] ---- ==== Weights and lattices ==== These methods relate to the weights of a tropical cycle. ---- {{anchor:curve_edge_lengths:}} ? **''CURVE_EDGE_LENGTHS()''** :: For a onedimensional cycle, this produces the lengths of the ''[[..:fan:PolyhedralComplex#MAXIMAL_POLYTOPES |MAXIMAL_POLYTOPES]]'', as multiples of the corresponding ''[[..:tropical:Cycle#LATTICE_NORMALS |LATTICE_NORMALS]]''. The i-th entry is the length of cell i. For unbounded cells this number is inf ? Returns: :''[[..:common#Array |Array]]<[[..:common#Rational |Rational]]>'' ---- {{anchor:lattice_normal:}} ? **''lattice_normal([[..:common#Int |Int]] i, [[..:common#Int |Int]] j)''** :: Convenience function to ask for ''[[..:tropical:Cycle#LATTICE_NORMALS |LATTICE_NORMALS]]''->{new Pair(i,j)} ? Parameters: :: ''[[..:common#Int |Int]]'' ''i'': Row index in ''[[..:tropical:Cycle#CODIMENSION_ONE_POLYTOPES |CODIMENSION_ONE_POLYTOPES]]''. :: ''[[..:common#Int |Int]]'' ''j'': Row index in ''[[..:fan:PolyhedralComplex#MAXIMAL_POLYTOPES |MAXIMAL_POLYTOPES]]''. ? Returns: :''[[..:common#Vector |Vector]]<[[..:common#Integer |Integer]]>'' ----