1 #ifndef CMR_REGULAR_INTERNAL_H
2 #define CMR_REGULAR_INTERNAL_H
CMR_ERROR
Type for return codes of library functions.
Definition: env.h:32
Recognition of regular matrices.
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.
Definition: regularity_partition.c:717
CMR_ERROR CMRregularityTestGraphicness(CMR *cmr, DecompositionTask *task, DecompositionQueue *queue)
Tests matrix for graphicness/network and stores it in dec.
Definition: regularity_graphic.c:1802
CMR_ERROR CMRregularityTest(CMR *cmr, CMR_CHRMAT *matrix, bool ternary, bool *pisRegular, CMR_MATROID_DEC **pdec, CMR_MINOR **pminor, CMR_REGULAR_PARAMS *params, CMR_REGULAR_STATS *stats, double timeLimit)
Tests ternary or binary linear matroid for regularity.
Definition: regularity.c:172
CMR_ERROR CMRregularityTestR10(CMR *cmr, DecompositionTask *task, DecompositionQueue *queue)
Tests matrix for representing .
Definition: regularity_r10.c:9
CMR_ERROR CMRregularityDecomposeThreeSum(CMR *cmr, DecompositionTask *task, DecompositionQueue *queue, CMR_SEPA *separation)
Applies a 3-sum decomposition.
Definition: regularity_threesum.c:211
struct DecompositionQueue DecompositionQueue
CMR_ERROR CMRregularityInitNestedMinorSequence(CMR *cmr, DecompositionTask *task, CMR_SUBMAT *wheelSubmatrix)
Initializes a sequence of nested minors with one minor, for a given wheelSubmatrix.
Definition: regularity_nested_minor_sequence.c:1049
CMR_ERROR CMRregularityCompleteDecomposition(CMR *cmr, CMR_MATROID_DEC *subtree, CMR_REGULAR_PARAMS *params, CMR_REGULAR_STATS *stats, double timeLimit)
Replaces the subtree of a matroid decomposition tree by a new one.
Definition: regularity.c:199
CMR_ERROR CMRregularitySearchOneSum(CMR *cmr, DecompositionTask *task, DecompositionQueue *queue)
Performs a 1-sum decomposition of matrix and stores it in dec.
Definition: regularity_onesum.c:21
void CMRregularityQueueAdd(DecompositionQueue *queue, DecompositionTask *task)
Adds a task to a decomposition queue.
Definition: regularity.c:96
DecompositionTask * CMRregularityQueueRemove(DecompositionQueue *queue)
Removes a task from a decomposition queue.
Definition: regularity.c:86
CMR_ERROR CMRregularityQueueCreate(CMR *cmr, DecompositionQueue **pqueue)
Initializes a decomposition queue.
Definition: regularity.c:43
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.
Definition: regularity_nested_minor_sequence.c:627
CMR_ERROR CMRregularityQueueFree(CMR *cmr, DecompositionQueue **pqueue)
Frees the decomposition queue.
Definition: regularity.c:58
CMR_ERROR CMRregularityNestedMinorSequenceGraphicness(CMR *cmr, DecompositionTask *task, DecompositionQueue *queue)
Tests each minor of the sequence of nested 3-connected minors for graphicness.
Definition: regularity_graphic.c:1628
CMR_ERROR CMRregularityNestedMinorSequenceCographicness(CMR *cmr, DecompositionTask *task, DecompositionQueue *queue)
Tests each minor of the sequence of nested 3-connected minors for graphicness.
Definition: regularity_graphic.c:1717
CMR_ERROR CMRregularityTestCographicness(CMR *cmr, DecompositionTask *task, DecompositionQueue *queue)
Tests matrix for cographicness/conetwork and stores it in dec.
Definition: regularity_graphic.c:1883
CMR_ERROR CMRregularityTaskCreateRoot(CMR *cmr, CMR_MATROID_DEC *dec, DecompositionTask **ptask, CMR_REGULAR_PARAMS *params, CMR_REGULAR_STATS *stats, clock_t startClock, double timeLimit)
Creates a decomposition task for the root of the decomposition.
Definition: regularity.c:8
bool CMRregularityQueueEmpty(DecompositionQueue *queue)
Returns whether a queue is empty.
Definition: regularity.c:79
struct DecompositionTask DecompositionTask
CMR_ERROR CMRregularityTaskFree(CMR *cmr, DecompositionTask **ptask)
Frees a decomposition task.
Definition: regularity.c:30
CMR_ERROR CMRregularityDecomposeSeriesParallel(CMR *cmr, DecompositionTask *task, DecompositionQueue *queue)
Splits off series-parallel elements from the matrix of the decomposition node.
Definition: regularity_series_parallel.c:12
Row-wise representation of sparse char matrix.
Definition: matrix.h:204
Definition: env_internal.h:45
A minor of a matroid.
Definition: matroid.h:97
Statistics for regular matroid recognition algorithm.
Definition: regular.h:121
Definition: separation.h:52
Row and column indices for a submatrix.
Definition: matrix.h:28
Definition: regularity_internal.h:44
bool foundNongraphicness
Whether non-graphiness was detected for some node.
Definition: regularity_internal.h:47
DecompositionTask * head
Next task to be processed.
Definition: regularity_internal.h:45
bool foundIrregularity
Whether irregularity was detected for some node.
Definition: regularity_internal.h:46
bool foundNoncographicness
Whether non-cographiness was detected for some node.
Definition: regularity_internal.h:48
Definition: regularity_internal.h:11
struct DecompositionTask * next
Next task in queue.
Definition: regularity_internal.h:13
CMR_REGULAR_STATS * stats
Statistics for the computation (may be NULL).
Definition: regularity_internal.h:15
CMR_REGULAR_PARAMS * params
Parameters for the computation.
Definition: regularity_internal.h:14
clock_t startClock
Clock for the start time.
Definition: regularity_internal.h:16
CMR_MATROID_DEC * dec
Decomposition node that shall be processed.
Definition: regularity_internal.h:12
double timeLimit
Time limit to impose.
Definition: regularity_internal.h:17
Definition: matroid_internal.h:16