CMR  1.3.0
Typedefs | Enumerations | Functions
dec.h File Reference

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_CHRMATCMRdecGetMatrix (CMR_DEC *dec)
 Returns the matrix of the decomposition node (or NULL if it is not stored). More...
 
CMR_EXPORT CMR_CHRMATCMRdecGetTranspose (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_DECCMRdecChild (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_ELEMENTCMRdecRowElements (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_ELEMENTCMRdecColumnElements (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_GRAPHCMRdecGraph (CMR_DEC *dec)
 Returns the graph (if available). More...
 
CMR_EXPORT CMR_GRAPH_EDGECMRdecGraphForest (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_EDGECMRdecGraphCoforest (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_GRAPHCMRdecCograph (CMR_DEC *dec)
 Returns the cograph (if available). More...
 
CMR_EXPORT CMR_GRAPH_EDGECMRdecCographForest (CMR_DEC *dec)
 Returns the forest of the cograph (if available). More...
 
CMR_EXPORT CMR_GRAPH_EDGECMRdecCographCoforest (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...
 

Detailed Description

Data structures for a decomposition tree for a matrix.

Author
Matthias Walter