ViennaCL - The Vienna Computing Library
1.5.1
|
Sparse matrix class using the ELLPACK format for storing the nonzeros. More...
#include <ell_matrix.hpp>
Public Types | |
typedef viennacl::backend::mem_handle | handle_type |
typedef scalar< typename viennacl::tools::CHECK_SCALAR_TEMPLATE_ARGUMENT < SCALARTYPE >::ResultType > | value_type |
typedef vcl_size_t | size_type |
Public Member Functions | |
ell_matrix () | |
ell_matrix (viennacl::context ctx) | |
vcl_size_t | internal_size1 () const |
vcl_size_t | internal_size2 () const |
vcl_size_t | size1 () const |
vcl_size_t | size2 () const |
vcl_size_t | internal_maxnnz () const |
vcl_size_t | maxnnz () const |
vcl_size_t | nnz () const |
vcl_size_t | internal_nnz () const |
handle_type & | handle () |
const handle_type & | handle () const |
handle_type & | handle2 () |
const handle_type & | handle2 () const |
Friends | |
template<typename CPU_MATRIX , typename T , unsigned int ALIGN> | |
void | copy (const CPU_MATRIX &cpu_matrix, ell_matrix< T, ALIGN > &gpu_matrix) |
Sparse matrix class using the ELLPACK format for storing the nonzeros.
This format works best for matrices where the number of nonzeros per row is mostly the same. Finite element and finite difference methods on nicely shaped domains often result in such a nonzero pattern. For a matrix
(1 2 0 0 0) (2 3 4 0 0) (0 5 6 0 7) (0 0 8 9 0)
the entries are layed out in chunks of size 3 as (1 2 5 8; 2 3 6 9; 0 4 7 0) Note that this is a 'transposed' representation in order to maximize coalesced memory access.
typedef vcl_size_t size_type |
typedef scalar<typename viennacl::tools::CHECK_SCALAR_TEMPLATE_ARGUMENT<SCALARTYPE>::ResultType> value_type |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
friend |