COPASI API  4.40.278
CExpression Class Reference

#include <CExpression.h>

Inheritance diagram for CExpression:
[legend]

Public Member Functions

virtual const C_FLOAT64calcValue ()
 
 CExpression (const CExpression &src, const CDataContainer *pParent)
 
 CExpression (const std::string &name="Expression", const CDataContainer *pParent=NO_PARENT)
 
virtual CIssue compile (CObjectInterface::ContainerList listOfContainer=CDataContainer::EmptyList)
 
std::string getBerkeleyMadonnaString () const
 
std::string getCCodeString () const
 
const std::string & getDisplayString () const
 
const CObjectInterface::ContainerListgetListOfContainer () const
 
virtual const CObjectInterfacegetNodeObject (const CCommonName &CN) const override
 
std::string getXPPString () const
 
void refresh ()
 
virtual CIssue setInfix (const std::string &infix) override
 
void setIsBoolean (const bool &booleanRequired)
 
bool updateInfix ()
 
void writeMathML (std::ostream &out, bool fullExpand, size_t l) const
 
virtual ~CExpression ()
 
- Public Member Functions inherited from CEvaluationTree
virtual bool applyData (const CData &data, CUndoData::CChangeSet &changes)
 
bool calls (std::set< std::string > &list) const
 
 CEvaluationTree (const CEvaluationTree &src, const CDataContainer *pParent)
 
 CEvaluationTree (const std::string &name="NoName", const CDataContainer *pParent=NO_PARENT, const Type &type=Function)
 
virtual CIssue compile ()
 
bool containsCN (const DataObjectSet &elements) const
 
std::string::size_type getErrorPosition () const
 
const std::string & getInfix () const
 
const std::vector< CEvaluationNode * > & getNodeList () const
 
CEvaluationNodegetRoot ()
 
const CEvaluationNodegetRoot () const
 
const CEvaluationTree::TypegetType () const
 
virtual size_t getVariableIndex (const std::string &name) const
 
virtual const C_FLOAT64getVariableValue (const size_t &index) const
 
bool hasCircularDependency () const
 
bool hasDiscontinuity () const
 
bool isBoolean () const
 
bool mapObjectNodes (const CDataContainer *pSrc, const CDataContainer *pTarget)
 
bool operator== (const CEvaluationTree &rhs) const
 
virtual bool setRoot (CEvaluationNode *pRootNode)
 
bool setTree (const ASTNode &pRootNode, bool isFunction)
 
size_t size () const
 
virtual ASTNode * toAST (const CDataModel *pDataModel) const
 
virtual CData toData () const
 
CIssue updateTree ()
 
virtual ~CEvaluationTree ()
 
- Public Member Functions inherited from CDataContainer
virtual bool add (CDataObject *pObject, const bool &adopt=true)
 
virtual bool appendDeletedDependentData (CUndoData &undoData) const
 
 CDataContainer (const CDataContainer &src, const CDataContainer *pParent)
 
 CDataContainer (const std::string &name, const CDataContainer *pParent=NO_PARENT, const std::string &type="CN", const CFlags< Flag > &flag=CFlags< Flag >::None)
 
virtual void createUndoData (CUndoData &undoData, const CUndoData::Type &type, const CData &oldData=CData(), const CCore::Framework &framework=CCore::Framework::ParticleNumbers) const override
 
virtual std::string getChildObjectUnits (const CDataObject *pObject) const
 
void getDescendants (CDataObject::DataObjectSet &descendants, const bool &recursive=false) const
 
virtual size_t getIndex (const CDataObject *pObject) const
 
virtual const CObjectInterfacegetObject (const CCommonName &cn) const override
 
virtual objectMapgetObjects ()
 
virtual const objectMapgetObjects () const
 
virtual const std::string getUnits () const override
 
virtual const CDataObjectgetValueObject () const override
 
virtual CUndoObjectInterfaceinsert (const CData &data) override
 
void objectRenamed (CDataObject *pObject, const std::string &oldName)
 
virtual bool remove (CDataObject *pObject)
 
virtual ~CDataContainer ()
 
- Public Member Functions inherited from CDataObject
void addIssue (const CIssue &issue)
 
void addReference (const CDataContainer *pReference)
 
virtual void calculateValue () override
 
 CDataObject (const CDataObject &src, const CDataContainer *pParent=NULL)
 
virtual void destruct () override
 
virtual CCommonName getCN () const override
 
virtual const CDataObjectgetDataObject () const override
 
virtual const std::string & getKey () const
 
CDataContainergetObjectAncestor (const std::string &type) const
 
CDataModelgetObjectDataModel () const
 
virtual std::string getObjectDisplayName () const override
 
const CObjectInterfacegetObjectFromCN (const CCommonName &cn) const
 
const std::string & getObjectName () const
 
CDataContainergetObjectParent () const
 
const std::string & getObjectType () const
 
virtual const CObjectInterface::ObjectSetgetPrerequisites () const override
 
virtual const CValiditygetValidity () const override
 
virtual void * getValuePointer () const override
 
bool hasFlag (const Flag &flag) const
 
virtual bool isPrerequisiteForContext (const CObjectInterface *pObject, const CCore::SimulationContextFlag &context, const CObjectInterface::ObjectSet &changedObjects) const override
 
bool prerequisitsContains (const DataObjectSet &objects) const
 
virtual void print (std::ostream *ostream) const override
 
void removeIssue (const CIssue &issue)
 
void removeReference (const CDataContainer *pReference)
 
bool setObjectName (const std::string &name)
 
virtual bool setObjectParent (const CDataContainer *pParent)
 
void validityChanged (const CValidity &changedValidity) override
 
void validityRemoved (const CValidity &changedValidity)
 
virtual ~CDataObject ()
 
- Public Member Functions inherited from CObjectInterface
 CObjectInterface ()
 
 CObjectInterface (const CObjectInterface &src)
 
virtual ~CObjectInterface ()
 
- Public Member Functions inherited from CUndoObjectInterface
 CUndoObjectInterface ()
 
 CUndoObjectInterface (const CUndoObjectInterface &src)
 
bool generateUuid ()
 
const xg::Guid & getUuid () const
 
bool setUuid (const std::string &uuid)
 
bool setUuid (const xg::Guid &uuid)
 
virtual void updateIndex (const size_t &index, const CUndoObjectInterface *pUndoObject)
 
virtual ~CUndoObjectInterface ()
 

Static Public Member Functions

static CExpressioncreateInitialExpression (const CExpression &expression, const CDataModel *pDataModel)
 
- Static Public Member Functions inherited from CEvaluationTree
static CEvaluationTreecopy (const CEvaluationTree &src)
 
static CEvaluationTreecreate (CEvaluationTree::Type type)
 
static CEvaluationNodefromAST (const ASTNode *pASTNode, bool isFunction)
 
static CEvaluationTreefromData (const CData &data, CUndoObjectInterface *pParent)
 
- Static Public Member Functions inherited from CDataContainer
static CDataContainerfromData (const CData &data, CUndoObjectInterface *pParent)
 
- Static Public Member Functions inherited from CDataObject
static CDataObjectfromData (const CData &data, CUndoObjectInterface *pParent)
 
static void sanitizeObjectName (std::string &name)
 
- Static Public Member Functions inherited from CObjectInterface
static const CDataObjectDataObject (const CObjectInterface *pInterface)
 
static CObjectInterfaceGetObjectFromCN (const ContainerList &listOfContainer, const CCommonName &objName)
 
- Static Public Member Functions inherited from CUndoObjectInterface
template<class CType >
static CType * fromData (const CData &, CUndoObjectInterface *)
 

Protected Attributes

std::string mDisplayString
 
bool mIsBoolean
 
const CObjectInterface::ContainerListmpListOfContainer
 
- Protected Attributes inherited from CEvaluationTree
CVector< CEvaluationNode * > mCalculationSequence
 
std::string mInfix
 
std::vector< CEvaluationNode * > * mpNodeList
 
const C_FLOAT64mpRootValue
 
CEvaluationTree::Type mType
 
C_FLOAT64 mValue
 
- Protected Attributes inherited from CDataContainer
objectMap mObjects
 
- Protected Attributes inherited from CDataObject
ObjectSet mPrerequisits
 
std::set< CDataContainer * > mReferences
 
- Protected Attributes inherited from CObjectInterface
CValidity mValidity
 

Private Member Functions

void initObjects ()
 

Additional Inherited Members

- Public Types inherited from CEvaluationTree
enum  Type {
  Function = 0 , MassAction , PreDefined , UserDefined ,
  Expression , MathExpression
}
 
- Public Types inherited from CDataContainer
typedef CDataObjectMap objectMap
 
- Public Types inherited from CDataObject
typedef std::set< const CDataObject * > DataObjectSet
 
enum  Flag {
  Container , Vector , Matrix , NameVector ,
  Reference , ValueBool , ValueInt , ValueInt64 ,
  ValueDbl , NonUniqueName , StaticString , ValueString ,
  Separator , DisplayName , ModelEntity , Array ,
  DataModel , Root , Gui , __SIZE
}
 
- Public Types inherited from CObjectInterface
typedef std::vector< const CDataContainer * > ContainerList
 
typedef std::set< const CObjectInterface * > ObjectSet
 
- Static Public Attributes inherited from CEvaluationTree
static const std::string TypeName []
 
static const char * XMLType []
 
- Static Public Attributes inherited from CDataContainer
static const CObjectInterface::ContainerList EmptyList
 
- Protected Member Functions inherited from CEvaluationTree
void buildCalculationSequence ()
 
void calculate ()
 
 CEvaluationTree (const CEvaluationTree &src)
 
void clearNodes ()
 
CIssue compileNodes ()
 
CIssue parse ()
 
void setType (const CEvaluationTree::Type &type)
 
- Protected Member Functions inherited from CDataContainer
template<class CType >
CDataMatrixReference< CType > * addMatrixReference (const std::string &name, CType &reference, const CFlags< Flag > &flag=CFlags< Flag >::None)
 
template<class CType >
CDataObjectReference< CType > * addObjectReference (const std::string &name, CType &reference, const CFlags< Flag > &flag=CFlags< Flag >::None)
 
template<class CType >
CDataVectorReference< CType > * addVectorReference (const std::string &name, CType &reference, const CFlags< Flag > &flag=CFlags< Flag >::None)
 
 CDataContainer (const CDataContainer &src)
 
void initObjects ()
 
- Protected Member Functions inherited from CDataObject
 CDataObject ()
 
 CDataObject (const std::string &name, const CDataContainer *pParent=static_cast< CDataContainer * >((void *) 0), const std::string &type="CN", const CFlags< Flag > &flag=CFlags< Flag >::None)
 

Constructor & Destructor Documentation

◆ CExpression() [1/2]

CExpression::CExpression ( const std::string &  name = "Expression",
const CDataContainer pParent = NO_PARENT 
)

Default constructor

Parameters
conststd::string & name (default: "Expression")
constCDataContainer * pParent (default: NULL)

References initObjects().

Referenced by createInitialExpression().

◆ CExpression() [2/2]

CExpression::CExpression ( const CExpression src,
const CDataContainer pParent 
)

Copy constructor

Parameters
const CExpression &src
constCDataContainer * pParent (default: NULL)

References CEvaluationTree::compile(), and initObjects().

◆ ~CExpression()

CExpression::~CExpression ( )
virtual

Destructor

Member Function Documentation

◆ calcValue()

const C_FLOAT64 & CExpression::calcValue ( )
virtual

◆ compile()

◆ createInitialExpression()

◆ getBerkeleyMadonnaString()

std::string CExpression::getBerkeleyMadonnaString ( ) const

Retrieve the display string in Berkeley Madonna syntax.

References CEvaluationNode::buildBerkeleyMadonnaString(), and CEvaluationTree::getRoot().

◆ getCCodeString()

std::string CExpression::getCCodeString ( ) const

Retrieve the display string in C syntax.

References CEvaluationNode::buildCCodeString(), and CEvaluationTree::getRoot().

◆ getDisplayString()

const std::string & CExpression::getDisplayString ( ) const

Retrieve the human readable display string. Note, the expression must be compiled for this return a displayable string.

Returns
const std::string & displayString

References mDisplayString.

◆ getListOfContainer()

const CObjectInterface::ContainerList & CExpression::getListOfContainer ( ) const

Retrieve the list of container used for compile

Returns
const CObjectInterface::ContainerList & listOfContainer

References mpListOfContainer.

◆ getNodeObject()

const CObjectInterface * CExpression::getNodeObject ( const CCommonName CN) const
overridevirtual

Retrieve a pointer to the object defined by CN. This method may only be called during compile() since the list mpListOfContainer is only valid then.

Parameters
constCCommonName & CN
Returns
const CObjectInterface * value

Reimplemented from CEvaluationTree.

References CEvaluationTree::getNodeObject(), CObjectInterface::getObject(), CObjectInterface::GetObjectFromCN(), and mpListOfContainer.

◆ getXPPString()

std::string CExpression::getXPPString ( ) const

Retrieve the display string in XPPAUT syntax.

References CEvaluationNode::buildXPPString(), and CEvaluationTree::getRoot().

◆ initObjects()

void CExpression::initObjects ( )
private

Initialize the contained CDataObjects

References CDataContainer::getObject().

Referenced by CExpression().

◆ refresh()

void CExpression::refresh ( )

Refresh the value of the expression

References calcValue().

◆ setInfix()

◆ setIsBoolean()

void CExpression::setIsBoolean ( const bool &  booleanRequired)

Set whether this a boolean expression or not

Parameters
constbool & isBoolean

References CEvaluationTree::isBoolean(), and mIsBoolean.

Referenced by CMathEvent::CTrigger::allocate(), CMathEvent::CTrigger::compile(), SBMLImporter::importEvent(), CMathObject::setExpression(), and CEvent::setTriggerExpression().

◆ updateInfix()

◆ writeMathML()

void CExpression::writeMathML ( std::ostream &  out,
bool  fullExpand,
size_t  l 
) const

Write display mathml of the expression into the ostream "out" level specifies indentation fullExpand==true means function calls are expanded

References CEvaluationNode::buildMMLString(), CEvaluationTree::getRoot(), and SPC.

Referenced by CMMLOutput::writeRHS_ModelEntity().

Member Data Documentation

◆ mDisplayString

std::string CExpression::mDisplayString
protected

Human readable display string.

Referenced by compile(), and getDisplayString().

◆ mIsBoolean

bool CExpression::mIsBoolean
protected

Indicates whether the expression is boolean or not.

Referenced by setInfix(), and setIsBoolean().

◆ mpListOfContainer

const CObjectInterface::ContainerList* CExpression::mpListOfContainer
protected

Pointer to the list of containers used for compilation.

Referenced by compile(), getListOfContainer(), and getNodeObject().


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