Implementations of operations using sparse matrices on the CPU using a single thread or OpenMP. More...
#include "viennacl/forwards.h"#include "viennacl/scalar.hpp"#include "viennacl/vector.hpp"#include "viennacl/tools/tools.hpp"#include "viennacl/linalg/host_based/common.hpp"#include "viennacl/linalg/host_based/vector_operations.hpp"#include "viennacl/linalg/host_based/spgemm_vector.hpp"#include <vector>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::host_based | |
| Holds all compute kernels with conventional host-based execution (buffers in CPU RAM). | |
| viennacl::linalg::host_based::detail | |
| Helper functions for the host-based linear algebra backend. | |
| Functions | |
| template<typename NumericT , unsigned int AlignmentV> | |
| void | viennacl::linalg::host_based::detail::row_info (compressed_matrix< NumericT, AlignmentV > const &mat, vector_base< NumericT > &vec, viennacl::linalg::detail::row_info_types info_selector) | 
| template<typename NumericT , unsigned int AlignmentV> | |
| void | viennacl::linalg::host_based::prod_impl (const viennacl::compressed_matrix< NumericT, AlignmentV > &mat, const viennacl::vector_base< NumericT > &vec, NumericT alpha, viennacl::vector_base< NumericT > &result, NumericT beta) | 
| Carries out matrix-vector multiplication with a compressed_matrix.  More... | |
| template<typename NumericT , unsigned int AlignmentV> | |
| void | viennacl::linalg::host_based::prod_impl (const viennacl::compressed_matrix< NumericT, AlignmentV > &sp_mat, const viennacl::matrix_base< NumericT > &d_mat, viennacl::matrix_base< NumericT > &result) | 
| Carries out sparse_matrix-matrix multiplication first matrix being compressed.  More... | |
| template<typename NumericT , unsigned int AlignmentV> | |
| void | viennacl::linalg::host_based::prod_impl (const viennacl::compressed_matrix< NumericT, AlignmentV > &sp_mat, const viennacl::matrix_expression< const viennacl::matrix_base< NumericT >, const viennacl::matrix_base< NumericT >, viennacl::op_trans > &d_mat, viennacl::matrix_base< NumericT > &result) | 
| Carries out matrix-trans(matrix) multiplication first matrix being compressed and the second transposed.  More... | |
| template<typename NumericT , unsigned int AlignmentV> | |
| void | viennacl::linalg::host_based::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 , typename ConstScalarArrayT , typename ScalarArrayT , typename IndexArrayT > | |
| void | viennacl::linalg::host_based::detail::csr_inplace_solve (IndexArrayT const &row_buffer, IndexArrayT const &col_buffer, ConstScalarArrayT const &element_buffer, ScalarArrayT &vec_buffer, vcl_size_t num_cols, viennacl::linalg::unit_lower_tag) | 
| template<typename NumericT , typename ConstScalarArrayT , typename ScalarArrayT , typename IndexArrayT > | |
| void | viennacl::linalg::host_based::detail::csr_inplace_solve (IndexArrayT const &row_buffer, IndexArrayT const &col_buffer, ConstScalarArrayT const &element_buffer, ScalarArrayT &vec_buffer, vcl_size_t num_cols, viennacl::linalg::lower_tag) | 
| template<typename NumericT , typename ConstScalarArrayT , typename ScalarArrayT , typename IndexArrayT > | |
| void | viennacl::linalg::host_based::detail::csr_inplace_solve (IndexArrayT const &row_buffer, IndexArrayT const &col_buffer, ConstScalarArrayT const &element_buffer, ScalarArrayT &vec_buffer, vcl_size_t num_cols, viennacl::linalg::unit_upper_tag) | 
| template<typename NumericT , typename ConstScalarArrayT , typename ScalarArrayT , typename IndexArrayT > | |
| void | viennacl::linalg::host_based::detail::csr_inplace_solve (IndexArrayT const &row_buffer, IndexArrayT const &col_buffer, ConstScalarArrayT const &element_buffer, ScalarArrayT &vec_buffer, vcl_size_t num_cols, viennacl::linalg::upper_tag) | 
| template<typename NumericT , unsigned int AlignmentV> | |
| void | viennacl::linalg::host_based::inplace_solve (compressed_matrix< NumericT, AlignmentV > const &L, vector_base< NumericT > &vec, viennacl::linalg::unit_lower_tag 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::host_based::inplace_solve (compressed_matrix< NumericT, AlignmentV > const &L, vector_base< NumericT > &vec, viennacl::linalg::lower_tag tag) | 
| Inplace solution of a lower triangular compressed_matrix. Typically used for LU substitutions.  More... | |
| template<typename NumericT , unsigned int AlignmentV> | |
| void | viennacl::linalg::host_based::inplace_solve (compressed_matrix< NumericT, AlignmentV > const &U, vector_base< NumericT > &vec, viennacl::linalg::unit_upper_tag tag) | 
| Inplace solution of a upper triangular compressed_matrix with unit diagonal. Typically used for LU substitutions.  More... | |
| template<typename NumericT , unsigned int AlignmentV> | |
| void | viennacl::linalg::host_based::inplace_solve (compressed_matrix< NumericT, AlignmentV > const &U, vector_base< NumericT > &vec, viennacl::linalg::upper_tag tag) | 
| Inplace solution of a upper triangular compressed_matrix. Typically used for LU substitutions.  More... | |
| template<typename NumericT , typename ConstScalarArrayT , typename ScalarArrayT , typename IndexArrayT > | |
| void | viennacl::linalg::host_based::detail::csr_trans_inplace_solve (IndexArrayT const &row_buffer, IndexArrayT const &col_buffer, ConstScalarArrayT const &element_buffer, ScalarArrayT &vec_buffer, vcl_size_t num_cols, viennacl::linalg::unit_lower_tag) | 
| template<typename NumericT , typename ConstScalarArrayT , typename ScalarArrayT , typename IndexArrayT > | |
| void | viennacl::linalg::host_based::detail::csr_trans_inplace_solve (IndexArrayT const &row_buffer, IndexArrayT const &col_buffer, ConstScalarArrayT const &element_buffer, ScalarArrayT &vec_buffer, vcl_size_t num_cols, viennacl::linalg::lower_tag) | 
| template<typename NumericT , typename ConstScalarArrayT , typename ScalarArrayT , typename IndexArrayT > | |
| void | viennacl::linalg::host_based::detail::csr_trans_inplace_solve (IndexArrayT const &row_buffer, IndexArrayT const &col_buffer, ConstScalarArrayT const &element_buffer, ScalarArrayT &vec_buffer, vcl_size_t num_cols, viennacl::linalg::unit_upper_tag) | 
| template<typename NumericT , typename ConstScalarArrayT , typename ScalarArrayT , typename IndexArrayT > | |
| void | viennacl::linalg::host_based::detail::csr_trans_inplace_solve (IndexArrayT const &row_buffer, IndexArrayT const &col_buffer, ConstScalarArrayT const &element_buffer, ScalarArrayT &vec_buffer, vcl_size_t num_cols, viennacl::linalg::upper_tag) | 
| template<typename NumericT , unsigned int AlignmentV> | |
| void | viennacl::linalg::host_based::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 &, vcl_size_t, vector_base< NumericT > const &, vector_base< NumericT > &vec, viennacl::linalg::unit_lower_tag) | 
| template<typename NumericT , unsigned int AlignmentV> | |
| void | viennacl::linalg::host_based::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 &, vcl_size_t, vector_base< NumericT > const &L_diagonal, vector_base< NumericT > &vec, viennacl::linalg::lower_tag) | 
| template<typename NumericT , unsigned int AlignmentV> | |
| void | viennacl::linalg::host_based::detail::block_inplace_solve (const matrix_expression< const compressed_matrix< NumericT, AlignmentV >, const compressed_matrix< NumericT, AlignmentV >, op_trans > &U, viennacl::backend::mem_handle const &, vcl_size_t, vector_base< NumericT > const &, vector_base< NumericT > &vec, viennacl::linalg::unit_upper_tag) | 
| template<typename NumericT , unsigned int AlignmentV> | |
| void | viennacl::linalg::host_based::detail::block_inplace_solve (const matrix_expression< const compressed_matrix< NumericT, AlignmentV >, const compressed_matrix< NumericT, AlignmentV >, op_trans > &U, viennacl::backend::mem_handle const &, vcl_size_t, vector_base< NumericT > const &U_diagonal, vector_base< NumericT > &vec, viennacl::linalg::upper_tag) | 
| template<typename NumericT , unsigned int AlignmentV> | |
| void | viennacl::linalg::host_based::inplace_solve (matrix_expression< const compressed_matrix< NumericT, AlignmentV >, const compressed_matrix< NumericT, AlignmentV >, op_trans > const &proxy, vector_base< NumericT > &vec, viennacl::linalg::unit_lower_tag 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::host_based::inplace_solve (matrix_expression< const compressed_matrix< NumericT, AlignmentV >, const compressed_matrix< NumericT, AlignmentV >, op_trans > const &proxy, vector_base< NumericT > &vec, viennacl::linalg::lower_tag tag) | 
| Inplace solution of a lower triangular compressed_matrix. Typically used for LU substitutions.  More... | |
| template<typename NumericT , unsigned int AlignmentV> | |
| void | viennacl::linalg::host_based::inplace_solve (matrix_expression< const compressed_matrix< NumericT, AlignmentV >, const compressed_matrix< NumericT, AlignmentV >, op_trans > const &proxy, vector_base< NumericT > &vec, viennacl::linalg::unit_upper_tag tag) | 
| Inplace solution of a upper triangular compressed_matrix with unit diagonal. Typically used for LU substitutions.  More... | |
| template<typename NumericT , unsigned int AlignmentV> | |
| void | viennacl::linalg::host_based::inplace_solve (matrix_expression< const compressed_matrix< NumericT, AlignmentV >, const compressed_matrix< NumericT, AlignmentV >, op_trans > const &proxy, vector_base< NumericT > &vec, viennacl::linalg::upper_tag tag) | 
| Inplace solution of a upper triangular compressed_matrix with unit diagonal. Typically used for LU substitutions.  More... | |
| template<typename NumericT > | |
| void | viennacl::linalg::host_based::prod_impl (const viennacl::compressed_compressed_matrix< NumericT > &mat, const viennacl::vector_base< NumericT > &vec, NumericT alpha, viennacl::vector_base< NumericT > &result, NumericT beta) | 
| Carries out matrix-vector multiplication with a compressed_matrix.  More... | |
| template<typename NumericT , unsigned int AlignmentV> | |
| void | viennacl::linalg::host_based::detail::row_info (coordinate_matrix< NumericT, AlignmentV > const &mat, vector_base< NumericT > &vec, viennacl::linalg::detail::row_info_types info_selector) | 
| template<typename NumericT , unsigned int AlignmentV> | |
| void | viennacl::linalg::host_based::prod_impl (const viennacl::coordinate_matrix< NumericT, AlignmentV > &mat, const viennacl::vector_base< NumericT > &vec, NumericT alpha, viennacl::vector_base< NumericT > &result, NumericT beta) | 
| Carries out matrix-vector multiplication with a coordinate_matrix.  More... | |
| template<typename NumericT , unsigned int AlignmentV> | |
| void | viennacl::linalg::host_based::prod_impl (const viennacl::coordinate_matrix< NumericT, AlignmentV > &sp_mat, const viennacl::matrix_base< NumericT > &d_mat, viennacl::matrix_base< NumericT > &result) | 
| Carries out Compressed Matrix(COO)-Dense Matrix multiplication.  More... | |
| template<typename NumericT , unsigned int AlignmentV> | |
| void | viennacl::linalg::host_based::prod_impl (const viennacl::coordinate_matrix< NumericT, AlignmentV > &sp_mat, const viennacl::matrix_expression< const viennacl::matrix_base< NumericT >, const viennacl::matrix_base< NumericT >, viennacl::op_trans > &d_mat, viennacl::matrix_base< NumericT > &result) | 
| Carries out Compressed Matrix(COO)-Dense Transposed Matrix multiplication.  More... | |
| template<typename NumericT , unsigned int AlignmentV> | |
| void | viennacl::linalg::host_based::prod_impl (const viennacl::ell_matrix< NumericT, AlignmentV > &mat, const viennacl::vector_base< NumericT > &vec, NumericT alpha, viennacl::vector_base< NumericT > &result, NumericT beta) | 
| Carries out matrix-vector multiplication with a ell_matrix.  More... | |
| template<typename NumericT , unsigned int AlignmentV> | |
| void | viennacl::linalg::host_based::prod_impl (const viennacl::ell_matrix< NumericT, AlignmentV > &sp_mat, const viennacl::matrix_base< NumericT > &d_mat, viennacl::matrix_base< NumericT > &result) | 
| Carries out ell_matrix-d_matrix multiplication.  More... | |
| template<typename NumericT , unsigned int AlignmentV> | |
| void | viennacl::linalg::host_based::prod_impl (const viennacl::ell_matrix< NumericT, AlignmentV > &sp_mat, const viennacl::matrix_expression< const viennacl::matrix_base< NumericT >, const viennacl::matrix_base< NumericT >, viennacl::op_trans > &d_mat, viennacl::matrix_base< NumericT > &result) | 
| Carries out matrix-trans(matrix) multiplication first matrix being sparse ell and the second dense transposed.  More... | |
| template<typename NumericT , typename IndexT > | |
| void | viennacl::linalg::host_based::prod_impl (const viennacl::sliced_ell_matrix< NumericT, IndexT > &mat, const viennacl::vector_base< NumericT > &vec, NumericT alpha, viennacl::vector_base< NumericT > &result, NumericT beta) | 
| Carries out matrix-vector multiplication with a sliced_ell_matrix.  More... | |
| template<typename NumericT , unsigned int AlignmentV> | |
| void | viennacl::linalg::host_based::prod_impl (const viennacl::hyb_matrix< NumericT, AlignmentV > &mat, const viennacl::vector_base< NumericT > &vec, NumericT alpha, viennacl::vector_base< NumericT > &result, NumericT beta) | 
| Carries out matrix-vector multiplication with a hyb_matrix.  More... | |
| template<typename NumericT , unsigned int AlignmentV> | |
| void | viennacl::linalg::host_based::prod_impl (const viennacl::hyb_matrix< NumericT, AlignmentV > &mat, const viennacl::matrix_base< NumericT > &d_mat, viennacl::matrix_base< NumericT > &result) | 
| Carries out sparse-matrix-dense-matrix multiplication with a hyb_matrix.  More... | |
| template<typename NumericT , unsigned int AlignmentV> | |
| void | viennacl::linalg::host_based::prod_impl (const viennacl::hyb_matrix< NumericT, AlignmentV > &mat, const viennacl::matrix_expression< const viennacl::matrix_base< NumericT >, const viennacl::matrix_base< NumericT >, viennacl::op_trans > &d_mat, viennacl::matrix_base< NumericT > &result) | 
| Carries out sparse-matrix-transposed-dense-matrix multiplication with a hyb_matrix.  More... | |
Implementations of operations using sparse matrices on the CPU using a single thread or OpenMP.
Definition in file sparse_matrix_operations.hpp.