next | previous | forward | backward | up | top | index | toc | Macaulay2 website
Matroids :: Matroid ++ Matroid

Matroid ++ Matroid -- direct sum of matroids

Synopsis

Description

The direct sum of M and N has ground set equal to the disjoint union of those of M and N, and bases equal to the union of bases of M and N.

i1 : S = uniformMatroid(2,3) ++ uniformMatroid(1,3)

o1 = a matroid of rank 3 on 6 elements

o1 : Matroid
i2 : peek S

o2 = Matroid{bases => {set {0, 1, 3}, set {0, 1, 4}, set {0, 1, 5}, set {0, 2, 3}, set {0, 2, 4}, set {0, 2, 5}, set {1, 2, 3}, set {1, 2, 4}, set {1, 2, 5}}}
             cache => CacheTable{...2...}
             groundSet => set {0, 1, 2, 3, 4, 5}
             rank => 3
i3 : S_*

o3 = {(0, 0), (1, 0), (2, 0), (0, 1), (1, 1), (2, 1)}

o3 : List
i4 : (S ++ uniformMatroid(1, 3))_*

o4 = {((0, 0), 0), ((1, 0), 0), ((2, 0), 0), ((0, 1), 0), ((1, 1), 0), ((2,
     ------------------------------------------------------------------------
     1), 0), (0, 1), (1, 1), (2, 1)}

o4 : List

Caveat

The elements of the ground set of the direct sum will receive placeholders to ensure disjointness (as evidenced by the elements of S being ordered pairs above). As this method is binary, repeated applications of this function will result in nested placeholders. Since the bases are stored as indices, the bases of M will not change, but those of N will be shifted up by the size of the ground set of M.

See also