MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
grad::GenericBinaryExpression< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr > Class Template Reference

#include <matvec.h>

Collaboration diagram for grad::GenericBinaryExpression< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr >:

Public Types

typedef char vector_deriv_type
 
typedef T ScalarType
 
typedef T ExpressionType
 

Public Member Functions

 GenericBinaryExpression (const ScalarLhsExpr &lhs, const ScalarRhsExpr &rhs)
 
 operator ExpressionType () const
 
scalar_func_type dGetValue () const
 
scalar_deriv_type dGetDerivativeLocal (index_type iLocalDof) const
 
vector_deriv_type dGetDerivativeLocalVector (index_type iLocalVecDof) const
 
index_type iGetStartIndexLocal () const
 
index_type iGetEndIndexLocal () const
 
index_type iGetStartIndexLocalVector () const
 
index_type iGetEndIndexLocalVector () const
 
LocalDofMappGetDofMap () const
 
bool bHaveReferenceTo (const void *p) const
 
void Compute () const
 

Static Public Member Functions

static index_type iGetMaxDerivatives ()
 

Static Public Attributes

static const bool bAlias = false
 
static const index_type iMaxDerivatives = 0
 
static const bool bVectorize = true
 
static const index_type iDimension = -1
 

Private Attributes

const ExpressionType a
 

Detailed Description

template<typename ScalarBinaryFunction, typename T, typename ScalarLhsExpr, typename ScalarRhsExpr>
class grad::GenericBinaryExpression< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr >

This is a default implementation that handles built in types like float doublereal and long doublereal and also classes which do not need expression templates

Definition at line 102 of file matvec.h.

Member Typedef Documentation

template<typename ScalarBinaryFunction, typename T, typename ScalarLhsExpr, typename ScalarRhsExpr>
typedef T grad::GenericBinaryExpression< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr >::ExpressionType

Definition at line 110 of file matvec.h.

template<typename ScalarBinaryFunction, typename T, typename ScalarLhsExpr, typename ScalarRhsExpr>
typedef T grad::GenericBinaryExpression< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr >::ScalarType

Definition at line 109 of file matvec.h.

template<typename ScalarBinaryFunction, typename T, typename ScalarLhsExpr, typename ScalarRhsExpr>
typedef char grad::GenericBinaryExpression< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr >::vector_deriv_type

Definition at line 108 of file matvec.h.

Constructor & Destructor Documentation

template<typename ScalarBinaryFunction, typename T, typename ScalarLhsExpr, typename ScalarRhsExpr>
grad::GenericBinaryExpression< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr >::GenericBinaryExpression ( const ScalarLhsExpr &  lhs,
const ScalarRhsExpr &  rhs 
)
inline

Definition at line 112 of file matvec.h.

113  :a(ScalarBinaryFunction::f(lhs, rhs)) {
114  };
const ExpressionType a
Definition: matvec.h:163

Member Function Documentation

template<typename ScalarBinaryFunction, typename T, typename ScalarLhsExpr, typename ScalarRhsExpr>
bool grad::GenericBinaryExpression< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr >::bHaveReferenceTo ( const void *  p) const
inline

Definition at line 152 of file matvec.h.

152  {
153  return false;
154  }
template<typename ScalarBinaryFunction, typename T, typename ScalarLhsExpr, typename ScalarRhsExpr>
void grad::GenericBinaryExpression< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr >::Compute ( ) const
inline

Definition at line 160 of file matvec.h.

160 {}
template<typename ScalarBinaryFunction, typename T, typename ScalarLhsExpr, typename ScalarRhsExpr>
scalar_deriv_type grad::GenericBinaryExpression< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr >::dGetDerivativeLocal ( index_type  iLocalDof) const
inline

Definition at line 124 of file matvec.h.

124  {
125  return 0;
126  }
template<typename ScalarBinaryFunction, typename T, typename ScalarLhsExpr, typename ScalarRhsExpr>
vector_deriv_type grad::GenericBinaryExpression< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr >::dGetDerivativeLocalVector ( index_type  iLocalVecDof) const
inline

Definition at line 128 of file matvec.h.

128  {
129  return vector_deriv_type();
130  }
template<typename ScalarBinaryFunction, typename T, typename ScalarLhsExpr, typename ScalarRhsExpr>
scalar_func_type grad::GenericBinaryExpression< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr >::dGetValue ( ) const
inline

Definition at line 120 of file matvec.h.

References grad::GenericBinaryExpression< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr >::a.

120  {
121  return a;
122  }
const ExpressionType a
Definition: matvec.h:163
template<typename ScalarBinaryFunction, typename T, typename ScalarLhsExpr, typename ScalarRhsExpr>
index_type grad::GenericBinaryExpression< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr >::iGetEndIndexLocal ( ) const
inline

Definition at line 136 of file matvec.h.

136  {
137  return 0;
138  }
template<typename ScalarBinaryFunction, typename T, typename ScalarLhsExpr, typename ScalarRhsExpr>
index_type grad::GenericBinaryExpression< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr >::iGetEndIndexLocalVector ( ) const
inline

Definition at line 144 of file matvec.h.

144  {
145  return 0;
146  }
template<typename ScalarBinaryFunction, typename T, typename ScalarLhsExpr, typename ScalarRhsExpr>
static index_type grad::GenericBinaryExpression< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr >::iGetMaxDerivatives ( )
inlinestatic

Definition at line 156 of file matvec.h.

References grad::GenericBinaryExpression< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr >::iMaxDerivatives.

156  {
157  return iMaxDerivatives;
158  }
static const index_type iMaxDerivatives
Definition: matvec.h:105
template<typename ScalarBinaryFunction, typename T, typename ScalarLhsExpr, typename ScalarRhsExpr>
index_type grad::GenericBinaryExpression< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr >::iGetStartIndexLocal ( ) const
inline

Definition at line 132 of file matvec.h.

132  {
133  return std::numeric_limits<index_type>::max();
134  }
template<typename ScalarBinaryFunction, typename T, typename ScalarLhsExpr, typename ScalarRhsExpr>
index_type grad::GenericBinaryExpression< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr >::iGetStartIndexLocalVector ( ) const
inline

Definition at line 140 of file matvec.h.

140  {
141  return std::numeric_limits<index_type>::max();
142  }
template<typename ScalarBinaryFunction, typename T, typename ScalarLhsExpr, typename ScalarRhsExpr>
grad::GenericBinaryExpression< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr >::operator ExpressionType ( ) const
inline

Definition at line 116 of file matvec.h.

References grad::GenericBinaryExpression< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr >::a.

116  {
117  return a;
118  }
const ExpressionType a
Definition: matvec.h:163
template<typename ScalarBinaryFunction, typename T, typename ScalarLhsExpr, typename ScalarRhsExpr>
LocalDofMap* grad::GenericBinaryExpression< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr >::pGetDofMap ( ) const
inline

Definition at line 148 of file matvec.h.

148  {
149  return 0;
150  }

Member Data Documentation

template<typename ScalarBinaryFunction, typename T, typename ScalarLhsExpr, typename ScalarRhsExpr>
const ExpressionType grad::GenericBinaryExpression< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr >::a
private
template<typename ScalarBinaryFunction, typename T, typename ScalarLhsExpr, typename ScalarRhsExpr>
const bool grad::GenericBinaryExpression< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr >::bAlias = false
static

Definition at line 104 of file matvec.h.

template<typename ScalarBinaryFunction, typename T, typename ScalarLhsExpr, typename ScalarRhsExpr>
const bool grad::GenericBinaryExpression< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr >::bVectorize = true
static

Definition at line 106 of file matvec.h.

template<typename ScalarBinaryFunction, typename T, typename ScalarLhsExpr, typename ScalarRhsExpr>
const index_type grad::GenericBinaryExpression< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr >::iDimension = -1
static

Definition at line 107 of file matvec.h.

template<typename ScalarBinaryFunction, typename T, typename ScalarLhsExpr, typename ScalarRhsExpr>
const index_type grad::GenericBinaryExpression< ScalarBinaryFunction, T, ScalarLhsExpr, ScalarRhsExpr >::iMaxDerivatives = 0
static

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