| 
| CMR_ERROR  | CMRseymourParamsInit (CMR_SEYMOUR_PARAMS *params) | 
|   | Initializes the default parameters for regularity testing.  
  | 
|   | 
| CMR_ERROR  | CMRseymourStatsInit (CMR_SEYMOUR_STATS *stats) | 
|   | Initializes all statistics for Seymour decomposition computations.  
  | 
|   | 
| CMR_ERROR  | CMRseymourStatsPrint (FILE *stream, CMR_SEYMOUR_STATS *stats, const char *prefix) | 
|   | Prints statistics for Seymour decomposition computations.  
  | 
|   | 
| bool  | CMRseymourIsTernary (CMR_SEYMOUR_NODE *node) | 
|   | Returns true iff the decomposition is over \( \mathbb{F}_3 \).  
  | 
|   | 
| CMR_CHRMAT *  | CMRseymourGetMatrix (CMR_SEYMOUR_NODE *node) | 
|   | Returns the matrix of the decomposition node dec (or NULL if it is not stored).  
  | 
|   | 
| bool  | CMRseymourHasTranspose (CMR_SEYMOUR_NODE *node) | 
|   | Returns true iff the transposed matrix of the decomposition node dec is stored.  
  | 
|   | 
| CMR_CHRMAT *  | CMRseymourGetTranspose (CMR_SEYMOUR_NODE *node) | 
|   | Returns the transposed matrix of the decomposition node dec (or NULL if it is not stored).  
  | 
|   | 
| size_t  | CMRseymourNumChildren (CMR_SEYMOUR_NODE *node) | 
|   | Returns the number of children of the decomposition node dec.  
  | 
|   | 
| CMR_SEYMOUR_NODE *  | CMRseymourChild (CMR_SEYMOUR_NODE *node, size_t childIndex) | 
|   | Returns a child of the decomposition node dec.  
  | 
|   | 
| CMR_SEYMOUR_NODE_TYPE  | CMRseymourType (CMR_SEYMOUR_NODE *node) | 
|   | Returns the type of a decomposition node dec.  
  | 
|   | 
| int8_t  | CMRseymourGraphicness (CMR_SEYMOUR_NODE *node) | 
|   | Indicates graphicness/being network.  
  | 
|   | 
| int8_t  | CMRseymourCographicness (CMR_SEYMOUR_NODE *node) | 
|   | Indicates cographicness/being conetwork.  
  | 
|   | 
| int8_t  | CMRseymourRegularity (CMR_SEYMOUR_NODE *node) | 
|   | Indicates regularity/total unimodularity.  
  | 
|   | 
| size_t  | CMRseymourNumRows (CMR_SEYMOUR_NODE *node) | 
|   | Returns the number of rows.  
  | 
|   | 
| CMR_ELEMENT *  | CMRseymourChildRowsToParent (CMR_SEYMOUR_NODE *node, size_t childIndex) | 
|   | Returns the mapping of rows of child childIndex to this node's elements.  
  | 
|   | 
| CMR_ELEMENT *  | CMRseymourChildColumnsToParent (CMR_SEYMOUR_NODE *node, size_t childIndex) | 
|   | Returns the mapping of columns of child childIndex to this node's elements.  
  | 
|   | 
| size_t *  | CMRseymourChildSpecialRows (CMR_SEYMOUR_NODE *node, size_t childIndex) | 
|   | Returns the array of special rows of child childIndex.  
  | 
|   | 
| size_t *  | CMRseymourChildSpecialColumns (CMR_SEYMOUR_NODE *node, size_t childIndex) | 
|   | Returns the array of special columns of child childIndex.  
  | 
|   | 
| size_t  | CMRseymourNumColumns (CMR_SEYMOUR_NODE *node) | 
|   | Returns the number of columns.  
  | 
|   | 
| CMR_GRAPH *  | CMRseymourGraph (CMR_SEYMOUR_NODE *node) | 
|   | Returns the graph (if available).  
  | 
|   | 
| CMR_GRAPH_EDGE *  | CMRseymourGraphForest (CMR_SEYMOUR_NODE *node) | 
|   | Returns the forest of the graph (if available).  
  | 
|   | 
| size_t  | CMRseymourGraphSizeForest (CMR_SEYMOUR_NODE *node) | 
|   | Returns the number of edges of the graph's forest (if available).  
  | 
|   | 
| CMR_GRAPH_EDGE *  | CMRseymourGraphCoforest (CMR_SEYMOUR_NODE *node) | 
|   | Returns the coforest of the graph (if available).  
  | 
|   | 
| size_t  | CMRseymourGraphSizeCoforest (CMR_SEYMOUR_NODE *node) | 
|   | Returns the number of edges of the graph's coforest (if available).  
  | 
|   | 
| bool *  | CMRseymourGraphArcsReversed (CMR_SEYMOUR_NODE *node) | 
|   | Returns an array that indicates for the graph's edges whether they must be reversed (if available).  
  | 
|   | 
| CMR_GRAPH *  | CMRseymourCograph (CMR_SEYMOUR_NODE *node) | 
|   | Returns the cograph (if available).  
  | 
|   | 
| size_t  | CMRseymourCographSizeForest (CMR_SEYMOUR_NODE *node) | 
|   | Returns the number of edges of the cograph's forest (if available).  
  | 
|   | 
| CMR_GRAPH_EDGE *  | CMRseymourCographForest (CMR_SEYMOUR_NODE *node) | 
|   | Returns the forest of the cograph (if available).  
  | 
|   | 
| size_t  | CMRseymourCographSizeCoforest (CMR_SEYMOUR_NODE *node) | 
|   | Returns the number of edges of the cograph's coforest (if available).  
  | 
|   | 
| CMR_GRAPH_EDGE *  | CMRseymourCographCoforest (CMR_SEYMOUR_NODE *node) | 
|   | Returns the coforest of the cograph (if available).  
  | 
|   | 
| bool *  | CMRseymourCographArcsReversed (CMR_SEYMOUR_NODE *node) | 
|   | Returns an array that indicates for the cograph's edges whether they must be reversed (if available).  
  | 
|   | 
| size_t  | CMRseymourNumPivots (CMR_SEYMOUR_NODE *node) | 
|   | Returns the number of pivots (if available).  
  | 
|   | 
| size_t *  | CMRseymourPivotRows (CMR_SEYMOUR_NODE *node) | 
|   | Returns the array with the pivot rows (if available).  
  | 
|   | 
| size_t *  | CMRseymourPivotColumns (CMR_SEYMOUR_NODE *node) | 
|   | Returns the array with the pivot columns (if available).  
  | 
|   | 
| size_t  | CMRseymourGetUsed (CMR_SEYMOUR_NODE *node) | 
|   | Returns node's reference counter.  
  | 
|   | 
| CMR_ERROR  | CMRseymourPrintChild (CMR *cmr, CMR_SEYMOUR_NODE *child, CMR_SEYMOUR_NODE *parent, size_t childIndex, FILE *stream, size_t indent, bool printChildren, bool printParentElements, bool printMatrices, bool printGraphs, bool printReductions, bool printPivots) | 
|   | Prints the decomposition child to stream.  
  | 
|   | 
| CMR_ERROR  | CMRseymourPrint (CMR *cmr, CMR_SEYMOUR_NODE *node, FILE *stream, bool printChildren, bool printParentElements, bool printMatrices, bool printGraphs, bool printReductions, bool printPivots) | 
|   | Prints the decomposition dec to stream.  
  | 
|   | 
| CMR_ERROR  | CMRseymourCapture (CMR *cmr, CMR_SEYMOUR_NODE *node) | 
|   | Increases the reference counter by 1.  
  | 
|   | 
| CMR_ERROR  | CMRseymourRelease (CMR *cmr, CMR_SEYMOUR_NODE **pnode) | 
|   | Releases a decomposition node, freeing it if this was the last reference.  
  | 
|   | 
| static CMR_ERROR  | createNode (CMR *cmr, CMR_SEYMOUR_NODE **pnode, bool isTernary, CMR_SEYMOUR_NODE_TYPE type, size_t numRows, size_t numColumns) | 
|   | 
| CMR_ERROR  | CMRseymourCloneUnknown (CMR *cmr, CMR_SEYMOUR_NODE *node, CMR_SEYMOUR_NODE **pclone) | 
|   | Clones a decomposition node node into *pclone which represents the same matrix but has type CMR_SEYMOUR_NODE_TYPE_UNKNOWN type and no child nodes.  
  | 
|   | 
| static CMR_ERROR  | updateRowsColumnsToParent (CMR *cmr, CMR_SEYMOUR_NODE *parent, size_t childIndex, size_t *parentRows, size_t *parentColumns) | 
|   | Allocates and sets childRowsToParent and childColumnsToParent of the child of parent indicated by childIndex.  
  | 
|   | 
| static CMR_ERROR  | updateRowsColumnsToChild (CMR_SEYMOUR_NODE *parent, size_t childIndex, size_t *parentRows, size_t firstRow, size_t beyondRow, size_t *parentColumns, size_t firstColumn, size_t beyondColumn) | 
|   | Updates rowsToChild and columnsToChild of the parent.  
  | 
|   | 
| static CMR_ERROR  | updateChildMatrix (CMR *cmr, CMR_SEYMOUR_NODE *parent, size_t childIndex) | 
|   | Updates matrix of dec from parent using rowsParent and columnsParent arrays.  
  | 
|   | 
| CMR_ERROR  | CMRseymourCreate (CMR *cmr, CMR_SEYMOUR_NODE **pnode, bool isTernary, CMR_CHRMAT *matrix, bool copyMatrix) | 
|   | Creates an unknown decomposition node as a root.  
  | 
|   | 
| CMR_ERROR  | CMRseymourAddMinor (CMR *cmr, CMR_SEYMOUR_NODE *node, CMR_MINOR *minor) | 
|   | Adds a minor to a Seymour decomposition node.  
  | 
|   | 
| size_t  | CMRseymourNumMinors (CMR_SEYMOUR_NODE *node) | 
|   | Returns the number of minors of the decomposition node.  
  | 
|   | 
| CMR_MINOR *  | CMRseymourMinor (CMR_SEYMOUR_NODE *node, size_t minorIndex) | 
|   | Returns a minor of the decomposition node.  
  | 
|   | 
| CMR_ERROR  | CMRseymourSetNumChildren (CMR *cmr, CMR_SEYMOUR_NODE *node, size_t numChildren) | 
|   | Sets the number of children and allocates memory accordingly.  
  | 
|   | 
| CMR_ERROR  | CMRseymourCreateChildFromMatrices (CMR *cmr, CMR_SEYMOUR_NODE *parent, size_t childIndex, CMR_CHRMAT *matrix, CMR_CHRMAT *transpose, CMR_ELEMENT *rowsToParent, CMR_ELEMENT *columnsToParent) | 
|   | Creates a decomposition node as a child.  
  | 
|   | 
| CMR_ERROR  | CMRseymourUpdateOnesum (CMR *cmr, CMR_SEYMOUR_NODE *node, size_t numChildren) | 
|   | Initialize an existing unknown decomposition node as a 1-sum with numChildren children.  
  | 
|   | 
| CMR_ERROR  | CMRseymourUpdateViolator (CMR *cmr, CMR_SEYMOUR_NODE *node, CMR_SUBMAT *violator) | 
|   | Initialize an existing unknown decomposition node to be irregular with a violator submatrix.  
  | 
|   | 
| CMR_ERROR  | CMRseymourUpdateSeriesParallel (CMR *cmr, CMR_SEYMOUR_NODE *node, CMR_SUBMAT *reducedSubmatrix) | 
|   | Updates an existing unknown Seymour decomposition node to be a series-parallel node.  
  | 
|   | 
| CMR_ERROR  | CMRseymourUpdateTwosum (CMR *cmr, CMR_SEYMOUR_NODE *node, CMR_SEPA *separation) | 
|   | Initialize an existing unknown decomposition node as a 2-separation node according to the given separation.  
  | 
|   | 
| CMR_ERROR  | CMRseymourUpdatePivots (CMR *cmr, CMR_SEYMOUR_NODE *node, size_t numPivots, size_t *pivotRows, size_t *pivotColumns, CMR_CHRMAT *matrix, CMR_CHRMAT *transpose) | 
|   | Initialize an existing unknown decomposition node as a pivot node according to the given arrays of pivots.  
  | 
|   | 
| CMR_ERROR  | CMRseymourSetAttributes (CMR_SEYMOUR_NODE *node) | 
|   | Set regularity and (co)graphicness attributes of a decomposition tree.  
  | 
|   | 
| static CMR_ERROR  | cloneRecursively (CMR *cmr, CMR_SEYMOUR_NODE *node, CMR_SEYMOUR_NODE **pclone, CMR_LISTHASHTABLE *nodesToClonesHashtable, ClonePair **pclonePairs, size_t *pmemClonePairs, size_t *pnumClonePairs) | 
|   | Clones node to *pclone, updates cloning data structures and calls itself recursively.  
  | 
|   | 
| CMR_ERROR  | CMRseymourCloneSubtrees (CMR *cmr, size_t numSubtrees, CMR_SEYMOUR_NODE **subtreeRoots, CMR_SEYMOUR_NODE **clonedSubtrees) | 
|   | Clones the union of subtrees of a Seymour decomposition, returning the copies.  
  | 
|   | 
| CMR_ERROR  | CMRregularityTaskCreateRoot (CMR *cmr, CMR_SEYMOUR_NODE *node, DecompositionTask **ptask, CMR_SEYMOUR_PARAMS *params, CMR_SEYMOUR_STATS *stats, clock_t startClock, double timeLimit) | 
|   | Creates a decomposition task for the root of the decomposition.  
  | 
|   | 
| CMR_ERROR  | CMRregularityTaskFree (CMR *cmr, DecompositionTask **ptask) | 
|   | Frees a decomposition task.  
  | 
|   | 
| CMR_ERROR  | CMRregularityQueueCreate (CMR *cmr, DecompositionQueue **pqueue) | 
|   | Initializes a decomposition queue.  
  | 
|   | 
| CMR_ERROR  | CMRregularityQueueFree (CMR *cmr, DecompositionQueue **pqueue) | 
|   | Frees the decomposition queue.  
  | 
|   | 
| bool  | CMRregularityQueueEmpty (DecompositionQueue *queue) | 
|   | Returns whether a queue is empty.  
  | 
|   | 
| DecompositionTask *  | CMRregularityQueueRemove (DecompositionQueue *queue) | 
|   | Removes a task from a decomposition queue.  
  | 
|   | 
| void  | CMRregularityQueueAdd (DecompositionQueue *queue, DecompositionTask *task) | 
|   | Adds a task to a decomposition queue.  
  | 
|   | 
| static CMR_ERROR  | CMRregularityTaskRun (CMR *cmr, DecompositionTask *task, DecompositionQueue *queue) | 
|   | Runs a task for processing the associated decomposition node.  
  | 
|   | 
| CMR_ERROR  | CMRseymourDecompose (CMR *cmr, CMR_CHRMAT *matrix, bool ternary, CMR_SEYMOUR_NODE **proot, CMR_SEYMOUR_PARAMS *params, CMR_SEYMOUR_STATS *stats, double timeLimit) | 
|   | Tests ternary or binary linear matroid for regularity.  
  | 
|   | 
| CMR_ERROR  | CMRregularityCompleteDecomposition (CMR *cmr, CMR_SEYMOUR_NODE *subtree, CMR_SEYMOUR_PARAMS *params, CMR_SEYMOUR_STATS *stats, double timeLimit) | 
|   | Replaces the subtree of a matroid decomposition tree by a new one.  
  | 
|   | 
| CMR_ERROR  | CMRregularityRefineDecomposition (CMR *cmr, size_t numNodes, CMR_SEYMOUR_NODE **nodes, CMR_SEYMOUR_PARAMS *params, CMR_SEYMOUR_STATS *stats, double timeLimit) | 
|   | Replaces the subtrees of several nodes of a matroid decomposition tree by new ones.  
  | 
|   |