MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
grad::VectorScalarVectorBinaryExpr< ScalarBinFunc, VectorLhsExpr, ScalarRhsExpr > Class Template Reference

#include <matvec.h>

Collaboration diagram for grad::VectorScalarVectorBinaryExpr< ScalarBinFunc, VectorLhsExpr, ScalarRhsExpr >:

Public Types

typedef ScalarBinFunc::ScalarType ScalarType
 
typedef
ScalarBinFunc::ExpressionType 
ExpressionType
 

Public Member Functions

 VectorScalarVectorBinaryExpr (const VectorLhsExpr &u, const ScalarRhsExpr &v)
 
ExpressionType operator() (index_type i) const
 
index_type iGetNumRows () const
 
template<typename ScalarType2 >
bool bHaveReferenceTo (const ScalarType2 *pFirst, const ScalarType2 *pLast) const
 

Static Public Attributes

static const bool bAlias = VectorLhsExpr::bAlias || MatVecHelp::AliasTypeHelper<ScalarRhsExpr>::bAlias
 
static const index_type iNumRows = VectorLhsExpr::iNumRows
 

Private Attributes

const VectorLhsExpr oU
 
const ScalarRhsExpr oV
 

Detailed Description

template<typename ScalarBinFunc, typename VectorLhsExpr, typename ScalarRhsExpr>
class grad::VectorScalarVectorBinaryExpr< ScalarBinFunc, VectorLhsExpr, ScalarRhsExpr >

This class handles expressions of the form f(vector1, scalar1) = vector2

Definition at line 730 of file matvec.h.

Member Typedef Documentation

template<typename ScalarBinFunc , typename VectorLhsExpr , typename ScalarRhsExpr >
typedef ScalarBinFunc::ExpressionType grad::VectorScalarVectorBinaryExpr< ScalarBinFunc, VectorLhsExpr, ScalarRhsExpr >::ExpressionType

Definition at line 735 of file matvec.h.

template<typename ScalarBinFunc , typename VectorLhsExpr , typename ScalarRhsExpr >
typedef ScalarBinFunc::ScalarType grad::VectorScalarVectorBinaryExpr< ScalarBinFunc, VectorLhsExpr, ScalarRhsExpr >::ScalarType

Definition at line 734 of file matvec.h.

Constructor & Destructor Documentation

template<typename ScalarBinFunc , typename VectorLhsExpr , typename ScalarRhsExpr >
grad::VectorScalarVectorBinaryExpr< ScalarBinFunc, VectorLhsExpr, ScalarRhsExpr >::VectorScalarVectorBinaryExpr ( const VectorLhsExpr &  u,
const ScalarRhsExpr &  v 
)
inline

Definition at line 737 of file matvec.h.

738  :oU(u), oV(v) {
739 
740  }
const VectorLhsExpr oU
Definition: matvec.h:761
const ScalarRhsExpr oV
Definition: matvec.h:762

Member Function Documentation

template<typename ScalarBinFunc , typename VectorLhsExpr , typename ScalarRhsExpr >
template<typename ScalarType2 >
bool grad::VectorScalarVectorBinaryExpr< ScalarBinFunc, VectorLhsExpr, ScalarRhsExpr >::bHaveReferenceTo ( const ScalarType2 *  pFirst,
const ScalarType2 *  pLast 
) const
inline

Definition at line 754 of file matvec.h.

References grad::VectorScalarVectorBinaryExpr< ScalarBinFunc, VectorLhsExpr, ScalarRhsExpr >::oU, and grad::VectorScalarVectorBinaryExpr< ScalarBinFunc, VectorLhsExpr, ScalarRhsExpr >::oV.

754  {
755  typedef ScalarTypeTraits<BasicScalarType<ScalarRhsExpr> > ScalarTraits;
756  return oU.bHaveReferenceTo(pFirst, pLast)
757  || ScalarTraits::bHaveReferenceTo(oV, pFirst, pLast);
758  }
const VectorLhsExpr oU
Definition: matvec.h:761
const ScalarRhsExpr oV
Definition: matvec.h:762
template<typename ScalarBinFunc , typename VectorLhsExpr , typename ScalarRhsExpr >
index_type grad::VectorScalarVectorBinaryExpr< ScalarBinFunc, VectorLhsExpr, ScalarRhsExpr >::iGetNumRows ( void  ) const
inline
template<typename ScalarBinFunc , typename VectorLhsExpr , typename ScalarRhsExpr >
ExpressionType grad::VectorScalarVectorBinaryExpr< ScalarBinFunc, VectorLhsExpr, ScalarRhsExpr >::operator() ( index_type  i) const
inline

Member Data Documentation

template<typename ScalarBinFunc , typename VectorLhsExpr , typename ScalarRhsExpr >
const bool grad::VectorScalarVectorBinaryExpr< ScalarBinFunc, VectorLhsExpr, ScalarRhsExpr >::bAlias = VectorLhsExpr::bAlias || MatVecHelp::AliasTypeHelper<ScalarRhsExpr>::bAlias
static

Definition at line 732 of file matvec.h.

template<typename ScalarBinFunc , typename VectorLhsExpr , typename ScalarRhsExpr >
const index_type grad::VectorScalarVectorBinaryExpr< ScalarBinFunc, VectorLhsExpr, ScalarRhsExpr >::iNumRows = VectorLhsExpr::iNumRows
static
template<typename ScalarBinFunc , typename VectorLhsExpr , typename ScalarRhsExpr >
const ScalarRhsExpr grad::VectorScalarVectorBinaryExpr< ScalarBinFunc, VectorLhsExpr, ScalarRhsExpr >::oV
private

The documentation for this class was generated from the following file: