CMR
1.3.0
|
The matroid represented by a matrix \( M \in \mathbb{F}^{m \times n} \) has \( m + n \) elements that correspond to the columns of \( [ \mathbb{I} \mid M ] \). A subset of these columns is independent if and only if it is linearly independent over the field \( \mathbb{F} \). Applying a pivot operation (over \( \mathbb{F} \)) and exchanging the corresponding row and column elements leaves the matroid unchanged. In CMR, pivots are carried out via CMRchrmatBinaryPivot, CMRchrmatBinaryPivots, CMRchrmatTernaryPivot and CMRchrmatTernaryPivots.
A minor of a represented matroid is another one obtained by deleting or contracting elements. An element associated with a row (resp. column) can be contracted (resp. deleted) by removing the corresponding matrix row (resp. column). In order to delete a row element or contract a column element one must first pivot such that the element type (row/column) is changed.
A minor of a matroid represented by matrix \( M \) is represented by means of a CMR_MINOR object. It consists of a (potentially empty) array of pivots and a CMR_SUBMAT object indicating a submatrix \( M' \) of the matrix obtained from \( M \) after applying the pivots. Moreover, the type field indicates a certain structure of \( M' \):