![]() |
CMR
1.3.0
|
Data structures for a decomposition tree for a matrix. More...
#include <cmr/env.h>
#include <cmr/element.h>
#include <cmr/matrix.h>
#include <cmr/graph.h>
#include <stdio.h>
Go to the source code of this file.
Typedefs | |
typedef struct _CMR_DEC | CMR_DEC |
Enumerations | |
enum | CMR_DEC_TYPE { CMR_DEC_IRREGULAR = -1 , CMR_DEC_UNKNOWN = 0 , CMR_DEC_ONE_SUM = 1 , CMR_DEC_TWO_SUM = 2 , CMR_DEC_THREE_SUM = 3 , CMR_DEC_GRAPHIC = 4 , CMR_DEC_COGRAPHIC = 5 , CMR_DEC_PLANAR = 6 , CMR_DEC_SERIES_PARALLEL = 7 , CMR_DEC_SPECIAL_R10 = 16 , CMR_DEC_SPECIAL_FANO = 17 , CMR_DEC_SPECIAL_FANO_DUAL = 18 , CMR_DEC_SPECIAL_K_5 = 19 , CMR_DEC_SPECIAL_K_5_DUAL = 20 , CMR_DEC_SPECIAL_K_3_3 = 21 , CMR_DEC_SPECIAL_K_3_3_DUAL = 22 } |
enum | CMR_DEC_FLAGS { CMR_DEC_MASK_REPRESENTATION = 3 , CMR_DEC_IS_GRAPHIC = 4 , CMR_DEC_IS_COGRAPHIC = 8 , CMR_DEC_IS_REGULAR = 16 , CMR_DEC_HAS_LOWER_LEFT_NONZEROS = 32 , CMR_DEC_HAS_UPPER_RIGHT_NONZEROS = 64 } |
Functions | |
CMR_EXPORT CMR_ERROR | CMRdecFree (CMR *cmr, CMR_DEC **pdec) |
CMR_EXPORT bool | CMRdecHasMatrix (CMR_DEC *dec) |
Returns true iff the matrix of the decomposition node is stored. More... | |
CMR_EXPORT bool | CMRdecHasTranspose (CMR_DEC *dec) |
Returns true iff the transposed matrix of the decomposition node is stored. More... | |
CMR_EXPORT CMR_CHRMAT * | CMRdecGetMatrix (CMR_DEC *dec) |
Returns the matrix of the decomposition node (or NULL if it is not stored). More... | |
CMR_EXPORT CMR_CHRMAT * | CMRdecGetTranspose (CMR_DEC *dec) |
Returns the transposed matrix of the decomposition node (or NULL if it is not stored). More... | |
CMR_EXPORT size_t | CMRdecNumChildren (CMR_DEC *dec) |
Returns the number of children of the decomposition node. More... | |
CMR_EXPORT CMR_DEC * | CMRdecChild (CMR_DEC *dec, size_t childIndex) |
CMR_EXPORT int | CMRdecIsSum (CMR_DEC *dec, bool *plowerLeftHasNonzeros, bool *pupperRightHasNonzeros) |
Returns k if dec is a k-sum node and 0 otherwise. More... | |
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. More... | |
CMR_EXPORT bool | CMRdecIsGraphicLeaf (CMR_DEC *dec) |
Returns true if and only if dec is a graphic leaf node. More... | |
CMR_EXPORT bool | CMRdecIsCographicLeaf (CMR_DEC *dec) |
Returns true if and only if dec is a cographic leaf node. More... | |
CMR_EXPORT bool | CMRdecIsGraphic (CMR_DEC *dec) |
Returns true if and only if dec is graphic. More... | |
CMR_EXPORT bool | CMRdecIsCographic (CMR_DEC *dec) |
Returns true if and only if dec is cographic. More... | |
CMR_EXPORT bool | CMRdecIsRegular (CMR_DEC *dec) |
Returns true if and only if dec is regular. More... | |
CMR_EXPORT bool | CMRdecIsSeriesParallelReduction (CMR_DEC *dec) |
Returns true if and only if dec represents a series-parallel reduction. More... | |
CMR_EXPORT bool | CMRdecIsUnknown (CMR_DEC *dec) |
Returns true if and only if dec has yet unknown type. More... | |
CMR_EXPORT size_t | CMRdecNumRows (CMR_DEC *dec) |
Returns the number of rows. More... | |
CMR_EXPORT CMR_ELEMENT * | CMRdecRowElements (CMR_DEC *dec) |
Returns the row elements. More... | |
CMR_EXPORT size_t * | CMRdecRowsParent (CMR_DEC *dec) |
Returns the mapping of rows to rows of parent. More... | |
CMR_EXPORT size_t | CMRdecNumColumns (CMR_DEC *dec) |
Returns the number of columns. More... | |
CMR_EXPORT CMR_ELEMENT * | CMRdecColumnElements (CMR_DEC *dec) |
Returns the column elements. More... | |
CMR_EXPORT size_t * | CMRdecColumnsParent (CMR_DEC *dec) |
Returns the mapping of columns to columns of parent. More... | |
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 . More... | |
CMR_EXPORT char * | CMRdecConsistency (CMR_DEC *dec, bool recurse) |
Checks a decomposition for consistency. More... | |
CMR_EXPORT CMR_GRAPH * | CMRdecGraph (CMR_DEC *dec) |
Returns the graph (if available). More... | |
CMR_EXPORT CMR_GRAPH_EDGE * | CMRdecGraphForest (CMR_DEC *dec) |
Returns the forest of the graph (if available). More... | |
CMR_EXPORT size_t | CMRdecGraphSizeForest (CMR_DEC *dec) |
Returns the number of edges of the graph's forest (if available). More... | |
CMR_EXPORT CMR_GRAPH_EDGE * | CMRdecGraphCoforest (CMR_DEC *dec) |
Returns the coforest of the graph (if available). More... | |
CMR_EXPORT size_t | CMRdecGraphSizeCoforest (CMR_DEC *dec) |
Returns the number of edges of the graph's coforest (if available). More... | |
CMR_EXPORT bool * | CMRdecGraphArcsReversed (CMR_DEC *dec) |
Returns an array that indicates for the graph's edges whether they must be reversed (if available). More... | |
CMR_EXPORT CMR_GRAPH * | CMRdecCograph (CMR_DEC *dec) |
Returns the cograph (if available). More... | |
CMR_EXPORT CMR_GRAPH_EDGE * | CMRdecCographForest (CMR_DEC *dec) |
Returns the forest of the cograph (if available). More... | |
CMR_EXPORT CMR_GRAPH_EDGE * | CMRdecCographCoforest (CMR_DEC *dec) |
Returns the coforest of the cograph (if available). More... | |
CMR_EXPORT bool * | CMRdecCographArcsReversed (CMR_DEC *dec) |
Returns an array that indicates for the cograph's edges whether they must be reversed (if available). More... | |
Data structures for a decomposition tree for a matrix.