103 bool* pisTotallyUnimodular,
Testing whether a matrix is Camion-signed.
Basic functionality of the software library.
CMR_ERROR
Type for return codes of library functions.
Definition: env.h:32
Functionality for sparse matrices.
Recognition of binary regular matrices.
Statistics for Camion-signing algorithm.
Definition: camion.h:26
Row-wise representation of sparse char matrix.
Definition: matrix.h:220
Definition: env_internal.h:45
Parameters for Seymour decomposition algorithm.
Definition: seymour.h:93
Statistics for Seymour decomposition algorithm.
Definition: seymour.h:169
Row and column indices for a submatrix.
Definition: matrix.h:28
bool naiveSubmatrix
Whether to use the naive submatrix search instead of a greedy algorithm (default: false).
Definition: tu.h:34
bool camionFirst
If ternary is false, then whether to run the Camion test first.
Definition: tu.h:33
CMR_SEYMOUR_PARAMS seymour
Parameters for testing via Seymour decomposition.
Definition: tu.h:31
CMR_TU_ALGORITHM algorithm
Algorithm to use.
Definition: tu.h:30
bool ternary
Whether to create a ternary Seymour decomposition tree (default: true).
Definition: tu.h:32
Statistics for recognition algorithm for totally unimodular matrices.
Definition: tu.h:54
uint32_t enumerationColumnSubsets
Definition: tu.h:59
CMR_SEYMOUR_STATS seymour
Definition: tu.h:55
CMR_CAMION_STATISTICS camion
Definition: tu.h:56
double partitionTime
Definition: tu.h:64
uint32_t partitionRowSubsets
Definition: tu.h:62
double enumerationTime
Definition: tu.h:60
uint32_t enumerationRowSubsets
Definition: tu.h:58
uint32_t partitionColumnSubsets
Definition: tu.h:63
Definition: seymour_internal.h:18
CMR_EXPORT CMR_ERROR CMRtuParamsInit(CMR_TU_PARAMS *params)
Initializes the default parameters for recognition of totally unimodular matrices.
Definition: tu.c:15
CMR_EXPORT CMR_ERROR CMRtuCompleteDecomposition(CMR *cmr, CMR_SEYMOUR_NODE *dec, CMR_TU_PARAMS *params, CMR_TU_STATS *stats, double timeLimit)
Completes a subtree of an existing decomposition tree.
Definition: tu.c:725
CMR_TU_ALGORITHM
Definition: tu.h:22
@ CMR_TU_ALGORITHM_PARTITION
Enumeration algorithm based on criterion of Ghouila-Houri.
Definition: tu.h:25
@ CMR_TU_ALGORITHM_EULERIAN
Enumeration algorithm based on Eulerian submatrices.
Definition: tu.h:24
@ CMR_TU_ALGORITHM_DECOMPOSITION
Algorithm based on Seymour's decomposition of regular matroids.
Definition: tu.h:23
CMR_EXPORT CMR_ERROR CMRtuStatsInit(CMR_TU_STATS *stats)
Initializes all statistics for recognition algorithm for totally unimodular matrices.
Definition: tu.c:28
CMR_EXPORT CMR_ERROR CMRtuTest(CMR *cmr, CMR_CHRMAT *matrix, bool *pisTotallyUnimodular, CMR_SEYMOUR_NODE **proot, CMR_SUBMAT **psubmatrix, CMR_TU_PARAMS *params, CMR_TU_STATS *stats, double timeLimit)
Tests a matrix for being totally unimodular.
Definition: tu.c:624
CMR_EXPORT CMR_ERROR CMRtuStatsPrint(FILE *stream, CMR_TU_STATS *stats, const char *prefix)
Prints statistics for recognition algorithm for totally unimodular matrices.
Definition: tu.c:46