All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
sparse_matrix_operations.hpp File Reference

Implementations of operations using sparse matrices and OpenCL. More...

`#include "viennacl/forwards.h"`
`#include "viennacl/ocl/device.hpp"`
`#include "viennacl/ocl/handle.hpp"`
`#include "viennacl/ocl/kernel.hpp"`
`#include "viennacl/scalar.hpp"`
`#include "viennacl/vector.hpp"`
`#include "viennacl/tools/tools.hpp"`
`#include "viennacl/linalg/host_based/common.hpp"`
`#include "viennacl/linalg/opencl/kernels/compressed_matrix.hpp"`
`#include "viennacl/linalg/opencl/kernels/coordinate_matrix.hpp"`
`#include "viennacl/linalg/opencl/kernels/ell_matrix.hpp"`
`#include "viennacl/linalg/opencl/kernels/sliced_ell_matrix.hpp"`
`#include "viennacl/linalg/opencl/kernels/hyb_matrix.hpp"`
`#include "viennacl/linalg/opencl/kernels/compressed_compressed_matrix.hpp"`
`#include "viennacl/linalg/opencl/common.hpp"`
`#include "viennacl/linalg/opencl/vector_operations.hpp"`

Go to the source code of this file.

## Namespaces

| viennacl
| Main namespace in ViennaCL. Holds all the basic types such as vector, matrix, etc. and defines operations upon them.
| viennacl::linalg
| Provides all linear algebra operations which are not covered by operator overloads.
| viennacl::linalg::opencl
| Holds all routines providing OpenCL linear algebra operations.
| viennacl::linalg::opencl::detail
| Helper functions for OpenCL-accelerated linear algebra operations.

## Functions

template<typename NumericT , unsigned int AlignmentV>
void | viennacl::linalg::opencl::detail::row_info (compressed_matrix< NumericT, AlignmentV > const &A, vector_base< NumericT > &x, viennacl::linalg::detail::row_info_types info_selector)
template<typename NumericT , unsigned int AlignmentV>
void | viennacl::linalg::opencl::prod_impl (const viennacl::compressed_matrix< NumericT, AlignmentV > &A, const viennacl::vector_base< NumericT > &x, NumericT alpha, viennacl::vector_base< NumericT > &y, NumericT beta)
| Carries out matrix-vector multiplication with a compressed_matrix. More...
template<typename NumericT , unsigned int AlignmentV>
void | viennacl::linalg::opencl::prod_impl (const viennacl::compressed_matrix< NumericT, AlignmentV > &sp_A, const viennacl::matrix_base< NumericT > &d_A, viennacl::matrix_base< NumericT > &y)
| Carries out sparse_matrix-matrix multiplication first matrix being compressed. More...
template<typename NumericT , unsigned int AlignmentV>
void | viennacl::linalg::opencl::prod_impl (viennacl::compressed_matrix< NumericT, AlignmentV > const &sp_A, viennacl::matrix_expression< const viennacl::matrix_base< NumericT >, const viennacl::matrix_base< NumericT >, viennacl::op_trans > const &d_A, viennacl::matrix_base< NumericT > &y)
| Carries out matrix-trans(matrix) multiplication first matrix being compressed and the second transposed. More...
template<typename NumericT , unsigned int AlignmentV>
void | viennacl::linalg::opencl::prod_impl (viennacl::compressed_matrix< NumericT, AlignmentV > const &A, viennacl::compressed_matrix< NumericT, AlignmentV > const &B, viennacl::compressed_matrix< NumericT, AlignmentV > &C)
| Carries out sparse_matrix-sparse_matrix multiplication for CSR matrices. More...
template<typename NumericT , unsigned int MAT_AlignmentV>
void | viennacl::linalg::opencl::inplace_solve (compressed_matrix< NumericT, MAT_AlignmentV > const &L, vector_base< NumericT > &x, viennacl::linalg::unit_lower_tag)
| Inplace solution of a lower triangular compressed_matrix with unit diagonal. Typically used for LU substitutions. More...
template<typename NumericT , unsigned int AlignmentV>
void | viennacl::linalg::opencl::inplace_solve (compressed_matrix< NumericT, AlignmentV > const &L, vector_base< NumericT > &x, viennacl::linalg::lower_tag)
| Inplace solution of a lower triangular compressed_matrix. Typically used for LU substitutions. More...
template<typename NumericT , unsigned int AlignmentV>
void | viennacl::linalg::opencl::inplace_solve (compressed_matrix< NumericT, AlignmentV > const &U, vector_base< NumericT > &x, viennacl::linalg::unit_upper_tag)
| Inplace solution of an upper triangular compressed_matrix with unit diagonal. Typically used for LU substitutions. More...
template<typename NumericT , unsigned int AlignmentV>
void | viennacl::linalg::opencl::inplace_solve (compressed_matrix< NumericT, AlignmentV > const &U, vector_base< NumericT > &x, viennacl::linalg::upper_tag)
| Inplace solution of an upper triangular compressed_matrix. Typically used for LU substitutions. More...
template<typename NumericT , unsigned int AlignmentV>
void | viennacl::linalg::opencl::detail::block_inplace_solve (const matrix_expression< const compressed_matrix< NumericT, AlignmentV >, const compressed_matrix< NumericT, AlignmentV >, op_trans > &L, viennacl::backend::mem_handle const &block_indices, vcl_size_t num_blocks, vector_base< NumericT > const &, vector_base< NumericT > &x, viennacl::linalg::unit_lower_tag)
template<typename NumericT , unsigned int AlignmentV>
void | viennacl::linalg::opencl::detail::block_inplace_solve (matrix_expression< const compressed_matrix< NumericT, AlignmentV >, const compressed_matrix< NumericT, AlignmentV >, op_trans > const &U, viennacl::backend::mem_handle const &block_indices, vcl_size_t num_blocks, vector_base< NumericT > const &U_diagonal, vector_base< NumericT > &x, viennacl::linalg::upper_tag)
template<typename NumericT , unsigned int AlignmentV>
void | viennacl::linalg::opencl::inplace_solve (matrix_expression< const compressed_matrix< NumericT, AlignmentV >, const compressed_matrix< NumericT, AlignmentV >, op_trans > const &proxy_L, vector_base< NumericT > &x, viennacl::linalg::unit_lower_tag)
| Inplace solution of a lower triangular compressed_matrix with unit diagonal. Typically used for LU substitutions. More...
template<typename NumericT , unsigned int AlignmentV>
void | viennacl::linalg::opencl::inplace_solve (matrix_expression< const compressed_matrix< NumericT, AlignmentV >, const compressed_matrix< NumericT, AlignmentV >, op_trans > const &proxy_L, vector_base< NumericT > &x, viennacl::linalg::lower_tag)
| Inplace solution of a lower triangular compressed_matrix. Typically used for LU substitutions. More...
template<typename NumericT , unsigned int AlignmentV>
void | viennacl::linalg::opencl::inplace_solve (matrix_expression< const compressed_matrix< NumericT, AlignmentV >, const compressed_matrix< NumericT, AlignmentV >, op_trans > const &proxy_U, vector_base< NumericT > &x, viennacl::linalg::unit_upper_tag)
| Inplace solution of a lower triangular compressed_matrix with unit diagonal. Typically used for LU substitutions. More...
template<typename NumericT , unsigned int AlignmentV>
void | viennacl::linalg::opencl::inplace_solve (matrix_expression< const compressed_matrix< NumericT, AlignmentV >, const compressed_matrix< NumericT, AlignmentV >, op_trans > const &proxy_U, vector_base< NumericT > &x, viennacl::linalg::upper_tag)
| Inplace solution of a lower triangular compressed_matrix. Typically used for LU substitutions. More...
template<typename NumericT >
void | viennacl::linalg::opencl::prod_impl (viennacl::compressed_compressed_matrix< NumericT > const &A, viennacl::vector_base< NumericT > const &x, NumericT alpha, viennacl::vector_base< NumericT > &y, NumericT beta)
| Carries out matrix-vector multiplication with a compressed_compressed_matrix. More...
template<typename NumericT , unsigned int AlignmentV>
void | viennacl::linalg::opencl::detail::row_info (coordinate_matrix< NumericT, AlignmentV > const &A, vector_base< NumericT > &x, viennacl::linalg::detail::row_info_types info_selector)
template<typename NumericT , unsigned int AlignmentV>
void | viennacl::linalg::opencl::prod_impl (viennacl::coordinate_matrix< NumericT, AlignmentV > const &A, viennacl::vector_base< NumericT > const &x, NumericT alpha, viennacl::vector_base< NumericT > &y, NumericT beta)
| Carries out matrix-vector multiplication with a coordinate_matrix. More...
template<typename NumericT , unsigned int AlignmentV>
void | viennacl::linalg::opencl::prod_impl (viennacl::coordinate_matrix< NumericT, AlignmentV > const &A, viennacl::matrix_base< NumericT > const &d_A, viennacl::matrix_base< NumericT > &y)
| Carries out sparse-matrix-dense-matrix multiplication, where the sparse matrix is a coordinate_matrix. More...
template<typename NumericT , unsigned int AlignmentV>
void | viennacl::linalg::opencl::prod_impl (viennacl::coordinate_matrix< NumericT, AlignmentV > const &A, viennacl::matrix_expression< const viennacl::matrix_base< NumericT >, const viennacl::matrix_base< NumericT >, viennacl::op_trans > const &d_A, viennacl::matrix_base< NumericT > &y)
| Carries out sparse-matrix-dense-matrix multiplication, where the sparse matrix is a coordinate_matrix. More...
template<typename NumericT , unsigned int AlignmentV>
void | viennacl::linalg::opencl::prod_impl (viennacl::ell_matrix< NumericT, AlignmentV > const &A, viennacl::vector_base< NumericT > const &x, NumericT alpha, viennacl::vector_base< NumericT > &y, NumericT beta)
template<typename NumericT , unsigned int AlignmentV>
void | viennacl::linalg::opencl::prod_impl (viennacl::ell_matrix< NumericT, AlignmentV > const &sp_A, viennacl::matrix_base< NumericT > const &d_A, viennacl::matrix_base< NumericT > &y)
| Carries out Sparse Matrix(ELL)-Dense Matrix multiplication. More...
template<typename NumericT , unsigned int AlignmentV>
void | viennacl::linalg::opencl::prod_impl (viennacl::ell_matrix< NumericT, AlignmentV > const &sp_A, viennacl::matrix_expression< const viennacl::matrix_base< NumericT >, const viennacl::matrix_base< NumericT >, viennacl::op_trans > const &d_A, viennacl::matrix_base< NumericT > &y)
| Carries out Sparse Matrix(ELL)-Dense Transposed Matrix multiplication. More...
template<typename ScalarT , typename IndexT >
void | viennacl::linalg::opencl::prod_impl (viennacl::sliced_ell_matrix< ScalarT, IndexT > const &A, viennacl::vector_base< ScalarT > const &x, ScalarT alpha, viennacl::vector_base< ScalarT > &y, ScalarT beta)
template<typename NumericT , unsigned int AlignmentV>
void | viennacl::linalg::opencl::prod_impl (viennacl::hyb_matrix< NumericT, AlignmentV > const &A, viennacl::vector_base< NumericT > const &x, NumericT alpha, viennacl::vector_base< NumericT > &y, NumericT beta)
template<typename NumericT , unsigned int AlignmentV>
void | viennacl::linalg::opencl::prod_impl (viennacl::hyb_matrix< NumericT, AlignmentV > const &A, viennacl::matrix_base< NumericT > const &d_A, viennacl::matrix_base< NumericT > &y)
template<typename NumericT , unsigned int AlignmentV>
void | viennacl::linalg::opencl::prod_impl (viennacl::hyb_matrix< NumericT, AlignmentV > const &A, viennacl::matrix_expression< const viennacl::matrix_base< NumericT >, const viennacl::matrix_base< NumericT >, viennacl::op_trans > const &d_A, viennacl::matrix_base< NumericT > &y)

## Detailed Description

Implementations of operations using sparse matrices and OpenCL.

Definition in file sparse_matrix_operations.hpp.