CMR  1.3.0
block_decomposition.h
Go to the documentation of this file.
1 #ifndef CMR_BLOCK_DECOMPOSITION_H
2 #define CMR_BLOCK_DECOMPOSITION_H
3 
4 #include <cmr/env.h>
5 #include "matrix_internal.h"
6 
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 
15 typedef struct
16 {
19  size_t* rowsToOriginal;
21 } CMR_BLOCK;
22 
31  CMR* cmr,
32  CMR_MATRIX* matrix,
33  size_t matrixType,
34  size_t targetType,
35  size_t* pnumBlocks,
36  CMR_BLOCK** pblocks,
37  size_t* rowsToBlock,
38  size_t* columnsToBlock,
39  size_t* rowsToBlockRows,
40  size_t* columnsToBlockColumns
41 );
42 
43 #ifdef __cplusplus
44 }
45 #endif
46 
47 #endif /* CMR_BLOCK_DECOMPOSITION_H */
CMR_ERROR CMRdecomposeBlocks(CMR *cmr, CMR_MATRIX *matrix, size_t matrixType, size_t targetType, size_t *pnumBlocks, CMR_BLOCK **pblocks, size_t *rowsToBlock, size_t *columnsToBlock, size_t *rowsToBlockRows, size_t *columnsToBlockColumns)
Decomposes int matrix into 1-connected submatrices.
Definition: block_decomposition.c:21
Basic functionality of the software library.
CMR_ERROR
Type for return codes of library functions.
Definition: env.h:32
Information on one block of a block decomposition of a matrix.
Definition: block_decomposition.h:16
size_t * columnsToOriginal
Maps component columns to original matrix columns.
Definition: block_decomposition.h:20
size_t * rowsToOriginal
Maps component rows to original matrix rows.
Definition: block_decomposition.h:19
CMR_MATRIX * matrix
Sparse matrix.
Definition: block_decomposition.h:17
CMR_MATRIX * transpose
Sparse transposed matrix.
Definition: block_decomposition.h:18
Definition: env_internal.h:45
Abstract struct for row-wise representations of sparse matrices.
Definition: matrix_internal.h:15