CMR  1.3.0
regular.h
Go to the documentation of this file.
1 #ifndef CMR_REGULAR_H
2 #define CMR_REGULAR_H
3 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
16 #include <cmr/env.h>
17 #include <cmr/matrix.h>
18 #include <cmr/matroid.h>
19 #include <cmr/graph.h>
20 #include <cmr/series_parallel.h>
21 #include <cmr/graphic.h>
22 #include <cmr/network.h>
23 
24 typedef enum
25 {
30 
37 typedef enum
38 {
51 
53 
54 typedef struct
55 {
63  int treeFlags;
104 
111 CMR_EXPORT
113  CMR_REGULAR_PARAMS* params
114 );
115 
120 typedef struct
121 {
122  uint32_t totalCount;
123  double totalTime;
132  uint32_t enumerationCount;
136 
137 
142 CMR_EXPORT
144  CMR_REGULAR_STATS* stats
145 );
146 
151 CMR_EXPORT
153  FILE* stream,
154  CMR_REGULAR_STATS* stats,
155  const char* prefix
156 );
157 
169 CMR_EXPORT
171  CMR* cmr,
172  CMR_CHRMAT* matrix,
173  bool *pisRegular,
174  CMR_MATROID_DEC** pdec,
175  CMR_MINOR** pminor,
176  CMR_REGULAR_PARAMS* params,
177  CMR_REGULAR_STATS* stats,
178  double timeLimit
179 );
180 
188 CMR_EXPORT
190  CMR* cmr,
191  CMR_MATROID_DEC* dec,
192  CMR_REGULAR_PARAMS* params,
193  CMR_REGULAR_STATS* stats,
194  double timeLimit
195 );
196 
197 #ifdef __cplusplus
198 }
199 #endif
200 
201 #endif /* CMR_REGULAR_H */
202 
Basic functionality of the software library.
CMR_ERROR
Type for return codes of library functions.
Definition: env.h:32
Functionality for graphs.
Computation and recognition of graphic matrices and cographic matrices.
Functionality for sparse matrices.
Functionality for matroids.
Computation and recognition of network matrices and conetwork matrices.
CMR_EXPORT CMR_ERROR CMRregularParamsInit(CMR_REGULAR_PARAMS *params)
Initializes the default parameters for regularity testing.
Definition: regular.c:13
CMR_EXPORT 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.
Definition: regular.c:114
CMR_REGULAR_TREE_FLAGS
Flags that control termination of the regular matroid decomposition algorithm.
Definition: regular.h:38
@ CMR_REGULAR_TREE_FLAGS_DEFAULT
Definition: regular.h:50
@ CMR_REGULAR_TREE_FLAGS_STOP_NONGRAPHIC_NONCOGRAPHIC
Definition: regular.h:47
@ CMR_REGULAR_TREE_FLAGS_STOP_IRREGULAR
Definition: regular.h:41
@ CMR_REGULAR_TREE_FLAGS_RECURSE
Definition: regular.h:39
@ CMR_REGULAR_TREE_FLAGS_STOP_NONGRAPHIC
Definition: regular.h:43
@ CMR_REGULAR_TREE_FLAGS_STOP_NONCOGRAPHIC
Definition: regular.h:45
CMR_EXPORT CMR_ERROR CMRregularStatsPrint(FILE *stream, CMR_REGULAR_STATS *stats, const char *prefix)
Prints statistics for regularity test computations.
Definition: regular.c:51
CMR_EXPORT 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.
Definition: regular.c:86
CMR_EXPORT CMR_ERROR CMRregularStatsInit(CMR_REGULAR_STATS *stats)
Initializes all statistics for regularity test computations.
Definition: regular.c:30
CMR_DEC_CONSTRUCT
Definition: regular.h:25
@ CMR_DEC_CONSTRUCT_NONE
Definition: regular.h:26
@ CMR_DEC_CONSTRUCT_LEAVES
Definition: regular.h:27
@ CMR_DEC_CONSTRUCT_ALL
Definition: regular.h:28
Recognition of series-parallel matrices.
Statistics for Camion-signing algorithm.
Definition: camion.h:26
Row-wise representation of sparse char matrix.
Definition: matrix.h:204
Definition: env_internal.h:45
Statistics for graphicness test.
Definition: graphic.h:34
A minor of a matroid.
Definition: matroid.h:97
Statistics for recognition algorithm for network matrices.
Definition: network.h:36
Definition: regular.h:55
bool seriesParallel
Whether to allow series-parallel operations in the decomposition tree; default: true.
Definition: regular.h:58
CMR_DEC_CONSTRUCT graphs
Which (co)graphs to construct; default: CMR_DEC_CONSTRUCT_NONE.
Definition: regular.h:101
bool planarityCheck
Whether minors identified as graphic should still be checked for cographicness; default: false.
Definition: regular.h:60
bool threeSumPivotChildren
Whether pivots for 3-sums shall be applied such that the matrix contains both child matrices as subma...
Definition: regular.h:67
int treeFlags
Flags controlling the decomposition algorithm. See
Definition: regular.h:63
int threeSumStrategy
Whether to perform pivots to change the rank distribution, and how to construct the children.
Definition: regular.h:70
bool directGraphicness
Whether to use fast graphicness routines; default: true.
Definition: regular.h:56
Statistics for regular matroid recognition algorithm.
Definition: regular.h:121
uint32_t enumerationCount
Definition: regular.h:132
CMR_GRAPHIC_STATISTICS graphic
Definition: regular.h:125
CMR_CAMION_STATISTICS camion
Definition: regular.h:127
CMR_SP_STATISTICS seriesParallel
Definition: regular.h:124
CMR_NETWORK_STATISTICS network
Definition: regular.h:126
double enumerationTime
Definition: regular.h:133
uint32_t totalCount
Definition: regular.h:122
double totalTime
Definition: regular.h:123
uint32_t enumerationCandidatesCount
Definition: regular.h:134
uint32_t sequenceGraphicCount
Definition: regular.h:130
uint32_t sequenceExtensionCount
Definition: regular.h:128
double sequenceGraphicTime
Definition: regular.h:131
double sequenceExtensionTime
Definition: regular.h:129
Statistics for series-parallel recognition algorithm.
Definition: series_parallel.h:25
Definition: matroid_internal.h:16