144 bool* plowerLeftHasNonzeros,
146 bool* pupperRightHasNonzeros
157 int* prepresentationMatrix
Functionality for the row and column elements of a matrix.
int CMR_ELEMENT
Definition: element.h:20
Basic functionality of the software library.
CMR_ERROR
Type for return codes of library functions.
Definition: env.h:31
Functionality for graphs.
int CMR_GRAPH_EDGE
Reference to an edge of CMR_GRAPH.
Definition: graph.h:31
CMR_EXPORT size_t * CMRdecColumnsParent(CMR_DEC *dec)
Returns the mapping of columns to columns of parent.
Definition: dec.c:206
CMR_EXPORT CMR_GRAPH_EDGE * CMRdecCographCoforest(CMR_DEC *dec)
Returns the coforest of the cograph (if available).
Definition: dec.c:1278
CMR_EXPORT CMR_ERROR CMRdecFree(CMR *cmr, CMR_DEC **pdec)
Definition: dec.c:53
CMR_EXPORT size_t CMRdecNumChildren(CMR_DEC *dec)
Returns the number of children of the decomposition node.
Definition: dec.c:38
CMR_EXPORT size_t CMRdecGraphSizeCoforest(CMR_DEC *dec)
Returns the number of edges of the graph's coforest (if available).
Definition: dec.c:1243
CMR_DEC_TYPE
Definition: dec.h:34
CMR_EXPORT bool CMRdecIsGraphicLeaf(CMR_DEC *dec)
Returns true if and only if dec is a graphic leaf node.
Definition: dec.c:119
CMR_EXPORT CMR_GRAPH_EDGE * CMRdecCographForest(CMR_DEC *dec)
Returns the forest of the cograph (if available).
Definition: dec.c:1271
CMR_EXPORT CMR_GRAPH_EDGE * CMRdecGraphCoforest(CMR_DEC *dec)
Returns the coforest of the graph (if available).
Definition: dec.c:1236
CMR_EXPORT bool CMRdecIsRegular(CMR_DEC *dec)
Returns true if and only if dec is regular.
Definition: dec.c:164
CMR_EXPORT bool CMRdecIsUnknown(CMR_DEC *dec)
Returns true if and only if dec has yet unknown type.
Definition: dec.c:178
CMR_EXPORT size_t CMRdecNumColumns(CMR_DEC *dec)
Returns the number of columns.
Definition: dec.c:199
CMR_EXPORT CMR_ELEMENT * CMRdecRowElements(CMR_DEC *dec)
Returns the row elements.
CMR_EXPORT bool CMRdecIsGraphic(CMR_DEC *dec)
Returns true if and only if dec is graphic.
Definition: dec.c:150
CMR_EXPORT bool * CMRdecCographArcsReversed(CMR_DEC *dec)
Returns an array that indicates for the cograph's edges whether they must be reversed (if available).
Definition: dec.c:1285
CMR_EXPORT size_t CMRdecNumRows(CMR_DEC *dec)
Returns the number of rows.
Definition: dec.c:185
CMR_EXPORT CMR_DEC * CMRdecChild(CMR_DEC *dec, size_t childIndex)
Definition: dec.c:45
CMR_EXPORT bool * CMRdecGraphArcsReversed(CMR_DEC *dec)
Returns an array that indicates for the graph's edges whether they must be reversed (if available).
Definition: dec.c:1257
CMR_EXPORT bool CMRdecHasTranspose(CMR_DEC *dec)
Returns true iff the transposed matrix of the decomposition node is stored.
Definition: dec.c:17
CMR_EXPORT bool CMRdecIsSeriesParallelReduction(CMR_DEC *dec)
Returns true if and only if dec represents a series-parallel reduction.
Definition: dec.c:171
CMR_EXPORT bool CMRdecIsCographic(CMR_DEC *dec)
Returns true if and only if dec is cographic.
Definition: dec.c:157
CMR_EXPORT size_t CMRdecGraphSizeForest(CMR_DEC *dec)
Returns the number of edges of the graph's forest (if available).
Definition: dec.c:1222
CMR_EXPORT CMR_ERROR CMRdecPrint(CMR *cmr, CMR_DEC *dec, FILE *stream, size_t indent, bool printMatrices, bool printGraphs, bool printReductions)
Prints the decomposition dec to stream.
Definition: dec.c:213
CMR_DEC_FLAGS
Definition: dec.h:55
CMR_EXPORT bool CMRdecHasMatrix(CMR_DEC *dec)
Returns true iff the matrix of the decomposition node is stored.
Definition: dec.c:10
CMR_EXPORT CMR_GRAPH_EDGE * CMRdecGraphForest(CMR_DEC *dec)
Returns the forest of the graph (if available).
Definition: dec.c:1215
CMR_EXPORT char * CMRdecConsistency(CMR_DEC *dec, bool recurse)
Checks a decomposition for consistency.
Definition: dec.c:1180
CMR_EXPORT int CMRdecIsSum(CMR_DEC *dec, bool *plowerLeftHasNonzeros, bool *pupperRightHasNonzeros)
Returns k if dec is a k-sum node and 0 otherwise.
Definition: dec.c:91
CMR_EXPORT size_t * CMRdecRowsParent(CMR_DEC *dec)
Returns the mapping of rows to rows of parent.
Definition: dec.c:192
CMR_EXPORT CMR_GRAPH * CMRdecGraph(CMR_DEC *dec)
Returns the graph (if available).
Definition: dec.c:1208
CMR_EXPORT CMR_ELEMENT * CMRdecColumnElements(CMR_DEC *dec)
Returns the column elements.
CMR_EXPORT CMR_CHRMAT * CMRdecGetMatrix(CMR_DEC *dec)
Returns the matrix of the decomposition node (or NULL if it is not stored).
Definition: dec.c:24
CMR_EXPORT CMR_GRAPH * CMRdecCograph(CMR_DEC *dec)
Returns the cograph (if available).
Definition: dec.c:1264
CMR_EXPORT bool CMRdecIsCographicLeaf(CMR_DEC *dec)
Returns true if and only if dec is a cographic leaf node.
Definition: dec.c:126
CMR_EXPORT CMR_DEC_TYPE CMRdecIsSpecialLeaf(CMR_DEC *dec, int *prepresentationMatrix)
Returns the corresponding flag if dec is a special matrix node and 0 otherwise.
Definition: dec.c:133
CMR_EXPORT CMR_CHRMAT * CMRdecGetTranspose(CMR_DEC *dec)
Returns the transposed matrix of the decomposition node (or NULL if it is not stored).
Definition: dec.c:31
@ CMR_DEC_UNKNOWN
Definition: dec.h:36
@ CMR_DEC_GRAPHIC
Definition: dec.h:40
@ CMR_DEC_SPECIAL_FANO_DUAL
Definition: dec.h:47
@ CMR_DEC_ONE_SUM
Definition: dec.h:37
@ CMR_DEC_THREE_SUM
Definition: dec.h:39
@ CMR_DEC_IRREGULAR
Definition: dec.h:35
@ CMR_DEC_SPECIAL_FANO
Definition: dec.h:46
@ CMR_DEC_SPECIAL_K_5
Definition: dec.h:48
@ CMR_DEC_COGRAPHIC
Definition: dec.h:41
@ CMR_DEC_SPECIAL_K_5_DUAL
Definition: dec.h:49
@ CMR_DEC_SPECIAL_R10
Definition: dec.h:45
@ CMR_DEC_SPECIAL_K_3_3
Definition: dec.h:50
@ CMR_DEC_SERIES_PARALLEL
Definition: dec.h:43
@ CMR_DEC_TWO_SUM
Definition: dec.h:38
@ CMR_DEC_PLANAR
Definition: dec.h:42
@ CMR_DEC_SPECIAL_K_3_3_DUAL
Definition: dec.h:51
@ CMR_DEC_HAS_UPPER_RIGHT_NONZEROS
Definition: dec.h:61
@ CMR_DEC_HAS_LOWER_LEFT_NONZEROS
Definition: dec.h:60
@ CMR_DEC_MASK_REPRESENTATION
Definition: dec.h:56
@ CMR_DEC_IS_COGRAPHIC
Definition: dec.h:58
@ CMR_DEC_IS_GRAPHIC
Definition: dec.h:57
@ CMR_DEC_IS_REGULAR
Definition: dec.h:59
Functionality for sparse matrices.
Row-wise representation of sparse char matrix.
Definition: matrix.h:204
Definition: env_internal.h:45
Definition: dec_internal.h:9