From 392b6a5f8e845212435ca59f593a1f7333607bf1 Mon Sep 17 00:00:00 2001 From: github-actions <${GITHUB_ACTOR}@users.noreply.github.com> Date: Thu, 6 Jun 2024 14:59:56 +0000 Subject: [PATCH] Documentation for b0a60ad3ce782c59513f016c96e1d08f7d955bee --- annotated.html | 72 +- classes.html | 2 +- ctu_8h_source.html | 2 +- dir_0ad5948afa428d6cfa19d45e6f7d922f.html | 4 - equimodular_8h_source.html | 2 +- files.html | 32 +- functions_c.html | 11 +- functions_d.html | 8 +- functions_e.html | 6 +- functions_g.html | 5 +- functions_n.html | 2 +- functions_p.html | 7 +- functions_r.html | 3 - functions_s.html | 32 +- functions_t.html | 16 +- functions_vars_c.html | 11 +- functions_vars_d.html | 8 +- functions_vars_e.html | 6 +- functions_vars_g.html | 5 +- functions_vars_n.html | 2 +- functions_vars_p.html | 7 +- functions_vars_r.html | 3 - functions_vars_s.html | 32 +- functions_vars_t.html | 16 +- globals_c.html | 401 ++++--- globals_d.html | 4 +- globals_defs.html | 3 + globals_enum.html | 12 +- globals_eval.html | 108 +- globals_func_c.html | 280 ++--- globals_type.html | 4 +- group__Matroid.html | 13 +- group__Seymour.html | 357 ++++-- matroid_8h.html | 11 +- matroid_8h_source.html | 158 +-- matroids.html | 2 +- regular_8c.html | 15 +- regular_8h.html | 87 +- regular_8h_source.html | 223 ++-- regularity__graphic_8c.html | 14 +- regularity__nested__minor__sequence_8c.html | 1 - regularity__onesum_8c.html | 1 - regularity__partition_8c.html | 3 +- regularity__r10_8c.html | 1 - regularity__series__parallel_8c.html | 3 +- regularity__threesum_8c.html | 1 - search/all_10.js | 63 +- search/all_11.js | 107 +- search/all_12.js | 79 +- search/all_13.js | 34 +- search/all_4.js | 1096 ++++++++--------- search/all_5.js | 54 +- search/all_6.js | 70 +- search/all_7.js | 78 +- search/all_8.js | 45 +- search/all_9.js | 22 +- search/all_a.js | 34 +- search/all_b.js | 8 +- search/all_c.js | 38 +- search/all_d.js | 82 +- search/all_e.js | 100 +- search/all_f.js | 14 +- search/classes_1.js | 16 +- search/classes_2.js | 24 +- search/classes_3.js | 2 +- search/classes_4.js | 4 +- search/classes_5.js | 2 +- search/classes_6.js | 12 +- search/classes_7.js | 2 +- search/classes_8.js | 4 +- search/classes_9.js | 4 +- search/defines_0.js | 3 +- search/enums_0.js | 18 +- search/enums_1.js | 4 +- search/enums_2.js | 2 +- search/enums_3.js | 2 +- search/enums_4.js | 2 +- search/enumvalues_0.js | 4 +- search/enumvalues_1.js | 122 +- search/enumvalues_2.js | 10 +- search/enumvalues_3.js | 8 +- search/enumvalues_4.js | 2 +- search/enumvalues_5.js | 2 +- search/enumvalues_6.js | 2 +- search/enumvalues_7.js | 8 +- search/enumvalues_8.js | 2 +- search/enumvalues_9.js | 2 +- search/files_0.js | 10 +- search/files_1.js | 18 +- search/files_2.js | 4 +- search/files_3.js | 16 +- search/files_4.js | 2 +- search/files_5.js | 14 +- search/files_6.js | 12 +- search/files_7.js | 2 +- search/files_8.js | 2 +- search/files_9.js | 10 +- search/files_a.js | 14 +- search/files_b.js | 6 +- search/files_c.js | 2 +- search/files_d.js | 12 +- search/functions_10.js | 14 +- search/functions_3.js | 358 +++--- search/functions_4.js | 36 +- search/functions_5.js | 10 +- search/functions_6.js | 40 +- search/functions_7.js | 2 +- search/functions_8.js | 10 +- search/functions_9.js | 4 +- search/functions_a.js | 6 +- search/functions_b.js | 6 +- search/functions_c.js | 12 +- search/functions_d.js | 10 +- search/functions_e.js | 12 +- search/functions_f.js | 14 +- search/typedefs_0.js | 2 +- search/typedefs_1.js | 28 +- search/typedefs_2.js | 10 +- search/typedefs_3.js | 2 +- search/typedefs_4.js | 2 +- search/typedefs_5.js | 4 +- search/typedefs_6.js | 2 +- search/typedefs_7.js | 6 +- search/variables_0.js | 14 +- search/variables_1.js | 4 +- search/variables_10.js | 43 +- search/variables_11.js | 42 +- search/variables_12.js | 6 +- search/variables_13.js | 6 +- search/variables_14.js | 4 +- search/variables_2.js | 61 +- search/variables_3.js | 18 +- search/variables_4.js | 32 +- search/variables_5.js | 34 +- search/variables_6.js | 21 +- search/variables_7.js | 8 +- search/variables_8.js | 16 +- search/variables_9.js | 6 +- search/variables_a.js | 8 +- search/variables_b.js | 50 +- search/variables_c.js | 82 +- search/variables_d.js | 6 +- search/variables_e.js | 45 +- search/variables_f.js | 59 +- seymour_8c.html | 580 ++++++++- seymour_8h.html | 79 +- seymour_8h_source.html | 754 ++++++------ seymour__internal_8h.html | 1162 ++++++++++++++++++- seymour__internal_8h_source.html | 724 +++++++----- structCMR__REGULAR__PARAMS-members.html | 8 +- structCMR__REGULAR__PARAMS.html | 149 +-- structCMR__REGULAR__STATS-members.html | 14 +- structCMR__REGULAR__STATS.html | 216 +--- structCMR__SEYMOUR__PARAMS-members.html | 100 ++ structCMR__SEYMOUR__PARAMS.html | 350 ++++++ structCMR__SEYMOUR__STATS-members.html | 100 ++ structCMR__SEYMOUR__STATS.html | 307 +++++ structCMR__TU__PARAMS-members.html | 5 +- structCMR__TU__PARAMS.html | 47 +- structCMR__TU__STATS-members.html | 3 +- structCMR__TU__STATS.html | 29 +- structClonePair.html | 7 +- structDecompositionQueue.html | 4 +- structDecompositionTask-members.html | 4 +- structDecompositionTask.html | 28 +- struct__CMR__SEYMOUR__NODE-members.html | 2 +- struct__CMR__SEYMOUR__NODE.html | 12 +- tu.html | 2 +- tu_8c.html | 37 +- tu_8h.html | 14 +- tu_8h_source.html | 155 +-- 171 files changed, 6446 insertions(+), 3908 deletions(-) create mode 100644 structCMR__SEYMOUR__PARAMS-members.html create mode 100644 structCMR__SEYMOUR__PARAMS.html create mode 100644 structCMR__SEYMOUR__STATS-members.html create mode 100644 structCMR__SEYMOUR__STATS.html diff --git a/annotated.html b/annotated.html index 979864db..f059ab47 100644 --- a/annotated.html +++ b/annotated.html @@ -88,7 +88,7 @@
A submatrix \( M \) with \( |\det(M)| = 2 \).
A submatrix \( M \) of size 1-by-1 exhibiting a bad entry.
+A custom minor.
A minor representing \( U^2_4 \).
diff --git a/group__Seymour.html b/group__Seymour.html index ab2a9a27..2e1fe749 100644 --- a/group__Seymour.html +++ b/group__Seymour.html @@ -73,6 +73,7 @@+Classes | |
struct | CMR_SEYMOUR_PARAMS |
Parameters for Seymour decomposition algorithm. More... | |
struct | CMR_SEYMOUR_STATS |
Statistics for Seymour decomposition algorithm. More... | |
Typedefs | |
typedef struct _CMR_SEYMOUR_NODE | CMR_SEYMOUR_NODE |
Functions | |
CMR_EXPORT CMR_ERROR | CMRseymourParamsInit (CMR_SEYMOUR_PARAMS *params) |
Initializes the default parameters for regularity testing. More... | |
CMR_EXPORT CMR_ERROR | CMRseymourStatsInit (CMR_SEYMOUR_STATS *stats) |
Initializes all statistics for Seymour decomposition computations. More... | |
CMR_EXPORT CMR_ERROR | CMRseymourStatsPrint (FILE *stream, CMR_SEYMOUR_STATS *stats, const char *prefix) |
Prints statistics for Seymour decomposition computations. More... | |
CMR_EXPORT bool | CMRseymourIsTernary (CMR_SEYMOUR_NODE *node) |
Returns true iff the decomposition is over \( \mathbb{F}_3 \). More... | |
CMR_EXPORT size_t * | CMRseymourPivotColumns (CMR_SEYMOUR_NODE *node) |
Returns the array with the pivot columns (if available). More... | |
CMR_EXPORT size_t | CMRseymourGetUsed (CMR_SEYMOUR_NODE *node) |
Returns node's reference counter. More... | |
CMR_EXPORT 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 . More... | |
CMR_EXPORT CMR_ERROR | CMRseymourCloneUnknown (CMR *cmr, CMR_SEYMOUR_NODE *node, CMR_SEYMOUR_NODE **pclone) |
Clones a decomposition node dec into *pclone which represents the same matrix but has type CMR_SEYMOUR_NODE_TYPE_UNKNOWN type. More... | |
CMR_EXPORT CMR_ERROR | CMRseymourCapture (CMR *cmr, CMR_SEYMOUR_NODE *node) |
Increases the reference counter by 1. More... | |
CMR_EXPORT CMR_ERROR | CMRseymourCreate (CMR *cmr, CMR_SEYMOUR_NODE **pnode, bool isTernary, CMR_CHRMAT *matrix) |
Creates an unknown decomposition node as a root. More... | |
CMR_EXPORT CMR_ERROR | CMRregularityCloneSubtrees (CMR *cmr, size_t numSubtrees, CMR_SEYMOUR_NODE **subtreeRoots, CMR_SEYMOUR_NODE **clonedSubtrees) |
Clones the union of subtrees, returning the copies. More... | |
CMR_EXPORT 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. More... | |
CMR_EXPORT 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. More... | |
enum CMR_SEYMOUR_NODE_THREESUM_FLAG | +enum CMR_SEYMOUR_NODE_TYPE |
Flags that indicate the type of \( 3 \)-separation.
-Enumerator | |
---|---|
CMR_SEYMOUR_NODE_THREESUM_FLAG_NO_PIVOTS | Indicate to not change the rank distribution; only serves as an option; each constructed node will have either CMR_SEYMOUR_NODE_THREESUM_FLAG_DISTRIBUTED_RANKS or CMR_SEYMOUR_NODE_THREESUM_FLAG_CONCENTRATED_RANK set. - |
CMR_SEYMOUR_NODE_THREESUM_FLAG_DISTRIBUTED_RANKS | The two off-diagonal submatrices both have rank 1.
|
CMR_SEYMOUR_NODE_THREESUM_FLAG_CONCENTRATED_RANK | The bottom-left submatrix has rank 2 and the top-right submatrix has rank 0.
|
Enumerator | |
CMR_SEYMOUR_NODE_TYPE_IRREGULAR | Node represents 3-connected irregular matrix.
|
CMR_SEYMOUR_NODE_THREESUM_FLAG_FIRST_WIDE | The first child node is of the form \( M_1^{\text{wide}} \); valid for distributed ranks.
|
CMR_SEYMOUR_NODE_TYPE_UNKNOWN | Type of node is not yet determined. |
CMR_SEYMOUR_NODE_THREESUM_FLAG_FIRST_TALL | The first child node is of the form \( M_1^{\text{tall}} \); valid for distributed ranks.
|
CMR_SEYMOUR_NODE_TYPE_ONE_SUM | Node represents a \( 1 \)-sum of matrices; has at least 2 child nodes.
|
CMR_SEYMOUR_NODE_THREESUM_FLAG_FIRST_MIXED | The first child node is of the form \( M_1^{\text{mixed}} \); valid for concentrated rank.
|
CMR_SEYMOUR_NODE_TYPE_TWO_SUM | Node represents a 2-sum of matrices; has two child nodes.
|
CMR_SEYMOUR_NODE_THREESUM_FLAG_FIRST_ALLREPR | The first child node is of the form \( M_1^{\text{all-repr}} \); valid for concentrated rank.
|
CMR_SEYMOUR_NODE_TYPE_THREE_SUM | Node represents a 3-sum of matrices; has two child nodes.
|
CMR_SEYMOUR_NODE_THREESUM_FLAG_SECOND_WIDE | The second child node is of the form \( M_2^{\text{wide}} \); valid for distributed ranks.
|
CMR_SEYMOUR_NODE_TYPE_SERIES_PARALLEL | Node represents a series-parallel reduction; has one child node.
|
CMR_SEYMOUR_NODE_THREESUM_FLAG_SECOND_TALL | The second child node is of the form \( M_2^{\text{tall}} \); valid for distributed ranks.
|
CMR_SEYMOUR_NODE_TYPE_PIVOTS | Node represents an application of pivots; has one child node.
|
CMR_SEYMOUR_NODE_THREESUM_FLAG_SECOND_MIXED | The second child node is of the form \( M_2^{\text{mixed}} \); valid for concentrated rank.
|
CMR_SEYMOUR_NODE_TYPE_GRAPH | Node represents a graphic or network leaf.
|
CMR_SEYMOUR_NODE_THREESUM_FLAG_SECOND_ALLREPR | The second child node is of the form \( M_2^{\text{all-repr}} \); valid for concentrated rank.
|
CMR_SEYMOUR_NODE_TYPE_COGRAPH | Node represents a cographic or conetwork leaf.
|
CMR_SEYMOUR_NODE_THREESUM_FLAG_SEYMOUR | This combination of flags indicates a \( 3 \)-sum as defined by Seymour.
|
CMR_SEYMOUR_NODE_TYPE_PLANAR | Node represents a graphic and cographic (network and conetwork) leaf.
|
CMR_SEYMOUR_NODE_THREESUM_FLAG_TRUEMPER | This combination of flags indicates a \( 3 \)-sum as defined by Truemper.
|
CMR_SEYMOUR_NODE_TYPE_R10 | Node represents a representation matrix of \( R_{10} \).
|
enum CMR_SEYMOUR_NODE_TYPE | +enum CMR_SEYMOUR_THREESUM_FLAG |
Flags that indicate the type of \( 3 \)-separation.
+Enumerator | |
---|---|
CMR_SEYMOUR_NODE_TYPE_IRREGULAR | Node represents 3-connected irregular matrix.
|
Enumerator | |
CMR_SEYMOUR_THREESUM_FLAG_NO_PIVOTS | Indicate to not change the rank distribution; only serves as an option; each constructed node will have either CMR_SEYMOUR_THREESUM_FLAG_DISTRIBUTED_RANKS or CMR_SEYMOUR_THREESUM_FLAG_CONCENTRATED_RANK set. |
CMR_SEYMOUR_NODE_TYPE_UNKNOWN | Type of node is not yet determined. + |
CMR_SEYMOUR_THREESUM_FLAG_DISTRIBUTED_RANKS | The two off-diagonal submatrices both have rank 1.
|
CMR_SEYMOUR_NODE_TYPE_ONE_SUM | Node represents a \( 1 \)-sum of matrices; has at least 2 child nodes.
|
CMR_SEYMOUR_THREESUM_FLAG_CONCENTRATED_RANK | The bottom-left submatrix has rank 2 and the top-right submatrix has rank 0.
|
CMR_SEYMOUR_NODE_TYPE_TWO_SUM | Node represents a 2-sum of matrices; has two child nodes.
|
CMR_SEYMOUR_THREESUM_FLAG_FIRST_WIDE | The first child node is of the form \( M_1^{\text{wide}} \); valid for distributed ranks.
|
CMR_SEYMOUR_NODE_TYPE_THREE_SUM | Node represents a 3-sum of matrices; has two child nodes.
|
CMR_SEYMOUR_THREESUM_FLAG_FIRST_TALL | The first child node is of the form \( M_1^{\text{tall}} \); valid for distributed ranks.
|
CMR_SEYMOUR_NODE_TYPE_SERIES_PARALLEL | Node represents a series-parallel reduction; has one child node.
|
CMR_SEYMOUR_THREESUM_FLAG_FIRST_MIXED | The first child node is of the form \( M_1^{\text{mixed}} \); valid for concentrated rank.
|
CMR_SEYMOUR_NODE_TYPE_PIVOTS | Node represents an application of pivots; has one child node.
|
CMR_SEYMOUR_THREESUM_FLAG_FIRST_ALLREPR | The first child node is of the form \( M_1^{\text{all-repr}} \); valid for concentrated rank.
|
CMR_SEYMOUR_NODE_TYPE_GRAPH | Node represents a graphic or network leaf.
|
CMR_SEYMOUR_THREESUM_FLAG_SECOND_WIDE | The second child node is of the form \( M_2^{\text{wide}} \); valid for distributed ranks.
|
CMR_SEYMOUR_NODE_TYPE_COGRAPH | Node represents a cographic or conetwork leaf.
|
CMR_SEYMOUR_THREESUM_FLAG_SECOND_TALL | The second child node is of the form \( M_2^{\text{tall}} \); valid for distributed ranks.
|
CMR_SEYMOUR_NODE_TYPE_PLANAR | Node represents a graphic and cographic (network and conetwork) leaf.
|
CMR_SEYMOUR_THREESUM_FLAG_SECOND_MIXED | The second child node is of the form \( M_2^{\text{mixed}} \); valid for concentrated rank.
|
CMR_SEYMOUR_NODE_TYPE_R10 | Node represents a representation matrix of \( R_{10} \).
|
CMR_SEYMOUR_THREESUM_FLAG_SECOND_ALLREPR | The second child node is of the form \( M_2^{\text{all-repr}} \); valid for concentrated rank.
|
CMR_SEYMOUR_THREESUM_FLAG_SEYMOUR | This combination of flags indicates a \( 3 \)-sum as defined by Seymour.
|
CMR_SEYMOUR_THREESUM_FLAG_TRUEMPER | This combination of flags indicates a \( 3 \)-sum as defined by Truemper.
|
CMR_EXPORT CMR_ERROR CMRregularityCloneSubtrees | -( | -CMR * | -cmr, | -
- | - | size_t | -numSubtrees, | -
- | - | CMR_SEYMOUR_NODE ** | -subtreeRoots, | -
- | - | CMR_SEYMOUR_NODE ** | -clonedSubtrees | -
- | ) | -- |
Clones the union of subtrees, returning the copies.
-The set of decomposition nodes that are (grand-)children of any of the numSubtrees
nodes subtreeRoots
is cloned. The respective clones are returned in clonedSubtrees
.
CMR_EXPORT 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.
+The set of Seymour decomposition nodes that are (grand-)children of any of the numSubtrees
nodes subtreeRoots
is cloned. The respective clones are returned in clonedSubtrees
.
Clones a decomposition node dec
into *pclone
which represents the same matrix but has type CMR_SEYMOUR_NODE_TYPE_UNKNOWN type.
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.
cmr | CMR environment. |
CMR_EXPORT size_t CMRseymourGetUsed | +( | +CMR_SEYMOUR_NODE * | +node | ) | ++ |
Returns node's reference counter.
+node | Seymour decomposition node. |
CMR_EXPORT CMR_ERROR CMRseymourParamsInit | +( | +CMR_SEYMOUR_PARAMS * | +params | ) | ++ |
Initializes the default parameters for regularity testing.
+These are selected for minimum running time.
+params | Pointer to parameters. |
CMR_EXPORT CMR_ERROR CMRseymourStatsInit | +( | +CMR_SEYMOUR_STATS * | +stats | ) | ++ |
Initializes all statistics for Seymour decomposition computations.
+stats | Pointer to statistics. |
CMR_EXPORT CMR_ERROR CMRseymourStatsPrint | +( | +FILE * | +stream, | +
+ | + | CMR_SEYMOUR_STATS * | +stats, | +
+ | + | const char * | +prefix | +
+ | ) | ++ |
Prints statistics for Seymour decomposition computations.
+stream | File stream to print to. |
stats | Pointer to statistics. |
prefix | Prefix string to prepend to each printed line (may be NULL ). |
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} \).
-In CMR, the matroid represented by a matrix can be decomposed, which is essential for testing for total unimodularity and regularity. The internal representation is a decomposition tree whose nodes are references to CMR_MATROID_DEC.
Each such decomposition node belongs to a matrix, either of the ternary field \( \mathbb{F} = \mathbb{F}_3 \) or over the binary field \( \mathbb{F} = \mathbb{F}_2 \). This is indicated by CMRmatroiddecIsTernary. While each node has an explicit matrix (see CMRmatroiddecGetMatrix), its transpose need not be stored explicitly (see CMRmatroiddecHasTranspose and CMRmatroiddecGetTranspose). If the matroid is regular then the support matrix of such a ternary matrix is then also a binary representation matrix.
diff --git a/regular_8c.html b/regular_8c.html index b882f95f..15c7ad92 100644 --- a/regular_8c.html +++ b/regular_8c.html @@ -88,7 +88,6 @@#include <time.h>
#include "env_internal.h"
#include "seymour_internal.h"
#include "regularity_internal.h"
Functions | |
CMR_ERROR | CMRregularStatsPrint (FILE *stream, CMR_REGULAR_STATS *stats, const char *prefix) |
Prints statistics for regularity test computations. More... | |
CMR_ERROR | CMRregularTest (CMR *cmr, CMR_CHRMAT *matrix, bool *pisRegular, CMR_SEYMOUR_NODE **pdec, CMR_MINOR **pminor, CMR_REGULAR_PARAMS *params, CMR_REGULAR_STATS *stats, double timeLimit) |
Tests binary linear matroid for regularity. More... | |
CMR_ERROR | CMRregularTest (CMR *cmr, CMR_CHRMAT *matrix, bool *pisRegular, CMR_SEYMOUR_NODE **proot, CMR_MINOR **pminor, CMR_REGULAR_PARAMS *params, CMR_REGULAR_STATS *stats, double timeLimit) |
Tests binary linear matroid for regularity. More... | |
CMR_ERROR | CMRregularCompleteDecomposition (CMR *cmr, CMR_SEYMOUR_NODE *dec, CMR_REGULAR_PARAMS *params, CMR_REGULAR_STATS *stats, double timeLimit) |
Completes a subtree of an existing decomposition tree. More... | |
CMR_SEYMOUR_NODE ** | -pdec, | +proot, |
@@ -404,7 +403,7 @@ | CMR environment. |
matrix | Input matrix. |
pisRegular | Pointer for storing whether matrix is regular. |
pdec | Pointer for storing the decomposition tree (may be NULL ). |
proot | Pointer for storing the Seymour decomposition tree (may be NULL ). |
pminor | Pointer for storing an \( F_7 \) or \( F_7^\star \) minor. |
params | Parameters for the computation (may be NULL for defaults). |
stats | Statistics for the computation (may be NULL ). |
Statistics for regular matroid recognition algorithm. More... | |
-Enumerations | |
enum | CMR_DEC_CONSTRUCT { CMR_DEC_CONSTRUCT_NONE = 0 -, CMR_DEC_CONSTRUCT_LEAVES = 1 -, CMR_DEC_CONSTRUCT_ALL = 2 - } |
enum | CMR_REGULAR_TREE_FLAGS { - CMR_REGULAR_TREE_FLAGS_RECURSE = 1 -, CMR_REGULAR_TREE_FLAGS_STOP_IRREGULAR = 2 -, CMR_REGULAR_TREE_FLAGS_STOP_NONGRAPHIC = 4 -, CMR_REGULAR_TREE_FLAGS_STOP_NONCOGRAPHIC = 8 -, - CMR_REGULAR_TREE_FLAGS_STOP_NONGRAPHIC_NONCOGRAPHIC = 16 -, CMR_REGULAR_TREE_FLAGS_DEFAULT = CMR_REGULAR_TREE_FLAGS_RECURSE | CMR_REGULAR_TREE_FLAGS_STOP_IRREGULAR - - } |
Flags that control termination of the regular matroid decomposition algorithm. More... | |
Functions | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CMR_EXPORT CMR_ERROR | CMRregularParamsInit (CMR_REGULAR_PARAMS *params) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CMR_EXPORT CMR_ERROR | CMRregularStatsPrint (FILE *stream, CMR_REGULAR_STATS *stats, const char *prefix) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Prints statistics for regularity test computations. More... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CMR_EXPORT CMR_ERROR | CMRregularTest (CMR *cmr, CMR_CHRMAT *matrix, bool *pisRegular, CMR_SEYMOUR_NODE **pdec, CMR_MINOR **pminor, CMR_REGULAR_PARAMS *params, CMR_REGULAR_STATS *stats, double timeLimit) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Tests binary linear matroid for regularity. More... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CMR_EXPORT CMR_ERROR | CMRregularTest (CMR *cmr, CMR_CHRMAT *matrix, bool *pisRegular, CMR_SEYMOUR_NODE **proot, CMR_MINOR **pminor, CMR_REGULAR_PARAMS *params, CMR_REGULAR_STATS *stats, double timeLimit) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Tests binary linear matroid for regularity. More... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CMR_EXPORT CMR_ERROR | CMRregularCompleteDecomposition (CMR *cmr, CMR_SEYMOUR_NODE *dec, CMR_REGULAR_PARAMS *params, CMR_REGULAR_STATS *stats, double timeLimit) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Completes a subtree of an existing decomposition tree. More... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
enum CMR_DEC_CONSTRUCT | -
enum CMR_REGULAR_TREE_FLAGS | -
Flags that control termination of the regular matroid decomposition algorithm.
-matrix
is regular. NULL
). NULL
). NULL
for defaults). NULL
). #include "regularity_internal.h"
#include <cmr/graphic.h>
#include <cmr/graphic.h>
#include <cmr/network.h>
#include "seymour_internal.h"
#include "env_internal.h"
#include "hashtable.h"
#include <stdint.h>
#include "seymour_internal.h"
#include "regularity_internal.h"
#include "env_internal.h"
#include "densematrix.h"
#include "hashtable.h"
#include <stdlib.h>
#include "env_internal.h"
#include "seymour_internal.h"
#include "regularity_internal.h"
#include "sort.h"
#include "block_decomposition.h"
Classes |
Classes | |
struct | ClonePair |
Pair of a given Seymour decomposition node and its clone. More... | |
@@ -104,6 +106,15 @@ |
Functions | |
CMR_ERROR | CMRseymourParamsInit (CMR_SEYMOUR_PARAMS *params) |
Initializes the default parameters for regularity testing. More... | |
CMR_ERROR | CMRseymourStatsInit (CMR_SEYMOUR_STATS *stats) |
Initializes all statistics for Seymour decomposition computations. More... | |
CMR_ERROR | CMRseymourStatsPrint (FILE *stream, CMR_SEYMOUR_STATS *stats, const char *prefix) |
Prints statistics for Seymour decomposition computations. More... | |
bool | CMRseymourIsTernary (CMR_SEYMOUR_NODE *node) |
Returns true iff the decomposition is over \( \mathbb{F}_3 \). More... | |
size_t * | CMRseymourPivotColumns (CMR_SEYMOUR_NODE *node) |
Returns the array with the pivot columns (if available). More... | |
size_t | CMRseymourGetUsed (CMR_SEYMOUR_NODE *node) |
Returns node's reference counter. More... | |
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 . More... | |
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 dec into *pclone which represents the same matrix but has type CMR_SEYMOUR_NODE_TYPE_UNKNOWN type. More... | |
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. More... | |
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 . More... | |
Set regularity and (co)graphicness attributes of a decomposition tree. More... | |
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. More... | |
CMR_ERROR | CMRregularityCloneSubtrees (CMR *cmr, size_t numSubtrees, CMR_SEYMOUR_NODE **subtreeRoots, CMR_SEYMOUR_NODE **clonedSubtrees) |
Clones the union of subtrees, returning the copies. More... | |
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. More... | |
CMR_ERROR | CMRregularityTaskCreateRoot (CMR *cmr, CMR_SEYMOUR_NODE *dec, 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. More... | |
CMR_ERROR | CMRregularityTaskFree (CMR *cmr, DecompositionTask **ptask) |
Frees a decomposition task. More... | |
CMR_ERROR | CMRregularityQueueCreate (CMR *cmr, DecompositionQueue **pqueue) |
Initializes a decomposition queue. More... | |
CMR_ERROR | CMRregularityQueueFree (CMR *cmr, DecompositionQueue **pqueue) |
Frees the decomposition queue. More... | |
bool | CMRregularityQueueEmpty (DecompositionQueue *queue) |
Returns whether a queue is empty. More... | |
DecompositionTask * | CMRregularityQueueRemove (DecompositionQueue *queue) |
Removes a task from a decomposition queue. More... | |
void | CMRregularityQueueAdd (DecompositionQueue *queue, DecompositionTask *task) |
Adds a task to a decomposition queue. More... | |
static CMR_ERROR | CMRregularityTaskRun (CMR *cmr, DecompositionTask *task, DecompositionQueue *queue) |
Runs a task for processing the associated decomposition node. More... | |
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. More... | |
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. More... | |
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. More... | |
Clones node
to *pclone
, updates cloning data structures and calls itself recursively.
Inserts it into nodesToClonesHashtable
, and updates the array *pclonePairs
with the cloned pairs.
cmr | CMR environment. |
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 | CMR environment. |
subtree | Decomposition node of the subtree root. |
params | Parameters for the computation. |
stats | Statistics for the computation (may be NULL ). |
timeLimit | Time limit to impose. |
void CMRregularityQueueAdd | +( | +DecompositionQueue * | +queue, | +
+ | + | DecompositionTask * | +task | +
+ | ) | ++ |
Adds a task to a decomposition queue.
+queue | Queue. |
task | Task. |
CMR_ERROR CMRregularityQueueCreate | +( | +CMR * | +cmr, | +
+ | + | DecompositionQueue ** | +pqueue | +
+ | ) | ++ |
Initializes a decomposition queue.
+cmr | CMR environment. |
pqueue | Pointer for storing the queue. |
bool CMRregularityQueueEmpty | +( | +DecompositionQueue * | +queue | ) | ++ |
Returns whether a queue is empty.
+queue | Queue. |
CMR_ERROR CMRregularityQueueFree | +( | +CMR * | +cmr, | +
+ | + | DecompositionQueue ** | +pqueue | +
+ | ) | ++ |
Frees the decomposition queue.
+cmr | CMR environment. |
pqueue | Pointer to queue. |
DecompositionTask* CMRregularityQueueRemove | +( | +DecompositionQueue * | +queue | ) | ++ |
Removes a task from a decomposition queue.
+queue | Queue. |
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.
+cmr | CMR environment. |
numNodes | Number of nodes to refine. |
nodes | Array of decomposition nodes to refine. |
params | Parameters for the computation. |
stats | Statistics for the computation (may be NULL ). |
timeLimit | Time limit to impose. |
CMR_ERROR CMRregularityTaskCreateRoot | +( | +CMR * | +cmr, | +
+ | + | CMR_SEYMOUR_NODE * | +dec, | +
+ | + | 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 | CMR environment. |
dec | Decomposition node. |
ptask | Pointer for storing the new task. |
params | Parameters for the computation. |
stats | Statistics for the computation (may be NULL ). |
startClock | Clock for the start time. |
timeLimit | Time limit to impose. |
CMR_ERROR CMRregularityTaskFree | +( | +CMR * | +cmr, | +
+ | + | DecompositionTask ** | +ptask | +
+ | ) | ++ |
Frees a decomposition task.
+cmr | CMR environment. |
ptask | Pointer to task. |
+
|
+ +static | +
Runs a task for processing the associated decomposition node.
+cmr | CMR environment. |
task | Task to be processed; already removed from the list of unprocessed tasks. |
queue | Queue of unprocessed tasks. |
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.
+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 the matrix shall be considered ternary. |
proot | Pointer for storing the root of the Seymour decomposition. |
params | Parameters for the computation. |
stats | Statistics for the computation (may be NULL ). |
timeLimit | Time limit to impose. |
#include <cmr/matrix.h>
#include <cmr/matroid.h>
#include <cmr/graph.h>
#include <cmr/network.h>
#include <cmr/series_parallel.h>
#include <stdio.h>
#include <stdint.h>
Go to the source code of this file.
+Classes | |
struct | CMR_SEYMOUR_PARAMS |
Parameters for Seymour decomposition algorithm. More... | |
struct | CMR_SEYMOUR_STATS |
Statistics for Seymour decomposition algorithm. More... | |
Typedefs | |
typedef struct _CMR_SEYMOUR_NODE | CMR_SEYMOUR_NODE |
Functions | |
CMR_EXPORT CMR_ERROR | CMRseymourParamsInit (CMR_SEYMOUR_PARAMS *params) |
Initializes the default parameters for regularity testing. More... | |
CMR_EXPORT CMR_ERROR | CMRseymourStatsInit (CMR_SEYMOUR_STATS *stats) |
Initializes all statistics for Seymour decomposition computations. More... | |
CMR_EXPORT CMR_ERROR | CMRseymourStatsPrint (FILE *stream, CMR_SEYMOUR_STATS *stats, const char *prefix) |
Prints statistics for Seymour decomposition computations. More... | |
CMR_EXPORT bool | CMRseymourIsTernary (CMR_SEYMOUR_NODE *node) |
Returns true iff the decomposition is over \( \mathbb{F}_3 \). More... | |
CMR_EXPORT size_t * | CMRseymourPivotColumns (CMR_SEYMOUR_NODE *node) |
Returns the array with the pivot columns (if available). More... | |
CMR_EXPORT size_t | CMRseymourGetUsed (CMR_SEYMOUR_NODE *node) |
Returns node's reference counter. More... | |
CMR_EXPORT 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 . More... | |
CMR_EXPORT CMR_ERROR | CMRseymourCloneUnknown (CMR *cmr, CMR_SEYMOUR_NODE *node, CMR_SEYMOUR_NODE **pclone) |
Clones a decomposition node dec into *pclone which represents the same matrix but has type CMR_SEYMOUR_NODE_TYPE_UNKNOWN type. More... | |
CMR_EXPORT CMR_ERROR | CMRseymourCapture (CMR *cmr, CMR_SEYMOUR_NODE *node) |
Increases the reference counter by 1. More... | |
CMR_EXPORT CMR_ERROR | CMRseymourCreate (CMR *cmr, CMR_SEYMOUR_NODE **pnode, bool isTernary, CMR_CHRMAT *matrix) |
Creates an unknown decomposition node as a root. More... | |
CMR_EXPORT CMR_ERROR | CMRregularityCloneSubtrees (CMR *cmr, size_t numSubtrees, CMR_SEYMOUR_NODE **subtreeRoots, CMR_SEYMOUR_NODE **clonedSubtrees) |
Clones the union of subtrees, returning the copies. More... | |
CMR_EXPORT 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. More... | |
CMR_EXPORT 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. More... | |
Functionality for Seymour decomposition.
diff --git a/seymour_8h_source.html b/seymour_8h_source.html index ef8e86ec..c1ccc333 100644 --- a/seymour_8h_source.html +++ b/seymour_8h_source.html @@ -80,355 +80,451 @@+Typedefs | |
typedef struct DecompositionTask | DecompositionTask |
typedef struct DecompositionQueue | DecompositionQueue |
Functions | |
CMR_ERROR | CMRseymourSetAttributes (CMR_SEYMOUR_NODE *node) |
Set regularity and (co)graphicness attributes of a decomposition tree. More... | |
CMR_ERROR | CMRregularityTaskCreateRoot (CMR *cmr, CMR_SEYMOUR_NODE *dec, 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. More... | |
CMR_ERROR | CMRregularityTaskFree (CMR *cmr, DecompositionTask **ptask) |
Frees a decomposition task. More... | |
CMR_ERROR | CMRregularityQueueCreate (CMR *cmr, DecompositionQueue **pqueue) |
Initializes a decomposition queue. More... | |
CMR_ERROR | CMRregularityQueueFree (CMR *cmr, DecompositionQueue **pqueue) |
Frees the decomposition queue. More... | |
bool | CMRregularityQueueEmpty (DecompositionQueue *queue) |
Returns whether a queue is empty. More... | |
DecompositionTask * | CMRregularityQueueRemove (DecompositionQueue *queue) |
Removes a task from a decomposition queue. More... | |
void | CMRregularityQueueAdd (DecompositionQueue *queue, DecompositionTask *task) |
Adds a task to a decomposition queue. More... | |
CMR_ERROR | CMRregularityDecomposeThreeSum (CMR *cmr, DecompositionTask *task, DecompositionQueue *queue, CMR_SEPA *separation) |
Applies a 3-sum decomposition. More... | |
CMR_ERROR | CMRregularityNestedMinorSequenceSearchThreeSeparation (CMR *cmr, DecompositionTask *task, DecompositionQueue *queue) |
Searches for 3-separations along the sequence of nested minors and decomposes as a 3-sum. More... | |
CMR_ERROR | CMRregularityNestedMinorSequenceGraphicness (CMR *cmr, DecompositionTask *task, DecompositionQueue *queue) |
Tests each minor of the sequence of nested 3-connected minors for graphicness. More... | |
CMR_ERROR | CMRregularityNestedMinorSequenceCographicness (CMR *cmr, DecompositionTask *task, DecompositionQueue *queue) |
Tests each minor of the sequence of nested 3-connected minors for graphicness. More... | |
CMR_ERROR | CMRregularityExtendNestedMinorSequence (CMR *cmr, DecompositionTask *task, DecompositionQueue *queue) |
Extends an incomplete sequence of nested 3-connected minors for the matrix of a decomposition node. More... | |
CMR_ERROR | CMRregularityTestR10 (CMR *cmr, DecompositionTask *task, DecompositionQueue *queue) |
Tests matrix for representing \( R_{10} \). More... | |
CMR_ERROR | CMRregularityInitNestedMinorSequence (CMR *cmr, DecompositionTask *task, CMR_SUBMAT *wheelSubmatrix) |
Initializes a sequence of nested minors with one minor, for a given wheelSubmatrix . More... | |
CMR_ERROR | CMRregularityDecomposeSeriesParallel (CMR *cmr, DecompositionTask *task, DecompositionQueue *queue) |
Splits off series-parallel elements from the matrix of the decomposition node. More... | |
CMR_ERROR | CMRregularityTestGraphicness (CMR *cmr, DecompositionTask *task, DecompositionQueue *queue) |
Tests matrix for graphicness/network and stores it in dec . More... | |
CMR_ERROR | CMRregularityTestCographicness (CMR *cmr, DecompositionTask *task, DecompositionQueue *queue) |
Tests matrix for cographicness/conetwork and stores it in dec . More... | |
CMR_ERROR | CMRregularitySearchOneSum (CMR *cmr, DecompositionTask *task, DecompositionQueue *queue) |
Performs a 1-sum decomposition of matrix and stores it in dec . More... | |
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. More... | |
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. More... | |
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. More... | |
typedef struct DecompositionQueue DecompositionQueue | +
typedef struct DecompositionTask DecompositionTask | +
CMR_ERROR CMRseymourAddMinor | +CMR_ERROR CMRregularityCompleteDecomposition | ( | CMR * | cmr, | @@ -163,13 +267,25 @@CMR_SEYMOUR_NODE * | -node, | +subtree, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- | CMR_MINOR * | -minor | +CMR_SEYMOUR_PARAMS * | +params, | +|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+ | + | CMR_SEYMOUR_STATS * | +stats, | +||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+ | + | double | +timeLimit | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@@ -179,36 +295,43 @@ |
cmr | CMR environment. |
node | Seymour decomposition node. |
minor | Minor to be added. |
subtree | Decomposition node of the subtree root. |
params | Parameters for the computation. |
stats | Statistics for the computation (may be NULL ). |
timeLimit | Time limit to impose. |
char* CMRseymourConsistency | +CMR_ERROR CMRregularityDecomposeSeriesParallel | ( | -CMR_SEYMOUR_NODE * | -node, | +CMR * | +cmr, | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- | bool | -recurse | +DecompositionTask * | +task, | +|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+ | + | DecompositionQueue * | +queue | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@@ -218,28 +341,28 @@ |
node | Seymour decomposition node. |
recurse | Whether all (grand-)children shall be checked, too. |
cmr | CMR environment. |
task | Task to be processed; already removed from the list of unprocessed tasks. |
queue | Queue of unprocessed nodes. |
CMR_ERROR CMRseymourCreateChildFromMatrices | +CMR_ERROR CMRregularityDecomposeThreeSum | ( | CMR * | cmr, | @@ -247,38 +370,110 @@- | CMR_SEYMOUR_NODE * | -parent, | +DecompositionTask * | +task, |
- | size_t | -childIndex, | +DecompositionQueue * | +queue, | |||||
- | CMR_CHRMAT * | -matrix, | +CMR_SEPA * | +separation | +|||||
+ | ) | ++ |
Applies a 3-sum decomposition.
+cmr | CMR environment. |
task | Task to be processed; already removed from the list of unprocessed tasks. |
queue | Queue of unprocessed nodes. |
separation | 3-separation. |
CMR_ERROR CMRregularityExtendNestedMinorSequence | +( | +CMR * | +cmr, | ||
- | CMR_CHRMAT * | -transpose, | +DecompositionTask * | +task, | |
- | CMR_ELEMENT * | -rowsToParent, | +DecompositionQueue * | +queue | +|
+ | ) | ++ |
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. |
task | Task to be processed; already removed from the list of unprocessed tasks. |
queue | Queue of unprocessed nodes. |
CMR_ERROR CMRregularityInitNestedMinorSequence | +( | +CMR * | +cmr, | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- | CMR_ELEMENT * | -columnsToParent | +DecompositionTask * | +task, | +||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+ | + | CMR_SUBMAT * | +wheelSubmatrix | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@@ -288,17 +483,892 @@ |
cmr | CMR environment. |
parent | Seymour decomposition parent node. |
childIndex | Child index of parent. |
matrix | The matrix corresponding to this node. |
transpose | The transpose matrix corresponding to this node. |
rowsToParent | Array for mapping rows to elements of parent. |
columnsToParent | Array for mapping columns to elements of parent. |
task | Task to be processed; already removed from the list of unprocessed tasks. |
wheelSubmatrix | Wheel submatrix of task->dec . |
CMR_ERROR CMRregularityNestedMinorSequenceCographicness | +( | +CMR * | +cmr, | +
+ | + | DecompositionTask * | +task, | +
+ | + | DecompositionQueue * | +queue | +
+ | ) | ++ |
Tests each minor of the sequence of nested 3-connected minors for graphicness.
+Sets task->dec->CMRregularityNestedMinorSequenceCographicness
accordingly.
cmr | CMR environment. |
task | Task to be processed; already removed from the list of unprocessed tasks. |
queue | Queue of unprocessed nodes. |
CMR_ERROR CMRregularityNestedMinorSequenceGraphicness | +( | +CMR * | +cmr, | +
+ | + | DecompositionTask * | +task, | +
+ | + | DecompositionQueue * | +queue | +
+ | ) | ++ |
Tests each minor of the sequence of nested 3-connected minors for graphicness.
+Sets task->dec->CMRregularityNestedMinorSequenceGraphicness
accordingly.
cmr | CMR environment. |
task | Task to be processed; already removed from the list of unprocessed tasks. |
queue | Queue of unprocessed nodes. |
CMR_ERROR CMRregularityNestedMinorSequenceSearchThreeSeparation | +( | +CMR * | +cmr, | +
+ | + | DecompositionTask * | +task, | +
+ | + | DecompositionQueue * | +queue | +
+ | ) | ++ |
Searches for 3-separations along the sequence of nested minors and decomposes as a 3-sum.
+cmr | CMR environment. |
task | Task to be processed; already removed from the list of unprocessed tasks. |
queue | Queue of unprocessed nodes. |
void CMRregularityQueueAdd | +( | +DecompositionQueue * | +queue, | +
+ | + | DecompositionTask * | +task | +
+ | ) | ++ |
Adds a task to a decomposition queue.
+queue | Queue. |
task | Task. |
CMR_ERROR CMRregularityQueueCreate | +( | +CMR * | +cmr, | +
+ | + | DecompositionQueue ** | +pqueue | +
+ | ) | ++ |
Initializes a decomposition queue.
+cmr | CMR environment. |
pqueue | Pointer for storing the queue. |
bool CMRregularityQueueEmpty | +( | +DecompositionQueue * | +queue | ) | ++ |
Returns whether a queue is empty.
+queue | Queue. |
CMR_ERROR CMRregularityQueueFree | +( | +CMR * | +cmr, | +
+ | + | DecompositionQueue ** | +pqueue | +
+ | ) | ++ |
Frees the decomposition queue.
+cmr | CMR environment. |
pqueue | Pointer to queue. |
DecompositionTask* CMRregularityQueueRemove | +( | +DecompositionQueue * | +queue | ) | ++ |
Removes a task from a decomposition queue.
+queue | Queue. |
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.
+cmr | CMR environment. |
numNodes | Number of nodes to refine. |
nodes | Array of decomposition nodes to refine. |
params | Parameters for the computation. |
stats | Statistics for the computation (may be NULL ). |
timeLimit | Time limit to impose. |
CMR_ERROR CMRregularitySearchOneSum | +( | +CMR * | +cmr, | +
+ | + | DecompositionTask * | +task, | +
+ | + | DecompositionQueue * | +queue | +
+ | ) | ++ |
Performs a 1-sum decomposition of matrix
and stores it in dec
.
If matrix
is 1-connected, then dec
remains unchanged. Otherwise, dec
will become a CMR_MATROID_DEC_TYPE_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. |
task | Task to be processed; already removed from the list of unprocessed tasks. |
queue | Queue of unprocessed nodes. |
CMR_ERROR CMRregularityTaskCreateRoot | +( | +CMR * | +cmr, | +
+ | + | CMR_SEYMOUR_NODE * | +dec, | +
+ | + | 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 | CMR environment. |
dec | Decomposition node. |
ptask | Pointer for storing the new task. |
params | Parameters for the computation. |
stats | Statistics for the computation (may be NULL ). |
startClock | Clock for the start time. |
timeLimit | Time limit to impose. |
CMR_ERROR CMRregularityTaskFree | +( | +CMR * | +cmr, | +
+ | + | DecompositionTask ** | +ptask | +
+ | ) | ++ |
Frees a decomposition task.
+cmr | CMR environment. |
ptask | Pointer to task. |
CMR_ERROR CMRregularityTestCographicness | +( | +CMR * | +cmr, | +
+ | + | DecompositionTask * | +task, | +
+ | + | DecompositionQueue * | +queue | +
+ | ) | ++ |
Tests matrix
for cographicness/conetwork and stores it in dec
.
cmr | CMR environment. |
task | Task to be processed; already removed from the list of unprocessed tasks. |
queue | Queue of unprocessed nodes. |
CMR_ERROR CMRregularityTestGraphicness | +( | +CMR * | +cmr, | +
+ | + | DecompositionTask * | +task, | +
+ | + | DecompositionQueue * | +queue | +
+ | ) | ++ |
Tests matrix
for graphicness/network and stores it in dec
.
cmr | CMR environment. |
task | Task to be processed; already removed from the list of unprocessed tasks. |
queue | Queue of unprocessed nodes. |
CMR_ERROR CMRregularityTestR10 | +( | +CMR * | +cmr, | +
+ | + | DecompositionTask * | +task, | +
+ | + | DecompositionQueue * | +queue | +
+ | ) | ++ |
Tests matrix
for representing \( R_{10} \).
cmr | CMR environment. |
task | Task to be processed; already removed from the list of unprocessed tasks. |
queue | Queue of unprocessed nodes. |
CMR_ERROR CMRseymourAddMinor | +( | +CMR * | +cmr, | +
+ | + | CMR_SEYMOUR_NODE * | +node, | +
+ | + | CMR_MINOR * | +minor | +
+ | ) | ++ |
Adds a minor to a Seymour decomposition node.
+Does not copy the minor.
+cmr | CMR environment. |
node | Seymour decomposition node. |
minor | Minor to be added. |
char* CMRseymourConsistency | +( | +CMR_SEYMOUR_NODE * | +node, | +
+ | + | bool | +recurse | +
+ | ) | ++ |
Checks a Seymour decomposition node for consistency.
+Checks all requirements defined in Representation of Matroids and their Decomposition.
+NULL
if consistent. Otherwise, an explanation string is returned, which must freed with free()
.node | Seymour decomposition node. |
recurse | Whether all (grand-)children shall be checked, too. |
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.
+Copies matrix
and transpose
into the node.
cmr | CMR environment. |
parent | Seymour decomposition parent node. |
childIndex | Child index of parent. |
matrix | The matrix corresponding to this node. |
transpose | The transpose matrix corresponding to this node. |
rowsToParent | Array for mapping rows to elements of parent. |
columnsToParent | Array for mapping columns to elements of parent. |
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.
+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 the matrix shall be considered ternary. |
proot | Pointer for storing the root of the Seymour decomposition. |
params | Parameters for the computation. |
stats | Statistics for the computation (may be NULL ). |
timeLimit | Time limit to impose. |
This is the complete list of members for CMR_REGULAR_PARAMS, including all inherited members.
Public Attributes | |
bool | directGraphicness |
Whether to use fast graphicness routines; default: true . More... | |
bool | seriesParallel |
Whether to allow series-parallel operations in the decomposition tree; default: true . More... | |
bool | planarityCheck |
Whether minors identified as graphic should still be checked for cographicness; default: false . More... | |
int | treeFlags |
Flags controlling the decomposition algorithm. See - More... | |
bool | threeSumPivotChildren |
Whether pivots for 3-sums shall be applied such that the matrix contains both child matrices as submatrices, if possible. More... | |
int | threeSumStrategy |
Whether to perform pivots to change the rank distribution, and how to construct the children. More... | |
CMR_DEC_CONSTRUCT | graphs |
Which (co)graphs to construct; default: CMR_DEC_CONSTRUCT_NONE. More... | |
CMR_SEYMOUR_PARAMS | seymour |
bool CMR_REGULAR_PARAMS::directGraphicness | +CMR_SEYMOUR_PARAMS CMR_REGULAR_PARAMS::seymour |
Whether to use fast graphicness routines; default: true
.
CMR_DEC_CONSTRUCT CMR_REGULAR_PARAMS::graphs | -
Which (co)graphs to construct; default: CMR_DEC_CONSTRUCT_NONE.
- -bool CMR_REGULAR_PARAMS::planarityCheck | -
Whether minors identified as graphic should still be checked for cographicness; default: false
.
bool CMR_REGULAR_PARAMS::seriesParallel | -
Whether to allow series-parallel operations in the decomposition tree; default: true
.
bool CMR_REGULAR_PARAMS::threeSumPivotChildren | -
Whether pivots for 3-sums shall be applied such that the matrix contains both child matrices as submatrices, if possible.
- -int CMR_REGULAR_PARAMS::threeSumStrategy | -
Whether to perform pivots to change the rank distribution, and how to construct the children.
-The value is a bit-wise or of three decisions. The first decision is that of the rank distribution:
The second decision determines the layout of the first child matrix:
Similarly, the third decision determines the layout of the second child matrix:
A decomposition as described by Seymour can be selected via CMR_MATROID_DEC_THREESUM_FLAG_SEYMOUR. A decomposition as used by Truemper can be selected via CMR_MATROID_DEC_THREESUM_FLAG_TRUEMPER. The default is to not carry out any pivots and choose Seymour's or Truemper's definition depending on the rank distribution.
- -int CMR_REGULAR_PARAMS::treeFlags | -
Flags controlling the decomposition algorithm. See
-
Whether to compute a complete decomposition tree (even if already non-regular; default: false
.
This is the complete list of members for CMR_REGULAR_STATS, including all inherited members.
Public Attributes | |
uint32_t | totalCount |
double | totalTime |
CMR_SP_STATISTICS | seriesParallel |
CMR_GRAPHIC_STATISTICS | graphic |
CMR_NETWORK_STATISTICS | network |
CMR_CAMION_STATISTICS | camion |
uint32_t | sequenceExtensionCount |
double | sequenceExtensionTime |
uint32_t | sequenceGraphicCount |
double | sequenceGraphicTime |
uint32_t | enumerationCount |
double | enumerationTime |
uint32_t | enumerationCandidatesCount |
CMR_SEYMOUR_STATS | seymour |
Statistics for regular matroid recognition algorithm.
CMR_CAMION_STATISTICS CMR_REGULAR_STATS::camion | +CMR_SEYMOUR_STATS CMR_REGULAR_STATS::seymour |
Statistics for Camion signing.
- -uint32_t CMR_REGULAR_STATS::enumerationCandidatesCount | -
Number of enumerated candidates for 3-separations.
- -uint32_t CMR_REGULAR_STATS::enumerationCount | -
Number of calls to enumeration algorithm for candidate 3-separations.
- -double CMR_REGULAR_STATS::enumerationTime | -
Time of enumeration of candidate 3-separations.
- -CMR_GRAPHIC_STATISTICS CMR_REGULAR_STATS::graphic | -
Statistics for direct (co)graphic checks.
- -CMR_NETWORK_STATISTICS CMR_REGULAR_STATS::network | -
Statistics for direct (co)network checks.
- -uint32_t CMR_REGULAR_STATS::sequenceExtensionCount | -
Number of extensions of sequences of nested minors.
- -double CMR_REGULAR_STATS::sequenceExtensionTime | -
Time of extensions of sequences of nested minors.
- -uint32_t CMR_REGULAR_STATS::sequenceGraphicCount | -
Number (co)graphicness tests applied to sequence of nested minors.
- -double CMR_REGULAR_STATS::sequenceGraphicTime | -
Time of (co)graphicness tests applied to sequence of nested minors.
- -CMR_SP_STATISTICS CMR_REGULAR_STATS::seriesParallel | -
Statistics for series-parallel algorithm.
- -uint32_t CMR_REGULAR_STATS::totalCount | -
Total number of invocations.
- -double CMR_REGULAR_STATS::totalTime | -
Total time of all invocations.
+Statistics for Seymour decomposition computations.
+ |
+ CMR
+ 1.3.0
+
+ |
+
This is the complete list of members for CMR_SEYMOUR_PARAMS, including all inherited members.
++ |
+ CMR
+ 1.3.0
+
+ |
+
Parameters for Seymour decomposition algorithm. + More...
+ +#include <seymour.h>
+Public Attributes | |
bool | stopWhenIrregular |
Whether to stop decomposing once irregularity is determined. More... | |
bool | stopWhenNongraphic |
Whether to stop decomposing once non-graphicness (or being non-network) is determined. More... | |
bool | stopWhenNoncographic |
Whether to stop decomposing once non-cographicness (or being non-conetwork) is determined. More... | |
bool | stopWhenNeitherGraphicNorCoGraphic |
Whether to stop decomposing once non-graphicness and non-cographicness (or not being network and not being conetwork) is determined. More... | |
bool | seriesParallel |
Whether to allow series-parallel operations in the decomposition tree; default: true . More... | |
bool | planarityCheck |
Whether minors identified as graphic should still be checked for cographicness; default: false . More... | |
bool | directGraphicness |
Whether to use fast graphicness routines; default: true . More... | |
bool | preferGraphicness |
Whether to first test for (co)graphicness (or being (co)network) before applying series-parallel reductions. More... | |
bool | threeSumPivotChildren |
Whether pivots for 3-sums shall be applied such that the matrix contains both child matrices as submatrices, if possible. More... | |
int | threeSumStrategy |
Whether to perform pivots to change the rank distribution, and how to construct the children. More... | |
bool | constructLeafGraphs |
Whether to construct (co)graphs for all leaf nodes that are (co)graphic or (co)network. More... | |
bool | constructAllGraphs |
Whether to construct (co)graphs for all nodes that are (co)graphic or (co)network. More... | |
Parameters for Seymour decomposition algorithm.
+bool CMR_SEYMOUR_PARAMS::constructAllGraphs | +
Whether to construct (co)graphs for all nodes that are (co)graphic or (co)network.
+ +bool CMR_SEYMOUR_PARAMS::constructLeafGraphs | +
Whether to construct (co)graphs for all leaf nodes that are (co)graphic or (co)network.
+ +bool CMR_SEYMOUR_PARAMS::directGraphicness | +
Whether to use fast graphicness routines; default: true
.
bool CMR_SEYMOUR_PARAMS::planarityCheck | +
Whether minors identified as graphic should still be checked for cographicness; default: false
.
bool CMR_SEYMOUR_PARAMS::preferGraphicness | +
Whether to first test for (co)graphicness (or being (co)network) before applying series-parallel reductions.
+ +bool CMR_SEYMOUR_PARAMS::seriesParallel | +
Whether to allow series-parallel operations in the decomposition tree; default: true
.
bool CMR_SEYMOUR_PARAMS::stopWhenIrregular | +
Whether to stop decomposing once irregularity is determined.
+ +bool CMR_SEYMOUR_PARAMS::stopWhenNeitherGraphicNorCoGraphic | +
Whether to stop decomposing once non-graphicness and non-cographicness (or not being network and not being conetwork) is determined.
+ +bool CMR_SEYMOUR_PARAMS::stopWhenNoncographic | +
Whether to stop decomposing once non-cographicness (or being non-conetwork) is determined.
+ +bool CMR_SEYMOUR_PARAMS::stopWhenNongraphic | +
Whether to stop decomposing once non-graphicness (or being non-network) is determined.
+ +bool CMR_SEYMOUR_PARAMS::threeSumPivotChildren | +
Whether pivots for 3-sums shall be applied such that the matrix contains both child matrices as submatrices, if possible.
+ +int CMR_SEYMOUR_PARAMS::threeSumStrategy | +
Whether to perform pivots to change the rank distribution, and how to construct the children.
+The value is a bit-wise or of three decisions. The first decision is that of the rank distribution:
The second decision determines the layout of the first child matrix:
Similarly, the third decision determines the layout of the second child matrix:
A decomposition as described by Seymour can be selected via CMR_SEYMOUR_THREESUM_FLAG_SEYMOUR. A decomposition as used by Truemper can be selected via CMR_SEYMOUR_THREESUM_FLAG_TRUEMPER. The default is to not carry out any pivots and choose Seymour's or Truemper's definition depending on the rank distribution.
+ ++ |
+ CMR
+ 1.3.0
+
+ |
+
This is the complete list of members for CMR_SEYMOUR_STATS, including all inherited members.
++ |
+ CMR
+ 1.3.0
+
+ |
+
Statistics for Seymour decomposition algorithm. + More...
+ +#include <seymour.h>
+Public Attributes | |
uint32_t | totalCount |
double | totalTime |
CMR_SP_STATISTICS | seriesParallel |
CMR_GRAPHIC_STATISTICS | graphic |
CMR_NETWORK_STATISTICS | network |
uint32_t | sequenceExtensionCount |
double | sequenceExtensionTime |
uint32_t | sequenceGraphicCount |
double | sequenceGraphicTime |
uint32_t | enumerationCount |
double | enumerationTime |
uint32_t | enumerationCandidatesCount |
Statistics for Seymour decomposition algorithm.
+uint32_t CMR_SEYMOUR_STATS::enumerationCandidatesCount | +
Number of enumerated candidates for 3-separations.
+ +uint32_t CMR_SEYMOUR_STATS::enumerationCount | +
Number of calls to enumeration algorithm for candidate 3-separations.
+ +double CMR_SEYMOUR_STATS::enumerationTime | +
Time of enumeration of candidate 3-separations.
+ +CMR_GRAPHIC_STATISTICS CMR_SEYMOUR_STATS::graphic | +
Statistics for direct (co)graphic checks.
+ +CMR_NETWORK_STATISTICS CMR_SEYMOUR_STATS::network | +
Statistics for direct (co)network checks.
+ +uint32_t CMR_SEYMOUR_STATS::sequenceExtensionCount | +
Number of extensions of sequences of nested minors.
+ +double CMR_SEYMOUR_STATS::sequenceExtensionTime | +
Time of extensions of sequences of nested minors.
+ +uint32_t CMR_SEYMOUR_STATS::sequenceGraphicCount | +
Number (co)graphicness tests applied to sequence of nested minors.
+ +double CMR_SEYMOUR_STATS::sequenceGraphicTime | +
Time of (co)graphicness tests applied to sequence of nested minors.
+ +CMR_SP_STATISTICS CMR_SEYMOUR_STATS::seriesParallel | +
Statistics for series-parallel algorithm.
+ +uint32_t CMR_SEYMOUR_STATS::totalCount | +
Total number of invocations.
+ +double CMR_SEYMOUR_STATS::totalTime | +
Total time of all invocations.
+ +This is the complete list of members for CMR_TU_PARAMS, including all inherited members.
algorithm | CMR_TU_PARAMS | |
directCamion | CMR_TU_PARAMS | |
regular | CMR_TU_PARAMS | |
camionFirst | CMR_TU_PARAMS | |
seymour | CMR_TU_PARAMS | |
ternary | CMR_TU_PARAMS |
false
). More...true
). More...ternary
is false
, then then whether to run the Camion test first. More...bool CMR_TU_PARAMS::directCamion | +bool CMR_TU_PARAMS::camionFirst |
Whether to directly test signing of matrix (default: false
).
If ternary
is false
, then then whether to run the Camion test first.
CMR_REGULAR_PARAMS CMR_TU_PARAMS::regular | +CMR_SEYMOUR_PARAMS CMR_TU_PARAMS::seymour |
Parameters for regularity test.
+Parameters for testing via Seymour decomposition.
+ +bool CMR_TU_PARAMS::ternary | +
Whether to create a ternary Seymour decomposition tree (default: true
).
This is the complete list of members for CMR_TU_STATS, including all inherited members.
Public Attributes | ||
CMR_REGULAR_STATS | decomposition | |
CMR_SEYMOUR_STATS | seymour | |
CMR_CAMION_STATISTICS | camion | |
uint32_t | enumerationRowSubsets | |
uint32_t | enumerationColumnSubsets |
CMR_REGULAR_STATS CMR_TU_STATS::decomposition | +CMR_CAMION_STATISTICS CMR_TU_STATS::camion |
Statistics for regular matroid decomposition algorithm.
+Statistics for Camion signing.
Total time of partition algorithm.
+ + + +CMR_SEYMOUR_STATS CMR_TU_STATS::seymour | +
Statistics for Seymour decomposition computation.
+Pair of a given Seymour decomposition node and its clone. + More...
Public Attributes | |
CMR_SEYMOUR_NODE * | clone |
Pair of a given Seymour decomposition node and its clone.
+#include <regularity_internal.h>
#include <seymour_internal.h>
Public Attributes |
Public Attributes | ||
struct DecompositionTask * | next | |
Next task in queue. More... | ||
CMR_REGULAR_PARAMS * | params | |
Parameters for the computation. More... | ||
CMR_REGULAR_STATS * | stats | |
Statistics for the computation (may be NULL ). More... | ||
CMR_SEYMOUR_PARAMS * | params | |
Parameters for the computation. More... | ||
CMR_SEYMOUR_STATS * | stats | |
Statistics for the computation (may be NULL ). More... | ||
clock_t | startClock | |
Clock for the start time. More... | ||
CMR_REGULAR_PARAMS* DecompositionTask::params | +CMR_SEYMOUR_PARAMS* DecompositionTask::params |
CMR_REGULAR_STATS* DecompositionTask::stats | +CMR_SEYMOUR_STATS* DecompositionTask::stats |
type
indicates this. More...CMR_SEYMOUR_NODE_THREESUM_FLAG _CMR_SEYMOUR_NODE::threesumFlags | +CMR_SEYMOUR_THREESUM_FLAG _CMR_SEYMOUR_NODE::threesumFlags |
The corresponding function in the library is
and is defined in tu.h. Its parameters also allow to choose one of the enumeration algorithms with exponential running time instead of the decomposition algorithm.
#include "matrix_internal.h"
#include "block_decomposition.h"
#include "camion_internal.h"
#include "regularity_internal.h"
#include "hereditary_property.h"
#include "seymour_internal.h"
#include <stdlib.h>
#include <assert.h>
#include <time.h>
+Macros | |
#define | CMR_DEBUG /* Uncomment to debug this file. */ |
Functions | |
CMR_ERROR | CMRtuParamsInit (CMR_TU_PARAMS *params) |
static CMR_ERROR | tuPartition (CMR *cmr, CMR_CHRMAT *matrix, bool transposed, bool *pisTotallyUnimodular, CMR_TU_STATS *stats, double timeLimit) |
Partition test based on Ghouila-Houri. More... | |
CMR_ERROR | CMRtuTest (CMR *cmr, CMR_CHRMAT *matrix, bool *pisTotallyUnimodular, CMR_SEYMOUR_NODE **pdec, CMR_SUBMAT **psubmatrix, CMR_TU_PARAMS *params, CMR_TU_STATS *stats, double timeLimit) |
Tests a matrix \( M \) for being totally unimodular. More... | |
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 \( M \) for being totally unimodular. More... | |
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. More... | |
#define CMR_DEBUG /* Uncomment to debug this file. */ | +
NULL
). NULL
). NULL
). NULL
for defaults). NULL
). NULL
). NULL
). NULL
). NULL
for defaults). NULL
).