1 #ifndef CMR_SERIES_PARALLEL_H
2 #define CMR_SERIES_PARALLEL_H
112 return reduction.
mate == 0;
169 bool* pisSeriesParallel,
172 size_t* pnumReductions,
197 bool* pisSeriesParallel,
200 size_t* pnumReductions,
229 bool* pisSeriesParallel,
232 size_t maxNumReductions,
233 size_t* pnumReductions,
269 bool* pisSeriesParallel,
272 size_t maxNumReductions,
273 size_t* pnumReductions,
Functionality for the row and column elements of a matrix.
int CMR_ELEMENT
Definition: element.h:20
CMR_ERROR
Type for return codes of library functions.
Definition: env.h:32
Functionality for sparse matrices.
Data structures for k-separations and k-sums.
CMR_EXPORT CMR_ERROR CMRspStatsInit(CMR_SP_STATISTICS *stats)
Initializes all statistics for series-parallel computations.
Definition: series_parallel.c:37
CMR_EXPORT CMR_ERROR CMRspTestBinary(CMR *cmr, CMR_CHRMAT *matrix, bool *pisSeriesParallel, CMR_SP_REDUCTION *reductions, size_t *pnumReductions, CMR_SUBMAT **preducedSubmatrix, CMR_SUBMAT **pviolatorSubmatrix, CMR_SP_STATISTICS *stats, double timeLimit)
Finds all series-parallel reductions for the binary matrix .
Definition: series_parallel.c:1658
static bool CMRspIsCopy(CMR_SP_REDUCTION reduction)
Returns true if the series-parallel reduction removes a vector that is a copy of another vector.
Definition: series_parallel.h:132
static bool CMRspIsColumn(CMR_SP_REDUCTION reduction)
Returns true if the series-parallel reduction removes a column, i.e., is parallel.
Definition: series_parallel.h:96
CMR_EXPORT CMR_ERROR CMRspDecomposeTernary(CMR *cmr, CMR_CHRMAT *matrix, bool *pisSeriesParallel, CMR_SP_REDUCTION *reductions, size_t maxNumReductions, size_t *pnumReductions, CMR_SUBMAT **preducedSubmatrix, CMR_SUBMAT **pviolatorSubmatrix, CMR_SEPA **pseparation, CMR_SP_STATISTICS *stats, double timeLimit)
Finds all series-parallel reductions for the ternary matrix .
Definition: series_parallel.c:1969
CMR_EXPORT CMR_ERROR CMRspTestTernary(CMR *cmr, CMR_CHRMAT *matrix, bool *pisSeriesParallel, CMR_SP_REDUCTION *reductions, size_t *pnumReductions, CMR_SUBMAT **preducedSubmatrix, CMR_SUBMAT **pviolatorSubmatrix, CMR_SP_STATISTICS *stats, double timeLimit)
Finds all series-parallel reductions for the ternary matrix .
Definition: series_parallel.c:1942
static bool CMRspIsZero(CMR_SP_REDUCTION reduction)
Returns true if the series-parallel reduction removes a zero vector.
Definition: series_parallel.h:108
CMR_EXPORT char * CMRspReductionString(CMR_SP_REDUCTION reduction, char *buffer)
Definition: series_parallel.c:73
static bool CMRspIsRow(CMR_SP_REDUCTION reduction)
Returns true if the series-parallel reduction removes a row, i.e., is series.
Definition: series_parallel.h:84
static bool CMRspIsUnit(CMR_SP_REDUCTION reduction)
Returns true if the series-parallel reduction removes a unit vector.
Definition: series_parallel.h:120
static bool CMRspIsValid(CMR_SP_REDUCTION reduction)
Returns true if the series-parallel reduction is valid.
Definition: series_parallel.h:144
CMR_EXPORT CMR_ERROR CMRspDecomposeBinary(CMR *cmr, CMR_CHRMAT *matrix, bool *pisSeriesParallel, CMR_SP_REDUCTION *reductions, size_t maxNumReductions, size_t *pnumReductions, CMR_SUBMAT **preducedSubmatrix, CMR_SUBMAT **pviolatorSubmatrix, CMR_SEPA **pseparation, CMR_SP_STATISTICS *stats, double timeLimit)
Finds all series-parallel reductions for the binary matrix .
Definition: series_parallel.c:1686
CMR_EXPORT CMR_ERROR CMRspStatsPrint(FILE *stream, CMR_SP_STATISTICS *stats, const char *prefix)
Prints statistics for series-parallel computations.
Definition: series_parallel.c:53
Row-wise representation of sparse char matrix.
Definition: matrix.h:220
Definition: env_internal.h:45
Definition: separation.h:52
Represents a series-parallel reduction.
Definition: series_parallel.h:61
CMR_ELEMENT mate
Definition: series_parallel.h:63
CMR_ELEMENT element
Definition: series_parallel.h:62
Statistics for series-parallel recognition algorithm.
Definition: series_parallel.h:25
double wheelTime
Definition: series_parallel.h:31
double totalTime
Definition: series_parallel.h:27
uint32_t totalCount
Definition: series_parallel.h:26
uint32_t reduceCount
Definition: series_parallel.h:28
uint32_t wheelCount
Definition: series_parallel.h:30
double reduceTime
Definition: series_parallel.h:29
uint32_t nonbinaryCount
Definition: series_parallel.h:32
double nonbinaryTime
Definition: series_parallel.h:33
Row and column indices for a submatrix.
Definition: matrix.h:28