====== BigObject MatroidRingCycle ====== //from application [[..:tropical|tropical]]//\\ \\ A matroid ring cycle is a tropical cycle which lies in the intersection ring of matroids fans. I.e. it is a linear combination of matroids fans (of the same dimension). Cycle sum and intersection are implemented through the combinatorics of the underlying matroids. Note that the set of loopfree nested matroids is a basis for this ring (e.g. as a Z-module). Hence every MatroidRingCycle is represented as a linear combination of nested matroids. The nested matroids are encoded via their maximal transversal presentations in ''[[..:tropical:MatroidRingCycle#NESTED_PRESENTATIONS |NESTED_PRESENTATIONS]]''. The corresponding coefficients are found in ''[[..:tropical:MatroidRingCycle#NESTED_COEFFICIENTS |NESTED_COEFFICIENTS]]''. ? Type Parameters: :: ''Addition'': Mode of tropical addition, must be ''[[..:common#Min |Min]]'' or ''[[..:common#Max |Max]]''. There is on purpose no default value for it. ? derived from: : ''[[..:tropical:Cycle |Cycle]]'' ? Permutations: : ? PresentationPerm: :: permuting ''[[..:tropical:MatroidRingCycle#NESTED_PRESENTATIONS |NESTED_PRESENTATIONS]]'' ===== Properties ===== ==== Matroid data ==== These properties are concerned with the underlying matroid combinatorics of a ''[[..:tropical:MatroidRingCycle |MatroidRingCycle]]''. ---- {{anchor:nested_coefficients:}} ? **''NESTED_COEFFICIENTS''** :: These are the linear coefficients of this cycle in its nested matroids representation. They correspond to the entries in ''[[..:tropical:MatroidRingCycle#NESTED_PRESENTATIONS |NESTED_PRESENTATIONS]]''. ? Type: :''[[..:common#Array |Array]]<[[..:common#Int |Int]]>'' ? from extension: : [[:external_software|bundled:atint]] ---- {{anchor:nested_presentations:}} ? **''NESTED_PRESENTATIONS''** :: Every matroid (and hence every element of the matroid ring) has a presentation as a linear combination of nested matroids (which form a basis). Each entry in this list represents a nested matroid whose coefficient is not 0 in the presentation of this cycle. A nested matroid is represented by its maximal transversal presentation. You can use the method ''[[..:tropical:MatroidRingCycle#nested_matroids |nested_matroids]]'' to retrieve them as actual ''[[..:matroid:Matroid |Matroid]]'' objects. Note that the implementation will assume that the nested presentations are each given in such a way that the sets are ordered from smallest to largest. It is not recommended to specify this property directly. Rather use the constructor to convert a matroid into a ring cycle, then use the overloaded operators to construct linear combinations. ? Type: :''[[..:common#Array |Array]]<[[..:common#IncidenceMatrix |IncidenceMatrix]]<[[..:common#NonSymmetric |NonSymmetric]]%%>>%%'' ? from extension: : [[:external_software|bundled:atint]] ---- {{anchor:n_elements:}} ? **''N_ELEMENTS''** :: Describes the ground set of the matroid ring in which this cycle lives. Same as ''[[..:tropical:Cycle#PROJECTIVE_AMBIENT_DIM |PROJECTIVE_AMBIENT_DIM]]''+1. ? Type: :''[[..:common#Int |Int]]'' ? from extension: : [[:external_software|bundled:atint]] ---- {{anchor:n_nested_summands:}} ? **''N_NESTED_SUMMANDS''** :: The number of entries in ''[[..:tropical:MatroidRingCycle#NESTED_PRESENTATIONS |NESTED_PRESENTATIONS]]'' (or ''[[..:tropical:MatroidRingCycle#NESTED_COEFFICIENTS |NESTED_COEFFICIENTS]]''). ? Type: :''[[..:common#Int |Int]]'' ? from extension: : [[:external_software|bundled:atint]] ---- {{anchor:rank:}} ? **''RANK''** :: Describes the ranks of the matroids, of which this cycle is a linear combination. Same as ''[[..:tropical:Cycle#PROJECTIVE_DIM |PROJECTIVE_DIM]]''+1 ? Type: :''[[..:common#Int |Int]]'' ? from extension: : [[:external_software|bundled:atint]] ---- ===== Methods ===== ==== Matroid data ==== These methods are concerned with the underlying matroid combinatorics of a ''[[..:tropical:MatroidRingCycle |MatroidRingCycle]]''. ---- {{anchor:nested_matroids:}} ? **''nested_matroids''** :: This returns the nested matroids represented by ''[[..:tropical:MatroidRingCycle#NESTED_PRESENTATIONS |NESTED_PRESENTATIONS]]'' as a list of ''[[..:matroid:Matroid |Matroid]]'' objects. ? from extension: : [[:external_software|bundled:atint]] ? Example: :: The following computes the matroid ring cycle of the matroid corresponding to the complete graph on 4 vertices. It then returns a list of the nested matroids in its basis presentation. :: > $r = new MatroidRingCycle(matroid::matroid_from_graph(complete(4))); > @n = $r->nested_matroids(); > map {print $_->BASES->size,"\n";} @n; 19 19 19 19 20 ----