GHOST  1.1.2
General, Hybrid, and Optimized Sparse Toolkit
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Public Attributes | List of all members
ghost_sparsemat Struct Reference

A sparse matrix. More...

#include <sparsemat.h>

Collaboration diagram for ghost_sparsemat:
Collaboration graph
[legend]

Public Attributes

ghost_sparsemat_traits traits
 The matrix' traits. More...
 
ghost_sparsemat_traits splittraits [2]
 The local and remote part's traits. More...
 
ghost_sparsematlocalPart
 The local part of the matrix (if distributed). More...
 
ghost_sparsematremotePart
 The remote part (i.e., the part which has remote column indices) of the matrix (if distributed). More...
 
ghost_contextcontext
 The context of the matrix (if distributed). More...
 
char * name
 The matrix' name. More...
 
char * val
 The values. More...
 
ghost_lidxcol
 The column indices. More...
 
ghost_lidxchunkStart
 Pointer to start of each chunk. More...
 
ghost_lidxchunkMin
 Minimal row length in a chunk. More...
 
ghost_lidxchunkLen
 The length of each chunk. More...
 
ghost_lidxchunkLenPadded
 Needed if T>1. More...
 
ghost_lidxrowLen
 Length of each row. More...
 
ghost_lidxrowLen4
 Longest length of each quadruple of rows. More...
 
ghost_lidxrowLen2
 Longest length of each tuple of rows. More...
 
ghost_lidxrowLenPadded
 Needed if T>1. More...
 
char * cu_val
 The CUDA matrix. More...
 
ghost_lidxcu_col
 The column indices. More...
 
ghost_lidxcu_rowLen
 The length of each row. More...
 
ghost_lidxcu_rowLenPadded
 Needed if T>1. More...
 
ghost_lidxcu_chunkStart
 Pointer to start of each chunk. More...
 
ghost_lidxcu_chunkLen
 The length of each chunk. More...
 
size_t elSize
 Size (in bytes) of one matrix element. More...
 
ghost_gidxcol_orig
 The original column indices of the matrix. More...
 
ghost_lidx nEnts
 The number of rows. More...
 
double avgRowBand
 The average width of the rows wrt. the diagonal. More...
 
double avgAvgRowBand
 The average of the average width of the rows wrt. the diagonal. More...
 
double smartRowBand
 A smart value quantifying the matrix bandwidth. Currently the 90-percentile of the 90-percentile of all widths. More...
 
ghost_gidx maxRowLen
 The maximum row length. TODO: This sould be a ghost_lidx, right? More...
 
ghost_gidx nMaxRows
 The number of rows with length maxRowLen. More...
 
double variance
 Row length variance. More...
 
double deviation
 Row length standard deviation. More...
 
double cv
 Row length coefficient of variation. More...
 
ghost_gidxnzDist
 Array of length (2*nrows-1) with nzDist[i] = number nonzeros with distance i from diagonal. More...
 
ghost_lidx nchunks
 

Detailed Description

A sparse matrix.

The according functions act locally and are accessed via function pointers. The first argument of each member function always has to be a pointer to the vector itself.

Member Data Documentation

double ghost_sparsemat::avgAvgRowBand

The average of the average width of the rows wrt. the diagonal.

double ghost_sparsemat::avgRowBand

The average width of the rows wrt. the diagonal.

ghost_lidx* ghost_sparsemat::chunkLen

The length of each chunk.

ghost_lidx* ghost_sparsemat::chunkLenPadded

Needed if T>1.

ghost_lidx* ghost_sparsemat::chunkMin

Minimal row length in a chunk.

ghost_lidx* ghost_sparsemat::chunkStart

Pointer to start of each chunk.

ghost_lidx* ghost_sparsemat::col

The column indices.

ghost_gidx* ghost_sparsemat::col_orig

The original column indices of the matrix.

Once a matrix gets distributed, the column indices of the matrix are being compressed. That means, the local part of the matrix comes first and the remote part's column indices (compresed) thereafter. If the flag GHOST_SPARSEMAT_SAVE_ORIG_COLS is set, the original (un-compressed) column indices are stored in this variable. This is only necessary if, e.g., a distributed matrix should be written out to a file.

ghost_context* ghost_sparsemat::context

The context of the matrix (if distributed).

ghost_lidx* ghost_sparsemat::cu_chunkLen

The length of each chunk.

ghost_lidx* ghost_sparsemat::cu_chunkStart

Pointer to start of each chunk.

ghost_lidx* ghost_sparsemat::cu_col

The column indices.

ghost_lidx* ghost_sparsemat::cu_rowLen

The length of each row.

ghost_lidx* ghost_sparsemat::cu_rowLenPadded

Needed if T>1.

char* ghost_sparsemat::cu_val

The CUDA matrix.

The values.

double ghost_sparsemat::cv

Row length coefficient of variation.

double ghost_sparsemat::deviation

Row length standard deviation.

size_t ghost_sparsemat::elSize

Size (in bytes) of one matrix element.

ghost_sparsemat* ghost_sparsemat::localPart

The local part of the matrix (if distributed).

ghost_gidx ghost_sparsemat::maxRowLen

The maximum row length. TODO: This sould be a ghost_lidx, right?

char* ghost_sparsemat::name

The matrix' name.

ghost_lidx ghost_sparsemat::nchunks
ghost_lidx ghost_sparsemat::nEnts

The number of rows.

The padded number of rows.

In the SELL data format, the number of rows is padded to a multiple of C. The number of columns. The number of non-zero entries in the matrix. The number of stored entries in the matrix.

For CRS or SELL-1, this is equal to nnz.

ghost_gidx ghost_sparsemat::nMaxRows

The number of rows with length maxRowLen.

ghost_gidx* ghost_sparsemat::nzDist

Array of length (2*nrows-1) with nzDist[i] = number nonzeros with distance i from diagonal.

ghost_sparsemat* ghost_sparsemat::remotePart

The remote part (i.e., the part which has remote column indices) of the matrix (if distributed).

ghost_lidx* ghost_sparsemat::rowLen

Length of each row.

Especially useful in SELL-1 kernels.

ghost_lidx* ghost_sparsemat::rowLen2

Longest length of each tuple of rows.

ghost_lidx* ghost_sparsemat::rowLen4

Longest length of each quadruple of rows.

ghost_lidx* ghost_sparsemat::rowLenPadded

Needed if T>1.

double ghost_sparsemat::smartRowBand

A smart value quantifying the matrix bandwidth. Currently the 90-percentile of the 90-percentile of all widths.

ghost_sparsemat_traits ghost_sparsemat::splittraits[2]

The local and remote part's traits.

ghost_sparsemat_traits ghost_sparsemat::traits

The matrix' traits.

char* ghost_sparsemat::val

The values.

double ghost_sparsemat::variance

Row length variance.


The documentation for this struct was generated from the following file: