ViennaCL - The Vienna Computing Library  1.5.0
Public Types | Public Member Functions | Friends
ell_matrix< SCALARTYPE, ALIGNMENT > Class Template Reference

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_typehandle ()
const handle_typehandle () const
handle_typehandle2 ()
const handle_typehandle2 () const

Friends

template<typename CPU_MATRIX , typename T , unsigned int ALIGN>
void copy (const CPU_MATRIX &cpu_matrix, ell_matrix< T, ALIGN > &gpu_matrix)

Detailed Description

template<typename SCALARTYPE, unsigned int ALIGNMENT>
class viennacl::ell_matrix< SCALARTYPE, ALIGNMENT >

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.


Member Typedef Documentation

typedef scalar<typename viennacl::tools::CHECK_SCALAR_TEMPLATE_ARGUMENT<SCALARTYPE>::ResultType> value_type

Constructor & Destructor Documentation

ell_matrix ( ) [inline]
ell_matrix ( viennacl::context  ctx) [inline]

Member Function Documentation

handle_type& handle ( ) [inline]
const handle_type& handle ( ) const [inline]
handle_type& handle2 ( ) [inline]
const handle_type& handle2 ( ) const [inline]
vcl_size_t internal_maxnnz ( ) const [inline]
vcl_size_t internal_nnz ( ) const [inline]
vcl_size_t internal_size1 ( ) const [inline]
vcl_size_t internal_size2 ( ) const [inline]
vcl_size_t maxnnz ( ) const [inline]
vcl_size_t nnz ( ) const [inline]
vcl_size_t size1 ( ) const [inline]
vcl_size_t size2 ( ) const [inline]

Friends And Related Function Documentation

void copy ( const CPU_MATRIX &  cpu_matrix,
ell_matrix< T, ALIGN > &  gpu_matrix 
) [friend]

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