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

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 , typename LhsT , typename RhsT , typename OpT >
viennacl::matrix_expression < const viennacl::matrix_base < NumericT >, const viennacl::matrix_expression < const LhsT, const RhsT, OpT > , viennacl::op_mat_mat_prod > | viennacl::linalg::prod (viennacl::matrix_base< NumericT > const &A, viennacl::matrix_expression< const LhsT, const RhsT, OpT > const &B)
template<typename LhsT , typename RhsT , typename OpT , typename NumericT >
viennacl::matrix_expression < const viennacl::matrix_expression < const LhsT, const RhsT, OpT > , const viennacl::matrix_base < NumericT > , viennacl::op_mat_mat_prod > | viennacl::linalg::prod (viennacl::matrix_expression< const LhsT, const RhsT, OpT > const &A, viennacl::matrix_base< NumericT > const &B)
template<typename LhsT1 , typename RhsT1 , typename OpT1 , typename LhsT2 , typename RhsT2 , typename OpT2 >
viennacl::matrix_expression < const viennacl::matrix_expression < const LhsT1, const RhsT1, OpT1 >, const viennacl::matrix_expression < const LhsT2, const RhsT2, OpT2 > , viennacl::op_mat_mat_prod > | viennacl::linalg::prod (viennacl::matrix_expression< const LhsT1, const RhsT1, OpT1 > const &A, viennacl::matrix_expression< const LhsT2, const RhsT2, OpT2 > 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 &A, viennacl::vector_base< NumericT > const &x)
template<typename NumericT , typename F >
viennacl::vector_expression < const viennacl::matrix_base < NumericT >, const viennacl::vector_base < NumericT > , viennacl::op_prod > | viennacl::linalg::prod (viennacl::matrix< NumericT, F > const &A, viennacl::vector_base< NumericT > const &x)
template<typename MatrixT , typename NumericT >
viennacl::vector_expression < const viennacl::matrix_base < NumericT >, const viennacl::vector_base < NumericT > , viennacl::op_prod > | viennacl::linalg::prod (viennacl::matrix_range< MatrixT > const &A, viennacl::vector_base< NumericT > const &x)
template<typename MatrixT , typename NumericT >
viennacl::vector_expression < const viennacl::matrix_base < NumericT >, const viennacl::vector_base < NumericT > , viennacl::op_prod > | viennacl::linalg::prod (viennacl::matrix_slice< MatrixT > const &A, viennacl::vector_base< NumericT > const &x)
template<typename NumericT , typename LhsT , typename RhsT , typename OpT >
viennacl::vector_expression < const viennacl::matrix_expression < const LhsT, const RhsT, OpT > , const viennacl::vector_base < NumericT > , viennacl::op_prod > | viennacl::linalg::prod (viennacl::matrix_expression< const LhsT, const RhsT, OpT > const &A, viennacl::vector_base< NumericT > const &x)
template<typename NumericT , typename LhsT , typename RhsT , typename OpT >
viennacl::vector_expression < const viennacl::matrix_base < NumericT >, const viennacl::vector_expression < const LhsT, const RhsT, OpT > , viennacl::op_prod > | viennacl::linalg::prod (viennacl::matrix_base< NumericT > const &A, viennacl::vector_expression< const LhsT, const RhsT, OpT > const &x)
template<typename LhsT1 , typename RhsT1 , typename OpT1 , typename LhsT2 , typename RhsT2 , typename OpT2 >
viennacl::vector_expression < const viennacl::matrix_expression < const LhsT1, const RhsT1, OpT1 >, const viennacl::vector_expression < const LhsT2, const RhsT2, OpT2 >, viennacl::op_prod > | viennacl::linalg::prod (viennacl::matrix_expression< const LhsT1, const RhsT1, OpT1 > const &A, viennacl::vector_expression< const LhsT2, const RhsT2, OpT2 > const &x)
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 NumericT >
viennacl::matrix_expression < const compressed_matrix < NumericT >, const compressed_matrix< NumericT > , op_prod > | viennacl::linalg::prod (compressed_matrix< NumericT > const &A, compressed_matrix< NumericT > const &B)
| Sparse matrix-matrix product with compressed_matrix objects. More...
template<typename SparseMatrixType , typename NumericT >
vector_expression< const SparseMatrixType, const vector_base< NumericT > , op_prod > | viennacl::linalg::prod (const SparseMatrixType &A, const vector_base< NumericT > &x)
| Generic matrix-vector product with user-provided sparse matrix type. More...

## Detailed Description

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.