![]() |
CMR
1.3.0
|
#include <cmr/regular.h>
Go to the source code of this file.
Functions | |
CMR_ERROR | CMRregularSearchThreeSeparation (CMR *cmr, CMR_DEC *dec, CMR_CHRMAT *transpose, bool ternary, size_t firstNonCoGraphicMinor, CMR_SUBMAT **psubmatrix, CMR_REGULAR_STATISTICS *stats, double timeLimit) |
Enumerates 3-separations for a 3-connected matrix. More... | |
CMR_ERROR | CMRregularThreeConnectedIsR10 (CMR *cmr, CMR_DEC *dec, bool *pisR10) |
Tests whether given 3-connected matrix represents \( R_{10} \). More... | |
CMR_ERROR | CMRregularSequenceGraphic (CMR *cmr, CMR_CHRMAT *matrix, CMR_CHRMAT *transpose, size_t lengthSequence, size_t *sequenceNumRows, size_t *sequenceNumColumns, size_t *plastGraphicMinor, CMR_GRAPH **pgraph, CMR_ELEMENT **pedgeElements, CMR_REGULAR_STATISTICS *stats, double timeLimit) |
Tests sequence of nested 3-connected minors for graphicness. More... | |
CMR_ERROR | CMRregularExtendNestedMinorSequence (CMR *cmr, CMR_DEC *dec, bool ternary, CMR_SUBMAT **psubmatrix, CMR_REGULAR_STATISTICS *stats, double timeLimit) |
Extends an incomplete sequence of nested 3-connected minors for the matrix of a decomposition node. More... | |
CMR_ERROR | CMRregularConstructNestedMinorSequence (CMR *cmr, CMR_DEC *dec, bool ternary, CMR_SUBMAT *wheelSubmatrix, CMR_SUBMAT **psubmatrix, CMR_REGULAR_STATISTICS *stats, double timeLimit) |
Constructs a sequence of nested 3-connected minors for the matrix of a decomposition node. More... | |
CMR_ERROR | CMRregularTestGraphic (CMR *cmr, CMR_CHRMAT **pmatrix, CMR_CHRMAT **ptranspose, bool ternary, bool *pisGraphic, CMR_GRAPH **pgraph, CMR_GRAPH_EDGE **pforest, CMR_GRAPH_EDGE **pcoforest, bool **parcsReversed, CMR_SUBMAT **psubmatrix, CMR_REGULAR_STATISTICS *stats, double timeLimit) |
Tests matrix for graphicness. More... | |
CMR_ERROR | CMRregularDecomposeSeriesParallel (CMR *cmr, CMR_DEC **pdec, bool ternary, CMR_SUBMAT **psubmatrix, CMR_REGULAR_PARAMETERS *params, CMR_REGULAR_STATISTICS *stats, double timeLimit) |
Splits off series-parallel elements from the matrix of a decomposition node. More... | |
CMR_ERROR | CMRregularDecomposeOneSum (CMR *cmr, CMR_DEC *dec) |
Performs a 1-sum decomposition of matrix and stores it in dec . More... | |
CMR_ERROR | CMRtestRegular (CMR *cmr, CMR_CHRMAT *matrix, bool ternary, bool *pisRegular, CMR_DEC **pdec, CMR_MINOR **pminor, CMR_REGULAR_PARAMETERS *params, CMR_REGULAR_STATISTICS *stats, double timeLimit) |
Tests ternary or binary linear matroid for regularity. More... | |
CMR_ERROR CMRregularConstructNestedMinorSequence | ( | CMR * | cmr, |
CMR_DEC * | dec, | ||
bool | ternary, | ||
CMR_SUBMAT * | wheelSubmatrix, | ||
CMR_SUBMAT ** | psubmatrix, | ||
CMR_REGULAR_STATISTICS * | stats, | ||
double | timeLimit | ||
) |
Constructs a sequence of nested 3-connected minors for the matrix of a decomposition node.
In case the matrix is not 3-connected, a 2-separation is applied to dec
and the function terminates, filling the relevant variables of dec
.
cmr | CMR environment. |
dec | Decomposition node. |
ternary | Whether to consider the signs of the matrix. |
wheelSubmatrix | Wheel submatrix to start with. |
psubmatrix | Pointer for storing a violator matrix. |
stats | Statistics for the computation (may be NULL ). |
timeLimit | Time limit to impose. |
Performs a 1-sum decomposition of matrix
and stores it in dec
.
If matrix
is 1-connected, then dec
remains unchanged. In particular, the matrix
and transpose
members remain NULL
. Otherwise, dec
will become a CMR_DEC_ONE_SUM node with children that are initialized to the 1-connected components. In this case, the matrix
and transpose
members of the child nodes are set.
cmr | CMR environment. |
dec | Initialized decomposition node with matrix attribute. |
CMR_ERROR CMRregularDecomposeSeriesParallel | ( | CMR * | cmr, |
CMR_DEC ** | pdec, | ||
bool | ternary, | ||
CMR_SUBMAT ** | psubmatrix, | ||
CMR_REGULAR_PARAMETERS * | params, | ||
CMR_REGULAR_STATISTICS * | stats, | ||
double | timeLimit | ||
) |
Splits off series-parallel elements from the matrix of a decomposition node.
In case the matrix is Series-Parallel Matroids, then *pmatrix
is set to NULL
and *pdec
is declared to be planar.
In case the matrix does not admit series-parallel reductions, then *pmatrix
and *pdec
remain unchanged, except The decomposition node *pdec
and matrix *pmatrix
are replaced by the SP-reduced ones, i.e., by the corresponding (grand-) children of the given decomposition and the corresponding matrix.
cmr | CMR environment. |
pdec | Pointer to decomposition node. |
ternary | Whether to consider the signs of the matrix. |
psubmatrix | Pointer for storing a violator matrix. |
params | Parameters for the computation. |
stats | Statistics for the computation (may be NULL ). |
timeLimit | Time limit to impose. |
CMR_ERROR CMRregularExtendNestedMinorSequence | ( | CMR * | cmr, |
CMR_DEC * | dec, | ||
bool | ternary, | ||
CMR_SUBMAT ** | psubmatrix, | ||
CMR_REGULAR_STATISTICS * | stats, | ||
double | timeLimit | ||
) |
Extends an incomplete sequence of nested 3-connected minors for the matrix of a decomposition node.
In case the matrix is not 3-connected, a 2-separation is applied to dec
and the function terminates, filling the relevant variables of dec
.
cmr | CMR environment. |
dec | Decomposition node. |
ternary | Whether to consider the signs of the matrix. |
psubmatrix | Pointer for storing a violator matrix. |
stats | Statistics for the computation (may be NULL ). |
timeLimit | Time limit to impose. |
CMR_ERROR CMRregularSearchThreeSeparation | ( | CMR * | cmr, |
CMR_DEC * | dec, | ||
CMR_CHRMAT * | transpose, | ||
bool | ternary, | ||
size_t | firstNonCoGraphicMinor, | ||
CMR_SUBMAT ** | psubmatrix, | ||
CMR_REGULAR_STATISTICS * | stats, | ||
double | timeLimit | ||
) |
Enumerates 3-separations for a 3-connected matrix.
cmr | CMR environment. |
dec | Decomposition node. |
transpose | Transpose of nested-minors matrix of dec . |
ternary | Whether to consider the signs of the matrix. |
firstNonCoGraphicMinor | Index of first nested minor that is neither graphic nor cographic. |
psubmatrix | Pointer for storing a violator matrix. |
stats | Statistics for the computation (may be NULL ). |
timeLimit | Time limit to impose. |
CMR_ERROR CMRregularSequenceGraphic | ( | CMR * | cmr, |
CMR_CHRMAT * | matrix, | ||
CMR_CHRMAT * | transpose, | ||
size_t | lengthSequence, | ||
size_t * | sequenceNumRows, | ||
size_t * | sequenceNumColumns, | ||
size_t * | plastGraphicMinor, | ||
CMR_GRAPH ** | pgraph, | ||
CMR_ELEMENT ** | pedgeElements, | ||
CMR_REGULAR_STATISTICS * | stats, | ||
double | timeLimit | ||
) |
Tests sequence of nested 3-connected minors for graphicness.
cmr | CMR environment. |
matrix | Matrix. |
transpose | Transpose. |
lengthSequence | Length of the sequence of nested minors. |
sequenceNumRows | Array with number of rows of each minor. |
sequenceNumColumns | Array with number of columns of each minor. |
plastGraphicMinor | Pointer for storing the last graphic minor. |
pgraph | Pointer for storing the graph. |
pedgeElements | Pointer for storing the mapping of edges to elements. |
stats | Statistics for the computation (may be NULL ). |
timeLimit | Time limit to impose. |
CMR_ERROR CMRregularTestGraphic | ( | CMR * | cmr, |
CMR_CHRMAT ** | pmatrix, | ||
CMR_CHRMAT ** | ptranspose, | ||
bool | ternary, | ||
bool * | pisGraphic, | ||
CMR_GRAPH ** | pgraph, | ||
CMR_GRAPH_EDGE ** | pforest, | ||
CMR_GRAPH_EDGE ** | pcoforest, | ||
bool ** | parcsReversed, | ||
CMR_SUBMAT ** | psubmatrix, | ||
CMR_REGULAR_STATISTICS * | stats, | ||
double | timeLimit | ||
) |
Tests matrix for graphicness.
cmr | CMR environment. |
pmatrix | Pointer to matrix. |
ptranspose | Pointer to transpose. |
ternary | Whether to also check the signs of the matrix. |
pisGraphic | Pointer for storing the result. |
pgraph | Pointer for storing the graph if the matrix is graph (may be NULL ). |
pforest | Pointer for storing the mapping of rows to forest edges. |
pcoforest | Pointer for storing the mapping of rows to forest edges. |
parcsReversed | Pointer for storing the array indicating which arcs are reversed. |
psubmatrix | Pointer for storing a minimal non-graphic submatrix (may be NULL ). |
stats | Statistics for the computation (may be NULL ). |
timeLimit | Time limit to impose. |
Tests whether given 3-connected matrix represents \( R_{10} \).
cmr | CMR environment. |
dec | Decomposition. |
pisR10 | Pointer for storing whether matrix represents \( R_{10} \). |
CMR_ERROR CMRtestRegular | ( | CMR * | cmr, |
CMR_CHRMAT * | matrix, | ||
bool | ternary, | ||
bool * | pisRegular, | ||
CMR_DEC ** | pdec, | ||
CMR_MINOR ** | pminor, | ||
CMR_REGULAR_PARAMETERS * | params, | ||
CMR_REGULAR_STATISTICS * | stats, | ||
double | timeLimit | ||
) |
Tests ternary or binary linear matroid for regularity.
If pdec
is not NULL
, *pdec
will be a (partial) decomposition tree.
If pminor
is not NULL
and matrix
is not regular, then an \( F_7 \) or \( F_7^\star \) minor or a submatrix with non-ternary determinant is searched. This causes additional computational effort!
cmr | CMR environment. |
matrix | Input matrix. |
ternary | Whether signs of matrix play a role. |
pisRegular | Pointer for storing whether matrix is regular. |
pdec | Pointer for storing the decomposition tree (may be NULL ). |
pminor | Pointer for storing an \( F_7 \) or \( F_7^\star \) minor. |
params | Parameters for the computation. |
stats | Statistics for the computation (may be NULL ). |
timeLimit | Time limit to impose. |