COPASI API  4.40.278
CEvaluationNodeLogical Class Reference

#include <CEvaluationNodeLogical.h>

Inheritance diagram for CEvaluationNodeLogical:
[legend]

Public Member Functions

virtual void calculate () override
 
 CEvaluationNodeLogical (const CEvaluationNodeLogical &src)
 
 CEvaluationNodeLogical (const SubType &subType, const Data &data)
 
virtual CIssue compile () override
 
virtual std::string getBerkeleyMadonnaString (const std::vector< std::string > &children) const override
 
virtual std::string getCCodeString (const std::vector< std::string > &children) const override
 
virtual std::string getDisplayString (const std::vector< std::string > &children) const override
 
virtual std::string getInfix (const std::vector< std::string > &children) const override
 
virtual std::string getMMLString (const std::vector< std::string > &children, bool expand, const std::vector< std::vector< std::string > > &variables) const override
 
virtual CValidatedUnit getUnit (const CMathContainer &container, const std::vector< CValidatedUnit > &units) const override
 
virtual std::string getXPPString (const std::vector< std::string > &children) const override
 
virtual CValidatedUnit setUnit (const CMathContainer &container, const std::map< CEvaluationNode *, CValidatedUnit > &currentUnits, std::map< CEvaluationNode *, CValidatedUnit > &targetUnits) const override
 
virtual ASTNode * toAST (const CDataModel *pDataModel) const override
 
virtual ~CEvaluationNodeLogical ()
 
- Public Member Functions inherited from CEvaluationNode
void addChildren (const std::vector< CEvaluationNode * > &children)
 
std::string buildBerkeleyMadonnaString () const
 
std::string buildCCodeString () const
 
std::string buildDisplayString () const
 
std::string buildInfix () const
 
std::string buildMMLString (bool expand, const std::vector< std::vector< std::string > > &variables) const
 
std::string buildXPPString () const
 
 CEvaluationNode ()
 
 CEvaluationNode (const CEvaluationNode &src)
 
CEvaluationNodecopyBranch () const
 
CEvaluationNodecopyNode (CEvaluationNode *child1, CEvaluationNode *child2) const
 
CEvaluationNodecopyNode (const std::vector< CEvaluationNode * > &children) const
 
const CEvaluationNodefindTopMinus (const std::vector< CFunctionAnalyzer::CValue > &callParameters) const
 
const CEvaluationTreegetTree () const
 
const C_FLOAT64getValuePointer () const
 
const ValueTypegetValueType () const
 
virtual bool isBoolean () const
 
const MainTypemainType () const
 
bool operator!= (const CEvaluationNode &right) const
 
bool operator< (const CEvaluationNode &rhs)
 
bool operator< (const CEvaluationNode &right) const
 
bool operator== (const CEvaluationNode &right) const
 
void printRecursively () const
 
void printRecursively (std::ostream &os, int indent=0) const
 
void setTree (const CEvaluationTree *pTree)
 
virtual CIssue setValueType (const ValueType &valueType)
 
virtual CEvaluationNodesimplifyNode (const std::vector< CEvaluationNode * > &children) const
 
CEvaluationNodesplitBranch (const CEvaluationNode *splitnode, bool left) const
 
const SubTypesubType () const
 
virtual ~CEvaluationNode ()
 
- Public Member Functions inherited from CCopasiNode< std::string >
virtual bool addChild (CCopasiNode< Data > *pChild, CCopasiNode< Data > *pAfter=NULL)
 
bool addSibling (CCopasiNode< Data > *pSibling, CCopasiNode< Data > *pAfter=NULL)
 
 CCopasiNode (CCopasiNode< Data > *pParent=NULL)
 
 CCopasiNode (const CCopasiNode< Data > &src)
 
 CCopasiNode (const Data &data, CCopasiNode< Data > *pParent=NULL)
 
bool deleteChildren ()
 
CCopasiNode< Data > * getChild ()
 
const CCopasiNode< Data > * getChild () const
 
CCopasiNode< Data > * getChild (const size_t &index)
 
const CCopasiNode< Data > * getChild (const size_t &index) const
 
virtual DatagetData ()
 
virtual const DatagetData () const
 
CCopasiNode< Data > * getNext ()
 
const CCopasiNode< Data > * getNext () const
 
CCopasiNode< Data > * getNextNonChild ()
 
const CCopasiNode< Data > * getNextNonChild () const
 
size_t getNumChildren () const
 
CCopasiNode< Data > * getParent ()
 
const CCopasiNode< Data > * getParent () const
 
CCopasiNode< Data > * getSibling ()
 
const CCopasiNode< Data > * getSibling () const
 
virtual bool removeChild (CCopasiNode< Data > *pChild)
 
virtual bool setData (const Data &data)
 
virtual ~CCopasiNode ()
 

Static Public Member Functions

static CEvaluationNodefromAST (const ASTNode *pASTNode, const std::vector< CEvaluationNode * > &children)
 
- Static Public Member Functions inherited from CEvaluationNode
static CEvaluationNodecreate (const MainType &mainType, const SubType &subType, const std::string &data)
 
static bool isKeyword (const std::string &str)
 

Private Member Functions

 CEvaluationNodeLogical ()
 

Private Attributes

CEvaluationNodempLeftNode
 
const C_FLOAT64mpLeftValue
 
CEvaluationNodempRightNode
 
const C_FLOAT64mpRightValue
 

Additional Inherited Members

- Public Types inherited from CEvaluationNode
enum class  MainType {
  INVALID , NUMBER , CONSTANT , OPERATOR ,
  OBJECT , FUNCTION , CALL , STRUCTURE ,
  CHOICE , VARIABLE , WHITESPACE , LOGICAL ,
  MV_FUNCTION , VECTOR , DELAY , UNIT ,
  __SIZE
}
 
enum class  SubType {
  DEFAULT , DELAY , IF , VECTOR ,
  CN , DOUBLE , FUNCTION , LOG ,
  OPEN , PI , POWER , EXPRESSION ,
  POINTER , EXPONENTIALE , INTEGER , LOG10 ,
  MULTIPLY , OR , VECTOROPEN , COMMA ,
  DIVIDE , ENOTATION , EXP , True ,
  XOR , RATIONALE , AND , CLOSE ,
  False , MODULUS , SIN , VECTORCLOSE ,
  COS , EQ , Infinity , PLUS ,
  NaN , MINUS , NE , TAN ,
  REMAINDER , GT , SEC , CSC ,
  GE , COT , LT , LE ,
  SINH , COSH , TANH , SECH ,
  CSCH , COTH , ARCSIN , ARCCOS ,
  ARCTAN , ARCSEC , ARCCSC , ARCCOT ,
  ARCSINH , ARCCOSH , ARCTANH , ARCSECH ,
  ARCCSCH , ARCCOTH , SQRT , ABS ,
  FLOOR , CEIL , FACTORIAL , NOT ,
  RUNIFORM , RNORMAL , MAX , MIN ,
  RGAMMA , RPOISSON , SIGN , AVOGADRO ,
  INVALID , __SIZE
}
 
enum class  ValueType { Unknown , Boolean , Number , __SIZE }
 
- Public Types inherited from CCopasiNode< std::string >
typedef std::string Data
 
- Static Public Attributes inherited from CEvaluationNode
static const CEnumAnnotation< std::string, MainTypeMainTypeName
 
static const CEnumAnnotation< std::string, SubTypeSubTypeName
 
- Protected Member Functions inherited from CEvaluationNode
 CEvaluationNode (const MainType &type, const SubType &subType, const Data &data)
 
- Protected Member Functions inherited from CCopasiNode< std::string >
bool setChild (CCopasiNode< Data > *pChild)
 
bool setParent (CCopasiNode< Data > *pParent)
 
bool setSibling (CCopasiNode< Data > *pSibling)
 
- Protected Attributes inherited from CEvaluationNode
MainType mMainType
 
class CEvaluationNode::CPrecedence mPrecedence
 
const CEvaluationTreempTree
 
const C_FLOAT64mpValue
 
SubType mSubType
 
C_FLOAT64 mValue
 
ValueType mValueType
 
- Protected Attributes inherited from CCopasiNode< std::string >
Data mData
 

Detailed Description

This is the class for nodes presenting opertors used in an evaluation trees.

Constructor & Destructor Documentation

◆ CEvaluationNodeLogical() [1/3]

CEvaluationNodeLogical::CEvaluationNodeLogical ( )
private

Default constructor

References CEvaluationNode::Boolean, and CEvaluationNode::mValueType.

Referenced by fromAST().

◆ CEvaluationNodeLogical() [2/3]

◆ CEvaluationNodeLogical() [3/3]

CEvaluationNodeLogical::CEvaluationNodeLogical ( const CEvaluationNodeLogical src)

Copy constructor

Parameters
constCEvaluationNodeLogical & src

◆ ~CEvaluationNodeLogical()

CEvaluationNodeLogical::~CEvaluationNodeLogical ( )
virtual

Destructor

Member Function Documentation

◆ calculate()

virtual void CEvaluationNodeLogical::calculate ( void  )
inlineoverridevirtual

◆ compile()

◆ fromAST()

CEvaluationNode * CEvaluationNodeLogical::fromAST ( const ASTNode *  pASTNode,
const std::vector< CEvaluationNode * > &  children 
)
static

◆ getBerkeleyMadonnaString()

std::string CEvaluationNodeLogical::getBerkeleyMadonnaString ( const std::vector< std::string > &  children) const
overridevirtual

Retrieve the display string of the node and its eventual child nodes in Berkeley Madonna format.

Returns
const Data & value

Reimplemented from CEvaluationNode.

References CEvaluationNode::AND, compile(), CEvaluationNode::EQ, CEvaluationNode::GE, CEvaluationNode::GT, CEvaluationNode::LE, CEvaluationNode::LT, mpLeftNode, mpRightNode, CEvaluationNode::NE, CEvaluationNode::OR, and CEvaluationNode::subType().

◆ getCCodeString()

std::string CEvaluationNodeLogical::getCCodeString ( const std::vector< std::string > &  children) const
overridevirtual

Retrieve the disclass ASTNode;play string of the node and its eventual child nodes in C.

Returns
const Data & value

Reimplemented from CEvaluationNode.

References CEvaluationNode::AND, compile(), CEvaluationNode::EQ, CEvaluationNode::GE, CEvaluationNode::GT, CEvaluationNode::LE, CEvaluationNode::LT, mpLeftNode, mpRightNode, CEvaluationNode::NE, CEvaluationNode::OR, and CEvaluationNode::subType().

◆ getDisplayString()

std::string CEvaluationNodeLogical::getDisplayString ( const std::vector< std::string > &  children) const
overridevirtual

Retrieve the display string of the node and its eventual child nodes.

Returns
const Data & value

Reimplemented from CEvaluationNode.

References compile(), CCopasiNode< std::string >::mData, mpLeftNode, and mpRightNode.

◆ getInfix()

std::string CEvaluationNodeLogical::getInfix ( const std::vector< std::string > &  children) const
overridevirtual

Retrieve the infix value of the node and its eventual child nodes.

Returns
const Data & value

Reimplemented from CEvaluationNode.

References compile(), CCopasiNode< std::string >::mData, mpLeftNode, and mpRightNode.

◆ getMMLString()

std::string CEvaluationNodeLogical::getMMLString ( const std::vector< std::string > &  children,
bool  expand,
const std::vector< std::vector< std::string > > &  variables 
) const
overridevirtual

Build the MathML string

Parameters
conststd::vector< std::string > & children
boolexpand = true
conststd::vector< std::vector< std::string > > & variables
Returns
std::string MMLString

Reimplemented from CEvaluationNode.

References CEvaluationNode::AND, compile(), CEvaluationNode::EQ, CEvaluationNode::GE, CEvaluationNode::GT, CEvaluationNode::LE, CEvaluationNode::LT, mpLeftNode, mpRightNode, CEvaluationNode::NE, CEvaluationNode::OR, CEvaluationNode::subType(), and CEvaluationNode::XOR.

◆ getUnit()

CValidatedUnit CEvaluationNodeLogical::getUnit ( const CMathContainer container,
const std::vector< CValidatedUnit > &  units 
) const
overridevirtual

Figure out the appropriate CUnit to use, based on the child nodes. This sets the default, appropriate for many cases, as Dimensionless

Parameters
constCMathContainer & container
conststd::vector< CUnit > & units
Returns
CUnit unit

Reimplemented from CEvaluationNode.

References CEvaluationNode::AND, CValidatedUnit::conflict(), CBaseUnit::dimensionless, CEvaluationNode::EQ, CEvaluationNode::GE, CEvaluationNode::GT, CEvaluationNode::LE, CEvaluationNode::LT, CValidatedUnit::merge(), CEvaluationNode::mSubType, CEvaluationNode::NE, CEvaluationNode::OR, CValidatedUnit::setConflict(), and CEvaluationNode::XOR.

◆ getXPPString()

std::string CEvaluationNodeLogical::getXPPString ( const std::vector< std::string > &  children) const
overridevirtual

Retrieve the display string of the node and its eventual child nodes in XPPAUT format.

Returns
const Data & value

Reimplemented from CEvaluationNode.

References CEvaluationNode::AND, compile(), CEvaluationNode::EQ, CEvaluationNode::GE, CEvaluationNode::GT, CEvaluationNode::LE, CEvaluationNode::LT, mpLeftNode, mpRightNode, CEvaluationNode::NE, CEvaluationNode::OR, CEvaluationNode::subType(), and CCopasiMessage::WARNING.

◆ setUnit()

CValidatedUnit CEvaluationNodeLogical::setUnit ( const CMathContainer container,
const std::map< CEvaluationNode *, CValidatedUnit > &  currentUnits,
std::map< CEvaluationNode *, CValidatedUnit > &  targetUnits 
) const
overridevirtual

Set the unit for the node and return the resulting unit. The child node units are added to the map

Parameters
constCMathContainer & container
conststd::map < CEvaluationNode * , CValidatedUnit > & currentUnits
std::map< CEvaluationNode * , CValidatedUnit > & targetUnits
Returns
CUnit unit

Reimplemented from CEvaluationNode.

References CEvaluationNode::AND, CBaseUnit::dimensionless, CEvaluationNode::EQ, CEvaluationNode::GE, CEvaluationNode::GT, CEvaluationNode::LE, CEvaluationNode::LT, CValidatedUnit::merge(), mpLeftNode, mpRightNode, CEvaluationNode::mSubType, CEvaluationNode::NE, CEvaluationNode::OR, CEvaluationNode::setUnit(), and CEvaluationNode::XOR.

◆ toAST()

ASTNode * CEvaluationNodeLogical::toAST ( const CDataModel pDataModel) const
overridevirtual

Member Data Documentation

◆ mpLeftNode

◆ mpLeftValue

const C_FLOAT64* CEvaluationNodeLogical::mpLeftValue
private

Referenced by calculate(), and compile().

◆ mpRightNode

◆ mpRightValue

const C_FLOAT64* CEvaluationNodeLogical::mpRightValue
private

Referenced by calculate(), and compile().


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