CMR  1.3.0
Functions
regular.c File Reference
#include <cmr/regular.h>
#include <assert.h>
#include <stdlib.h>
#include <time.h>
#include "env_internal.h"
#include "matroid_internal.h"
#include "regularity_internal.h"

Functions

CMR_ERROR CMRregularParamsInit (CMR_REGULAR_PARAMS *params)
 Initializes the default parameters for regularity testing. More...
 
CMR_ERROR CMRregularStatsInit (CMR_REGULAR_STATS *stats)
 Initializes all statistics for regularity test computations. More...
 
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_MATROID_DEC **pdec, 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_MATROID_DEC *dec, CMR_REGULAR_PARAMS *params, CMR_REGULAR_STATS *stats, double timeLimit)
 Completes a subtree of an existing decomposition tree. More...
 

Function Documentation

◆ CMRregularCompleteDecomposition()

CMR_ERROR CMRregularCompleteDecomposition ( CMR cmr,
CMR_MATROID_DEC 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.s

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

◆ CMRregularParamsInit()

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.

◆ CMRregularStatsInit()

CMR_ERROR CMRregularStatsInit ( CMR_REGULAR_STATS stats)

Initializes all statistics for regularity test computations.

Parameters
statsPointer to statistics.

◆ CMRregularStatsPrint()

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_ERROR CMRregularTest ( CMR cmr,
CMR_CHRMAT matrix,
bool *  pisRegular,
CMR_MATROID_DEC **  pdec,
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.
pdecPointer for storing the 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.