MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
EE_Modulus Class Reference

#include <evaluator_impl.h>

Inheritance diagram for EE_Modulus:
Collaboration diagram for EE_Modulus:

Public Member Functions

 EE_Modulus (ExpressionElement *pEE1, ExpressionElement *pEE2)
 
 ~EE_Modulus (void)
 
TypedValue Eval (void) const
 
std::ostream & Output (std::ostream &out) const
 
- Public Member Functions inherited from ExpressionElement
virtual ~ExpressionElement (void)
 

Private Attributes

ExpressionElementm_pEE1
 
ExpressionElementm_pEE2
 

Additional Inherited Members

- Public Types inherited from ExpressionElement
enum  EEFlags { EE_NONE = 0x0U, EE_CONSTIFY = 0x1U, EE_OPTIMIZE = EE_CONSTIFY }
 
- Static Public Member Functions inherited from ExpressionElement
static unsigned GetFlags (void)
 
static void SetFlag (EEFlags f)
 
static void ClearFlag (EEFlags f)
 
static bool IsFlag (EEFlags f)
 
- Static Protected Attributes inherited from ExpressionElement
static unsigned m_uEEFlags
 

Detailed Description

Definition at line 146 of file evaluator_impl.h.

Constructor & Destructor Documentation

EE_Modulus::EE_Modulus ( ExpressionElement pEE1,
ExpressionElement pEE2 
)
inline

Definition at line 169 of file evaluator_impl.h.

169 : m_pEE1(pEE1), m_pEE2(pEE2) {};
ExpressionElement * m_pEE1
ExpressionElement * m_pEE2
EE_Modulus::~EE_Modulus ( void  )
inline

Definition at line 170 of file evaluator_impl.h.

References m_pEE1, and m_pEE2.

170 { delete m_pEE1; delete m_pEE2; };
ExpressionElement * m_pEE1
ExpressionElement * m_pEE2

Member Function Documentation

TypedValue EE_Modulus::Eval ( void  ) const
inlinevirtual

Implements ExpressionElement.

Definition at line 184 of file evaluator_impl.h.

References a, ASSERT, ExpressionElement::Eval(), TypedValue::GetInt(), TypedValue::GetType(), m_pEE1, m_pEE2, MBDYN_EXCEPT_ARGS, TypedValue::VAR_BOOL, and TypedValue::VAR_INT.

185  {
186  // FIXME: the check on types should be done while parsing, if possible...
187  TypedValue a = m_pEE2->Eval();
189  ASSERT(a.GetInt() != 0);
190  return m_pEE1->Eval() % a;
191  }
193  };
ExpressionElement * m_pEE1
#define MBDYN_EXCEPT_ARGS
Definition: except.h:63
TypedValue::Type GetType(void) const
Definition: mathp.cc:1155
virtual TypedValue Eval(void) const =0
ExpressionElement * m_pEE2
#define ASSERT(expression)
Definition: colamd.c:977
static const doublereal a
Definition: hfluid_.h:289
Int GetInt(void) const
Definition: mathp.cc:1209

Here is the call graph for this function:

std::ostream& EE_Modulus::Output ( std::ostream &  out) const
inlinevirtual

Implements ExpressionElement.

Definition at line 196 of file evaluator_impl.h.

References m_pEE1, m_pEE2, and ExpressionElement::Output().

197  {
198  return out << "(", m_pEE1->Output(out) << " % ", m_pEE2->Output(out) << ")";
199  };
ExpressionElement * m_pEE1
virtual std::ostream & Output(std::ostream &out) const =0
ExpressionElement * m_pEE2

Here is the call graph for this function:

Member Data Documentation

ExpressionElement* EE_Modulus::m_pEE1
private

Definition at line 148 of file evaluator_impl.h.

Referenced by Eval(), Output(), and ~EE_Modulus().

ExpressionElement * EE_Modulus::m_pEE2
private

Definition at line 148 of file evaluator_impl.h.

Referenced by Eval(), Output(), and ~EE_Modulus().


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