HP MLIB User's Guide Vol. 2 7th Ed.

Chapter 11 Introduction to Distributed SuperLU 743
Distributed SuperLU defined data structures
typedef struct {
int_t nnz; /* number of nonzeros in the matrix */
void *nzval; /* pointer to array of nonzero values, packed by column */
int_t *rowind; /* pointer to array of row indices of the nonzeros */
int_t *colptr; /* pointer to array of beginning of columns in nzval[]
and rowind[] */
/* Note: Zero-based indexing is used; colptr[] has ncol+1 entries, the
last one pointing beyond the last column, so that colptr[ncol] = nnz.
*/
} NCformat;
/* NRformat_loc is data structure for distributed compressed row
format (for Stype==SLU_NR_loc).*/
typedef struct {
int_t nnz_loc; /* number of nonzeros in the local submatrix */
int_t m_loc; /* number of rows local to this processor */
int_t fst_row; /* global index of the first row */
void *nzval; /* pointer to array of nonzero values, packed by
row */
int_t *rowptr; /* pointer to array of beginning of rows in nzval[]
and colind[] */
int_t *colind; /* pointer to array of column indices of the
nonzeros */
/* Note:
Zero-based indexing is used;
rowptr[] has n_loc + 1 entries, the last one
pointing beyond the last row, so that
rowptr[n_loc] = nnz_loc.*/
} NRformat_loc;
typedef struct {
Stype_t Stype; /* Storage type: interprets the storage structure
pointed to by *Store. */
Dtype_t Dtype; /* Data type. */
Mtype_t Mtype; /* Matrix type: describes the mathematical property of
the matrix. */
int_t nrow; /* number of rows */
int_t ncol; /* number of columns */
void *Store; /* pointer to the actual storage of the matrix */
} SuperMatrix;
/***************************************************/
/* Definition of structure: ScalePermstruct_t */
/***************************************************/
typedef enum {NOEQUIL, ROW, COL, BOTH} DiagScale_t;
typedef struct {
DiagScale_t DiagScale;
double *R;
double *C;
int_t *perm_r;
int_t *perm_c;
} ScalePermstruct_t;