ViennaCL - The Vienna Computing Library  1.7.1
Free open-source GPU-accelerated linear algebra and solver library.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
viennacl::sliced_ell_matrix< ScalarT, IndexT > Class Template Reference

Sparse matrix class using the sliced ELLPACK with parameters C, $ \sigma $. More...

#include <forwards.h>

Public Types

typedef
viennacl::backend::mem_handle 
handle_type
 
typedef scalar< typename
viennacl::tools::CHECK_SCALAR_TEMPLATE_ARGUMENT
< ScalarT >::ResultType > 
value_type
 
typedef vcl_size_t size_type
 

Public Member Functions

 sliced_ell_matrix ()
 
 sliced_ell_matrix (size_type num_rows, size_type num_cols, size_type num_rows_per_block_=0)
 Standard constructor for setting the row and column sizes as well as the block size. More...
 
 sliced_ell_matrix (viennacl::context ctx)
 
void clear ()
 Resets all entries in the matrix back to zero without changing the matrix size. Resets the sparsity pattern. More...
 
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 rows_per_block () const
 
handle_typehandle1 ()
 
const handle_typehandle1 () const
 
handle_typehandle2 ()
 
const handle_typehandle2 () const
 
handle_typehandle3 ()
 
const handle_typehandle3 () const
 
handle_typehandle ()
 
const handle_typehandle () const
 

Friends

template<typename CPUMatrixT , typename ScalarT2 , typename IndexT2 >
void copy (CPUMatrixT const &cpu_matrix, sliced_ell_matrix< ScalarT2, IndexT2 > &gpu_matrix)
 

Detailed Description

template<typename ScalarT, typename IndexT = unsigned int>
class viennacl::sliced_ell_matrix< ScalarT, IndexT >

Sparse matrix class using the sliced ELLPACK with parameters C, $ \sigma $.

Based on the SELL-C-sigma format provided by Kreutzer et al., 2014 Can be seen as a block-wise ELLPACK format, where C rows are accumulated into the same block for which a column-wise storage is used. Enables fully-coalesced reads from global memory.

Note: Currently $ \sigma $ is fixed to 1, since the sorting of rows

Definition at line 403 of file forwards.h.

Member Typedef Documentation

template<typename ScalarT, typename IndexT = unsigned int>
typedef viennacl::backend::mem_handle viennacl::sliced_ell_matrix< ScalarT, IndexT >::handle_type

Definition at line 49 of file sliced_ell_matrix.hpp.

template<typename ScalarT, typename IndexT = unsigned int>
typedef vcl_size_t viennacl::sliced_ell_matrix< ScalarT, IndexT >::size_type

Definition at line 51 of file sliced_ell_matrix.hpp.

template<typename ScalarT, typename IndexT = unsigned int>
typedef scalar<typename viennacl::tools::CHECK_SCALAR_TEMPLATE_ARGUMENT<ScalarT>::ResultType> viennacl::sliced_ell_matrix< ScalarT, IndexT >::value_type

Definition at line 50 of file sliced_ell_matrix.hpp.

Constructor & Destructor Documentation

template<typename ScalarT, typename IndexT = unsigned int>
viennacl::sliced_ell_matrix< ScalarT, IndexT >::sliced_ell_matrix ( )
inlineexplicit

Definition at line 53 of file sliced_ell_matrix.hpp.

template<typename ScalarT, typename IndexT = unsigned int>
viennacl::sliced_ell_matrix< ScalarT, IndexT >::sliced_ell_matrix ( size_type  num_rows,
size_type  num_cols,
size_type  num_rows_per_block_ = 0 
)
inline

Standard constructor for setting the row and column sizes as well as the block size.

Supported values for num_rows_per_block_ are 32, 64, 128, 256. Other values may work, but are unlikely to yield good performance.

Definition at line 59 of file sliced_ell_matrix.hpp.

template<typename ScalarT, typename IndexT = unsigned int>
viennacl::sliced_ell_matrix< ScalarT, IndexT >::sliced_ell_matrix ( viennacl::context  ctx)
inlineexplicit

Definition at line 66 of file sliced_ell_matrix.hpp.

Member Function Documentation

template<typename ScalarT, typename IndexT = unsigned int>
void viennacl::sliced_ell_matrix< ScalarT, IndexT >::clear ( )
inline

Resets all entries in the matrix back to zero without changing the matrix size. Resets the sparsity pattern.

Definition at line 85 of file sliced_ell_matrix.hpp.

template<typename ScalarT, typename IndexT = unsigned int>
handle_type& viennacl::sliced_ell_matrix< ScalarT, IndexT >::handle ( )
inline

Definition at line 118 of file sliced_ell_matrix.hpp.

template<typename ScalarT, typename IndexT = unsigned int>
const handle_type& viennacl::sliced_ell_matrix< ScalarT, IndexT >::handle ( ) const
inline

Definition at line 119 of file sliced_ell_matrix.hpp.

template<typename ScalarT, typename IndexT = unsigned int>
handle_type& viennacl::sliced_ell_matrix< ScalarT, IndexT >::handle1 ( )
inline

Definition at line 109 of file sliced_ell_matrix.hpp.

template<typename ScalarT, typename IndexT = unsigned int>
const handle_type& viennacl::sliced_ell_matrix< ScalarT, IndexT >::handle1 ( ) const
inline

Definition at line 110 of file sliced_ell_matrix.hpp.

template<typename ScalarT, typename IndexT = unsigned int>
handle_type& viennacl::sliced_ell_matrix< ScalarT, IndexT >::handle2 ( )
inline

Definition at line 112 of file sliced_ell_matrix.hpp.

template<typename ScalarT, typename IndexT = unsigned int>
const handle_type& viennacl::sliced_ell_matrix< ScalarT, IndexT >::handle2 ( ) const
inline

Definition at line 113 of file sliced_ell_matrix.hpp.

template<typename ScalarT, typename IndexT = unsigned int>
handle_type& viennacl::sliced_ell_matrix< ScalarT, IndexT >::handle3 ( )
inline

Definition at line 115 of file sliced_ell_matrix.hpp.

template<typename ScalarT, typename IndexT = unsigned int>
const handle_type& viennacl::sliced_ell_matrix< ScalarT, IndexT >::handle3 ( ) const
inline

Definition at line 116 of file sliced_ell_matrix.hpp.

template<typename ScalarT, typename IndexT = unsigned int>
vcl_size_t viennacl::sliced_ell_matrix< ScalarT, IndexT >::internal_size1 ( ) const
inline

Definition at line 98 of file sliced_ell_matrix.hpp.

template<typename ScalarT, typename IndexT = unsigned int>
vcl_size_t viennacl::sliced_ell_matrix< ScalarT, IndexT >::internal_size2 ( ) const
inline

Definition at line 99 of file sliced_ell_matrix.hpp.

template<typename ScalarT, typename IndexT = unsigned int>
vcl_size_t viennacl::sliced_ell_matrix< ScalarT, IndexT >::rows_per_block ( ) const
inline

Definition at line 104 of file sliced_ell_matrix.hpp.

template<typename ScalarT, typename IndexT = unsigned int>
vcl_size_t viennacl::sliced_ell_matrix< ScalarT, IndexT >::size1 ( ) const
inline

Definition at line 101 of file sliced_ell_matrix.hpp.

template<typename ScalarT, typename IndexT = unsigned int>
vcl_size_t viennacl::sliced_ell_matrix< ScalarT, IndexT >::size2 ( ) const
inline

Definition at line 102 of file sliced_ell_matrix.hpp.

Friends And Related Function Documentation

template<typename ScalarT, typename IndexT = unsigned int>
template<typename CPUMatrixT , typename ScalarT2 , typename IndexT2 >
void copy ( CPUMatrixT const &  cpu_matrix,
sliced_ell_matrix< ScalarT2, IndexT2 > &  gpu_matrix 
)
friend

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