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

A Circulant matrix class. More...

#include <circulant_matrix.hpp>

Public Types

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

Public Member Functions

 circulant_matrix ()
 The default constructor. Does not allocate any memory.
 circulant_matrix (vcl_size_t rows, vcl_size_t cols)
 Creates the matrix with the given size.
void resize (vcl_size_t sz, bool preserve=true)
 Resizes the matrix. Existing entries can be preserved.
handle_type const & handle () const
 Returns the OpenCL handle.
viennacl::vector< SCALARTYPE,
ALIGNMENT > & 
elements ()
 Returns an internal viennacl::vector, which represents a circulant matrix elements.
viennacl::vector< SCALARTYPE,
ALIGNMENT > const & 
elements () const
vcl_size_t size1 () const
 Returns the number of rows of the matrix.
vcl_size_t size2 () const
 Returns the number of columns of the matrix.
vcl_size_t internal_size () const
 Returns the internal size of matrix representtion. Usually required for launching OpenCL kernels only.
entry_proxy< SCALARTYPE > operator() (vcl_size_t row_index, vcl_size_t col_index)
 Read-write access to a single element of the matrix.
circulant_matrix< SCALARTYPE,
ALIGNMENT > & 
operator+= (circulant_matrix< SCALARTYPE, ALIGNMENT > &that)
 += operation for circulant matrices

Detailed Description

template<class SCALARTYPE, unsigned int ALIGNMENT>
class viennacl::circulant_matrix< SCALARTYPE, ALIGNMENT >

A Circulant matrix class.

Template Parameters:
SCALARTYPEThe underlying scalar type (either float or double)
ALIGNMENTThe internal memory size is given by (size()/ALIGNMENT + 1) * ALIGNMENT. ALIGNMENT must be a power of two. Best values or usually 4, 8 or 16, higher values are usually a waste of memory.

Member Typedef Documentation

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

Constructor & Destructor Documentation

circulant_matrix ( ) [inline, explicit]

The default constructor. Does not allocate any memory.

circulant_matrix ( vcl_size_t  rows,
vcl_size_t  cols 
) [inline, explicit]

Creates the matrix with the given size.

Parameters:
rowsNumber of rows of the matrix
colsNumber of columns of the matrix

Member Function Documentation

viennacl::vector<SCALARTYPE, ALIGNMENT>& elements ( ) [inline]

Returns an internal viennacl::vector, which represents a circulant matrix elements.

viennacl::vector<SCALARTYPE, ALIGNMENT> const& elements ( ) const [inline]
handle_type const& handle ( ) const [inline]

Returns the OpenCL handle.

Returns:
OpenCL handle
vcl_size_t internal_size ( ) const [inline]

Returns the internal size of matrix representtion. Usually required for launching OpenCL kernels only.

Returns:
Internal size of matrix representation
entry_proxy<SCALARTYPE> operator() ( vcl_size_t  row_index,
vcl_size_t  col_index 
) [inline]

Read-write access to a single element of the matrix.

Parameters:
row_indexRow index of accessed element
col_indexColumn index of accessed element
Returns:
Proxy for matrix entry
circulant_matrix<SCALARTYPE, ALIGNMENT>& operator+= ( circulant_matrix< SCALARTYPE, ALIGNMENT > &  that) [inline]

+= operation for circulant matrices

Parameters:
thatMatrix which will be added
Returns:
Result of addition
void resize ( vcl_size_t  sz,
bool  preserve = true 
) [inline]

Resizes the matrix. Existing entries can be preserved.

Parameters:
szNew size of matrix
preserveIf true, existing values are preserved.
vcl_size_t size1 ( ) const [inline]

Returns the number of rows of the matrix.

vcl_size_t size2 ( ) const [inline]

Returns the number of columns of the matrix.


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