ViennaCL - The Vienna Computing Library  1.7.0
Free open-source GPU-accelerated linear algebra and solver library.
viennacl::circulant_matrix< NumericT, AlignmentV > 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< NumericT >::ResultType > value_type
 

Public Member Functions

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

Detailed Description

template<class NumericT, unsigned int AlignmentV>
class viennacl::circulant_matrix< NumericT, AlignmentV >

A Circulant matrix class.

Template Parameters
NumericTThe underlying scalar type (either float or double)
AlignmentVThe internal memory size is given by (size()/AlignmentV + 1) * AlignmentV. AlignmentV must be a power of two. Best values or usually 4, 8 or 16, higher values are usually a waste of memory.
Examples:
structured-matrices.cpp.

Definition at line 41 of file circulant_matrix.hpp.

Member Typedef Documentation

template<class NumericT, unsigned int AlignmentV>
typedef viennacl::backend::mem_handle viennacl::circulant_matrix< NumericT, AlignmentV >::handle_type

Definition at line 44 of file circulant_matrix.hpp.

template<class NumericT, unsigned int AlignmentV>
typedef scalar<typename viennacl::tools::CHECK_SCALAR_TEMPLATE_ARGUMENT<NumericT>::ResultType> viennacl::circulant_matrix< NumericT, AlignmentV >::value_type

Definition at line 45 of file circulant_matrix.hpp.

Constructor & Destructor Documentation

template<class NumericT, unsigned int AlignmentV>
viennacl::circulant_matrix< NumericT, AlignmentV >::circulant_matrix ( )
inlineexplicit

The default constructor. Does not allocate any memory.

Definition at line 51 of file circulant_matrix.hpp.

template<class NumericT, unsigned int AlignmentV>
viennacl::circulant_matrix< NumericT, AlignmentV >::circulant_matrix ( vcl_size_t  rows,
vcl_size_t  cols 
)
inlineexplicit

Creates the matrix with the given size.

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

Definition at line 59 of file circulant_matrix.hpp.

Member Function Documentation

template<class NumericT, unsigned int AlignmentV>
viennacl::vector<NumericT, AlignmentV>& viennacl::circulant_matrix< NumericT, AlignmentV >::elements ( )
inline

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

Definition at line 86 of file circulant_matrix.hpp.

template<class NumericT, unsigned int AlignmentV>
viennacl::vector<NumericT, AlignmentV> const& viennacl::circulant_matrix< NumericT, AlignmentV >::elements ( ) const
inline

Definition at line 87 of file circulant_matrix.hpp.

template<class NumericT, unsigned int AlignmentV>
handle_type const& viennacl::circulant_matrix< NumericT, AlignmentV >::handle ( ) const
inline

Returns the OpenCL handle.

Returns
OpenCL handle

Definition at line 80 of file circulant_matrix.hpp.

template<class NumericT, unsigned int AlignmentV>
vcl_size_t viennacl::circulant_matrix< NumericT, AlignmentV >::internal_size ( ) const
inline

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

Returns
Internal size of matrix representation

Definition at line 104 of file circulant_matrix.hpp.

template<class NumericT, unsigned int AlignmentV>
entry_proxy<NumericT> viennacl::circulant_matrix< NumericT, AlignmentV >::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

Definition at line 113 of file circulant_matrix.hpp.

template<class NumericT, unsigned int AlignmentV>
circulant_matrix<NumericT, AlignmentV>& viennacl::circulant_matrix< NumericT, AlignmentV >::operator+= ( circulant_matrix< NumericT, AlignmentV > &  that)
inline

+= operation for circulant matrices

Parameters
thatMatrix which will be added
Returns
Result of addition

Definition at line 130 of file circulant_matrix.hpp.

template<class NumericT, unsigned int AlignmentV>
void viennacl::circulant_matrix< NumericT, AlignmentV >::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.

Definition at line 71 of file circulant_matrix.hpp.

template<class NumericT, unsigned int AlignmentV>
vcl_size_t viennacl::circulant_matrix< NumericT, AlignmentV >::size1 ( ) const
inline

Returns the number of rows of the matrix.

Definition at line 92 of file circulant_matrix.hpp.

template<class NumericT, unsigned int AlignmentV>
vcl_size_t viennacl::circulant_matrix< NumericT, AlignmentV >::size2 ( ) const
inline

Returns the number of columns of the matrix.

Definition at line 97 of file circulant_matrix.hpp.


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