matvec_mul.h File Reference

Multiply a matrix and a vector. More...

#include <cml/core/cml_meta.h>
#include <cml/vector/vector_expr.h>
#include <cml/matrix/matrix_expr.h>
#include <cml/matvec/matvec_promotions.h>

Include dependency graph for matvec_mul.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  cml
namespace  cml::detail

Typedefs

typedef true_type cml::detail::mul_Ax
typedef false_type cml::detail::mul_xA

Functions

template<typename LeftT , typename RightT >
et::MatVecPromote< typename
et::ExprTraits< LeftT >
::result_type, typename
et::ExprTraits< RightT >
::result_type >
::temporary_type 
cml::detail::mul (const LeftT &x, const RightT &A, mul_xA)
 Compute y = x*A.
template<typename LeftT , typename RightT >
et::MatVecPromote< typename
et::ExprTraits< LeftT >
::result_type, typename
et::ExprTraits< RightT >
::result_type >
::temporary_type 
cml::detail::mul (const LeftT &A, const RightT &x, mul_Ax)
 Compute y = A*x.
template<typename XprT1 , typename XprT2 >
et::MatVecPromote< typename
XprT1::result_type, typename
XprT2::result_type >
::temporary_type 
cml::operator* (const et::VectorXpr< XprT1 > &left, const et::MatrixXpr< XprT2 > &right)
 operator*() for a VectorXpr and a MatrixXpr.
template<typename XprT , typename E , class AT , typename BO , class L >
et::MatVecPromote< typename
XprT::result_type, matrix< E,
AT, BO, L >>::temporary_type 
cml::operator* (const et::VectorXpr< XprT > &left, const matrix< E, AT, BO, L > &right)
 operator*() for a VectorXpr and a matrix.
template<typename XprT , typename E , class AT >
et::MatVecPromote< typename
XprT::result_type, vector< E,
AT >>::temporary_type 
cml::operator* (const vector< E, AT > &left, const et::MatrixXpr< XprT > &right)
 operator*() for a vector and a MatrixXpr.
template<typename E1 , class AT1 , typename E2 , class AT2 , typename BO , class L >
et::MatVecPromote< vector< E1,
AT1 >, matrix< E2, AT2, BO, L >
>::temporary_type 
cml::operator* (const vector< E1, AT1 > &left, const matrix< E2, AT2, BO, L > &right)
 operator*() for a vector and a matrix.
template<typename XprT1 , typename XprT2 >
et::MatVecPromote< typename
XprT1::result_type, typename
XprT2::result_type >
::temporary_type 
cml::operator* (const et::MatrixXpr< XprT1 > &left, const et::VectorXpr< XprT2 > &right)
 operator*() for a MatrixXpr and a VectorXpr.
template<typename XprT , typename E , class AT >
et::MatVecPromote< typename
XprT::result_type, vector< E,
AT >>::temporary_type 
cml::operator* (const et::MatrixXpr< XprT > &left, const vector< E, AT > &right)
 operator*() for a MatrixXpr and a vector.
template<typename E , class AT , class L , typename BO , typename XprT >
et::MatVecPromote< matrix< E,
AT, BO, L >, typename
XprT::result_type >
::temporary_type 
cml::operator* (const matrix< E, AT, BO, L > &left, const et::VectorXpr< XprT > &right)
 operator*() for a matrix and a VectorXpr.
template<typename E1 , class AT1 , typename BO , class L , typename E2 , class AT2 >
et::MatVecPromote< matrix< E1,
AT1, BO, L >, vector< E2, AT2 >
>::temporary_type 
cml::operator* (const matrix< E1, AT1, BO, L > &left, const vector< E2, AT2 > &right)
 operator*() for a matrix and a vector.


Detailed Description

Multiply a matrix and a vector.

Todo:
Implement smarter temporary generation.
Todo:
Does it make sense to put mat-vec multiplication as a node into the expression tree?

Definition in file matvec_mul.h.


Generated on Sat Jul 18 19:35:36 2009 for CML 1.0 by  doxygen 1.5.9