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

#include <matvec.h>

Collaboration diagram for grad::MatrixScalarMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, ScalarRhsExpr >:

Public Types

typedef ScalarBinFunc::ScalarType ScalarType
 
typedef
ScalarBinFunc::ExpressionType 
ExpressionType
 
typedef VectorExpression
< RowVectorExpr
< MatrixScalarMatrixBinaryExpr >
, iNumCols
RowVectorType
 
typedef VectorExpression
< ColumnVectorExpr
< MatrixScalarMatrixBinaryExpr >
, iNumRows
ColumnVectorType
 

Public Member Functions

 MatrixScalarMatrixBinaryExpr (const MatrixLhsExpr &u, const ScalarRhsExpr &v)
 
ExpressionType operator() (index_type i, index_type j) const
 
index_type iGetNumRows () const
 
index_type iGetNumCols () const
 
RowVectorType GetRow (index_type iRow) const
 
ColumnVectorType GetCol (index_type iCol) const
 
template<typename ScalarType2 >
bool bHaveReferenceTo (const ScalarType2 *pFirst, const ScalarType2 *pLast) const
 

Static Public Attributes

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

Private Attributes

const MatrixLhsExpr oU
 
const ScalarRhsExpr oV
 

Detailed Description

template<typename ScalarBinFunc, typename MatrixLhsExpr, typename ScalarRhsExpr>
class grad::MatrixScalarMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, ScalarRhsExpr >

This class handles expressions of the form f(matrix1, scalar1) = matrix2

Definition at line 1294 of file matvec.h.

Member Typedef Documentation

template<typename ScalarBinFunc , typename MatrixLhsExpr , typename ScalarRhsExpr >
typedef VectorExpression<ColumnVectorExpr<MatrixScalarMatrixBinaryExpr>, iNumRows> grad::MatrixScalarMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, ScalarRhsExpr >::ColumnVectorType

Definition at line 1302 of file matvec.h.

template<typename ScalarBinFunc , typename MatrixLhsExpr , typename ScalarRhsExpr >
typedef ScalarBinFunc::ExpressionType grad::MatrixScalarMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, ScalarRhsExpr >::ExpressionType

Definition at line 1300 of file matvec.h.

template<typename ScalarBinFunc , typename MatrixLhsExpr , typename ScalarRhsExpr >
typedef VectorExpression<RowVectorExpr<MatrixScalarMatrixBinaryExpr>, iNumCols> grad::MatrixScalarMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, ScalarRhsExpr >::RowVectorType

Definition at line 1301 of file matvec.h.

template<typename ScalarBinFunc , typename MatrixLhsExpr , typename ScalarRhsExpr >
typedef ScalarBinFunc::ScalarType grad::MatrixScalarMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, ScalarRhsExpr >::ScalarType

Definition at line 1299 of file matvec.h.

Constructor & Destructor Documentation

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

Definition at line 1304 of file matvec.h.

References grad::DYNAMIC_SIZE, grad::MatrixScalarMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, ScalarRhsExpr >::iNumCols, grad::MatrixScalarMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, ScalarRhsExpr >::iNumRows, MATVEC_ASSERT, and grad::MatrixScalarMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, ScalarRhsExpr >::oU.

1305  :oU(u), oV(v) {
1306 
1307  MATVEC_ASSERT((iNumRows == oU.iGetNumRows()) || (iNumRows == DYNAMIC_SIZE && oU.iGetNumRows() >= 0));
1308  MATVEC_ASSERT((iNumCols == oU.iGetNumCols()) || (iNumCols == DYNAMIC_SIZE && oU.iGetNumCols() >= 0)) ;
1309  }
static const index_type DYNAMIC_SIZE
Definition: gradient.h:141
#define MATVEC_ASSERT(expr)
Definition: matvec.h:64
static const index_type iNumCols
Definition: matvec.h:1298
const ScalarRhsExpr oV
Definition: matvec.h:1350
const MatrixLhsExpr oU
Definition: matvec.h:1349
static const index_type iNumRows
Definition: matvec.h:1297

Member Function Documentation

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

Definition at line 1342 of file matvec.h.

References grad::MatrixScalarMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, ScalarRhsExpr >::oU, and grad::MatrixScalarMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, ScalarRhsExpr >::oV.

1342  {
1343  typedef ScalarTypeTraits<BasicScalarType<ScalarRhsExpr> > ScalarTraits;
1344  return oU.bHaveReferenceTo(pFirst, pLast)
1345  || ScalarTraits::bHaveReferenceTo(oV, pFirst, pLast);
1346  }
const ScalarRhsExpr oV
Definition: matvec.h:1350
const MatrixLhsExpr oU
Definition: matvec.h:1349
template<typename ScalarBinFunc , typename MatrixLhsExpr , typename ScalarRhsExpr >
ColumnVectorType grad::MatrixScalarMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, ScalarRhsExpr >::GetCol ( index_type  iCol) const
inline

Definition at line 1335 of file matvec.h.

References grad::MatrixScalarMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, ScalarRhsExpr >::iGetNumCols(), and MATVEC_ASSERT.

1335  {
1336  MATVEC_ASSERT(iCol >= 1);
1337  MATVEC_ASSERT(iCol <= iGetNumCols());
1338  return ColumnVectorType(*this, iCol);
1339  }
#define MATVEC_ASSERT(expr)
Definition: matvec.h:64
VectorExpression< ColumnVectorExpr< MatrixScalarMatrixBinaryExpr >, iNumRows > ColumnVectorType
Definition: matvec.h:1302
index_type iGetNumCols() const
Definition: matvec.h:1324

Here is the call graph for this function:

template<typename ScalarBinFunc , typename MatrixLhsExpr , typename ScalarRhsExpr >
RowVectorType grad::MatrixScalarMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, ScalarRhsExpr >::GetRow ( index_type  iRow) const
inline

Definition at line 1329 of file matvec.h.

References grad::MatrixScalarMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, ScalarRhsExpr >::iGetNumRows(), and MATVEC_ASSERT.

1329  {
1330  MATVEC_ASSERT(iRow >= 1);
1331  MATVEC_ASSERT(iRow <= iGetNumRows());
1332  return RowVectorType(*this, iRow);
1333  }
#define MATVEC_ASSERT(expr)
Definition: matvec.h:64
VectorExpression< RowVectorExpr< MatrixScalarMatrixBinaryExpr >, iNumCols > RowVectorType
Definition: matvec.h:1301
index_type iGetNumRows() const
Definition: matvec.h:1319

Here is the call graph for this function:

template<typename ScalarBinFunc , typename MatrixLhsExpr , typename ScalarRhsExpr >
index_type grad::MatrixScalarMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, ScalarRhsExpr >::iGetNumCols ( void  ) const
inline
template<typename ScalarBinFunc , typename MatrixLhsExpr , typename ScalarRhsExpr >
index_type grad::MatrixScalarMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, ScalarRhsExpr >::iGetNumRows ( void  ) const
inline
template<typename ScalarBinFunc , typename MatrixLhsExpr , typename ScalarRhsExpr >
ExpressionType grad::MatrixScalarMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, ScalarRhsExpr >::operator() ( index_type  i,
index_type  j 
) const
inline

Member Data Documentation

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

Definition at line 1296 of file matvec.h.

template<typename ScalarBinFunc , typename MatrixLhsExpr , typename ScalarRhsExpr >
const index_type grad::MatrixScalarMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, ScalarRhsExpr >::iNumCols = MatrixLhsExpr::iNumCols
static
template<typename ScalarBinFunc , typename MatrixLhsExpr , typename ScalarRhsExpr >
const index_type grad::MatrixScalarMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, ScalarRhsExpr >::iNumRows = MatrixLhsExpr::iNumRows
static
template<typename ScalarBinFunc , typename MatrixLhsExpr , typename ScalarRhsExpr >
const ScalarRhsExpr grad::MatrixScalarMatrixBinaryExpr< ScalarBinFunc, MatrixLhsExpr, ScalarRhsExpr >::oV
private

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