Generic interface for matrix-vector and matrix-matrix products. See viennacl/linalg/vector_operations.hpp, viennacl/linalg/matrix_operations.hpp, and viennacl/linalg/sparse_matrix_operations.hpp for implementations. More...
#include "viennacl/forwards.h"
#include "viennacl/tools/tools.hpp"
#include "viennacl/meta/enable_if.hpp"
#include "viennacl/meta/tag_of.hpp"
#include <vector>
#include <map>
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. | |
Functions | |
template<typename T , typename A1 , typename A2 , typename VectorT > | |
VectorT | viennacl::linalg::prod (std::vector< std::vector< T, A1 >, A2 > const &matrix, VectorT const &vector) |
template<typename KEY , typename DATA , typename COMPARE , typename AMAP , typename AVEC , typename VectorT > | |
VectorT | viennacl::linalg::prod (std::vector< std::map< KEY, DATA, COMPARE, AMAP >, AVEC > const &matrix, VectorT const &vector) |
template<typename NumericT > | |
viennacl::matrix_expression < const viennacl::matrix_base < NumericT >, const viennacl::matrix_base < NumericT > , viennacl::op_mat_mat_prod > | viennacl::linalg::prod (viennacl::matrix_base< NumericT > const &A, viennacl::matrix_base< NumericT > const &B) |
template<typename NumericT > | |
viennacl::matrix_expression < const viennacl::matrix_base < NumericT >, const viennacl::matrix_expression < const viennacl::matrix_base < NumericT >, const viennacl::matrix_base < NumericT >, op_trans > , viennacl::op_mat_mat_prod > | viennacl::linalg::prod (viennacl::matrix_base< NumericT > const &A, viennacl::matrix_expression< const viennacl::matrix_base< NumericT >, const viennacl::matrix_base< NumericT >, op_trans > const &B) |
template<typename NumericT > | |
viennacl::matrix_expression < const viennacl::matrix_expression < const viennacl::matrix_base < NumericT >, const viennacl::matrix_base < NumericT >, op_trans > , const viennacl::matrix_base < NumericT > , viennacl::op_mat_mat_prod > | viennacl::linalg::prod (viennacl::matrix_expression< const viennacl::matrix_base< NumericT >, const viennacl::matrix_base< NumericT >, op_trans > const &A, viennacl::matrix_base< NumericT > const &B) |
template<typename NumericT > | |
viennacl::matrix_expression < const viennacl::matrix_expression < const viennacl::matrix_base < NumericT >, const viennacl::matrix_base < NumericT >, op_trans > , const viennacl::matrix_expression < const viennacl::matrix_base < NumericT >, const viennacl::matrix_base < NumericT >, op_trans > , viennacl::op_mat_mat_prod > | viennacl::linalg::prod (viennacl::matrix_expression< const viennacl::matrix_base< NumericT >, const viennacl::matrix_base< NumericT >, op_trans > const &A, viennacl::matrix_expression< const viennacl::matrix_base< NumericT >, const viennacl::matrix_base< NumericT >, op_trans > const &B) |
template<typename NumericT > | |
viennacl::vector_expression < const viennacl::matrix_base < NumericT >, const viennacl::vector_base < NumericT > , viennacl::op_prod > | viennacl::linalg::prod (viennacl::matrix_base< NumericT > const &matrix, viennacl::vector_base< NumericT > const &vector) |
template<typename NumericT > | |
viennacl::vector_expression < const viennacl::matrix_expression < const viennacl::matrix_base < NumericT >, const viennacl::matrix_base < NumericT >, op_trans > , const viennacl::vector_base < NumericT > , viennacl::op_prod > | viennacl::linalg::prod (viennacl::matrix_expression< const viennacl::matrix_base< NumericT >, const viennacl::matrix_base< NumericT >, op_trans > const &matrix, viennacl::vector_base< NumericT > const &vector) |
template<typename SparseMatrixType , class SCALARTYPE > | |
viennacl::enable_if < viennacl::is_any_sparse_matrix < SparseMatrixType >::value, vector_expression< const SparseMatrixType, const vector_base< SCALARTYPE > , op_prod > >::type | viennacl::linalg::prod (const SparseMatrixType &mat, const vector_base< SCALARTYPE > &vec) |
template<typename SparseMatrixType , typename SCALARTYPE > | |
viennacl::enable_if < viennacl::is_any_sparse_matrix < SparseMatrixType >::value, viennacl::matrix_expression < const SparseMatrixType, const matrix_base< SCALARTYPE > , op_prod > >::type | viennacl::linalg::prod (const SparseMatrixType &sp_mat, const viennacl::matrix_base< SCALARTYPE > &d_mat) |
template<typename SparseMatrixType , typename SCALARTYPE > | |
viennacl::enable_if < viennacl::is_any_sparse_matrix < SparseMatrixType >::value, viennacl::matrix_expression < const SparseMatrixType, const viennacl::matrix_expression < const viennacl::matrix_base < SCALARTYPE >, const viennacl::matrix_base < SCALARTYPE >, op_trans > , viennacl::op_prod > >::type | viennacl::linalg::prod (const SparseMatrixType &A, viennacl::matrix_expression< const viennacl::matrix_base< SCALARTYPE >, const viennacl::matrix_base< SCALARTYPE >, op_trans > const &B) |
template<typename StructuredMatrixType , class SCALARTYPE > | |
viennacl::enable_if < viennacl::is_any_dense_structured_matrix < StructuredMatrixType > ::value, vector_expression < const StructuredMatrixType, const vector_base< SCALARTYPE > , op_prod > >::type | viennacl::linalg::prod (const StructuredMatrixType &mat, const vector_base< SCALARTYPE > &vec) |
Generic interface for matrix-vector and matrix-matrix products. See viennacl/linalg/vector_operations.hpp, viennacl/linalg/matrix_operations.hpp, and viennacl/linalg/sparse_matrix_operations.hpp for implementations.
Definition in file prod.hpp.