1 #ifndef VIENNACL_LINALG_CIRCULANT_MATRIX_OPERATIONS_HPP_
2 #define VIENNACL_LINALG_CIRCULANT_MATRIX_OPERATIONS_HPP_
48 template<
class SCALARTYPE,
unsigned int ALIGNMENT>
60 viennacl::detail::fft::real_to_complex(mat.
elements(), circ, mat.
elements().size());
65 viennacl::detail::fft::real_to_complex(vec, tmp, vec.
size());
66 viennacl::linalg::convolve(circ, tmp, tmp2);
67 viennacl::detail::fft::complex_to_real(tmp2, result, vec.
size());
size_type size() const
Returns the length of the vector (cf. std::vector)
Definition: vector.hpp:837
This file provides the forward declarations for the main types used within ViennaCL.
viennacl::vector< SCALARTYPE, ALIGNMENT > & elements()
Returns an internal viennacl::vector, which represents a circulant matrix elements.
Definition: circulant_matrix.hpp:86
A vector class representing a linear memory sequence on the GPU. Inspired by boost::numeric::ublas::v...
Definition: forwards.h:208
Implementations of the OpenCL backend, where all contexts are stored in.
vcl_size_t size2() const
Returns the number of columns of the matrix.
Definition: circulant_matrix.hpp:97
The vector type with operator-overloads and proxy classes is defined here. Linear algebra operations ...
All routines related to the Fast Fourier Transform. Experimental.
vcl_size_t size1() const
Returns the number of rows of the matrix.
Definition: circulant_matrix.hpp:92
A Circulant matrix class.
Definition: circulant_matrix.hpp:41
void prod_impl(const matrix_base< NumericT, F > &mat, const vector_base< NumericT > &vec, vector_base< NumericT > &result)
Carries out matrix-vector multiplication.
Definition: matrix_operations.hpp:350
Implementation of the ViennaCL scalar class.