CMR  1.3.0
Classes | Functions
regular.h File Reference

Recognition of binary regular matrices. More...

#include <cmr/env.h>
#include <cmr/matrix.h>
#include <cmr/matroid.h>
#include <cmr/seymour.h>
#include <cmr/graph.h>
#include <cmr/series_parallel.h>
#include <cmr/graphic.h>
#include <cmr/network.h>

Go to the source code of this file.

Classes

struct  CMR_REGULAR_PARAMS
 
struct  CMR_REGULAR_STATS
 Statistics for regular matroid recognition algorithm. More...
 

Functions

CMR_EXPORT CMR_ERROR CMRregularParamsInit (CMR_REGULAR_PARAMS *params)
 Initializes the default parameters for regularity testing. More...
 
CMR_EXPORT CMR_ERROR CMRregularStatsInit (CMR_REGULAR_STATS *stats)
 Initializes all statistics for regularity test computations. More...
 
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 **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...
 
CMR_EXPORT CMR_ERROR CMRregularRefineDecomposition (CMR *cmr, size_t numNodes, CMR_SEYMOUR_NODE **nodes, CMR_REGULAR_PARAMS *params, CMR_REGULAR_STATS *stats, double timeLimit)
 Refines a list of decomposition nodes. More...
 

Detailed Description

Recognition of binary regular matrices.

Author
Matthias Walter and Klaus Truemper

Function Documentation

◆ CMRregularCompleteDecomposition()

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.

Replace the node's subtree by a new one even if it exists. Note that different parameters may yield a different subtree.

Parameters
cmrCMR environment.
decPointer to the decomposition node that is the root of the new subtree.
paramsParameters for the computation (may be NULL).
statsStatistics for the computation (may be NULL).
timeLimitTime limit to impose.

◆ CMRregularParamsInit()

CMR_EXPORT CMR_ERROR CMRregularParamsInit ( CMR_REGULAR_PARAMS params)

Initializes the default parameters for regularity testing.

These are selected for minimum running time.

Parameters
paramsPointer to parameters.

◆ CMRregularRefineDecomposition()

CMR_EXPORT CMR_ERROR CMRregularRefineDecomposition ( CMR cmr,
size_t  numNodes,
CMR_SEYMOUR_NODE **  nodes,
CMR_REGULAR_PARAMS params,
CMR_REGULAR_STATS stats,
double  timeLimit 
)

Refines a list of decomposition nodes.

Replace the nodes' subtrees by new ones even if they exist.

Parameters
cmrCMR environment.
numNodesNumber of nodes to refine.
nodesArray of decomposition nodes to refine.
paramsParameters for the computation (may be NULL).
statsStatistics for the computation (may be NULL).
timeLimitTime limit to impose.

◆ CMRregularStatsInit()

CMR_EXPORT CMR_ERROR CMRregularStatsInit ( CMR_REGULAR_STATS stats)

Initializes all statistics for regularity test computations.

Parameters
statsPointer to statistics.

◆ CMRregularStatsPrint()

CMR_EXPORT CMR_ERROR CMRregularStatsPrint ( FILE *  stream,
CMR_REGULAR_STATS stats,
const char *  prefix 
)

Prints statistics for regularity test computations.

Parameters
streamFile stream to print to.
statsPointer to statistics.
prefixPrefix string to prepend to each printed line (may be NULL).

◆ CMRregularTest()

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.

If pdec is not NULL, *pdec will be a (partial) decomposition tree. If completeTree is true, then the decomposition tree is complete. Otherwise, it must only contain sufficient information in order to determine regularity.

If pminor is not NULL and matrix is not regular, then an \( F_7 \) or \( F_7^\star \) minor is searched. This causes additional computational effort!

Parameters
cmrCMR environment.
matrixInput matrix.
pisRegularPointer for storing whether matrix is regular.
prootPointer for storing the Seymour decomposition tree (may be NULL).
pminorPointer for storing an \( F_7 \) or \( F_7^\star \) minor.
paramsParameters for the computation (may be NULL for defaults).
statsStatistics for the computation (may be NULL).
timeLimitTime limit to impose.