Minsky
MathDAG::Node Struct Referenceabstract

#include <equations.h>

Inheritance diagram for MathDAG::Node:
Inheritance graph
Collaboration diagram for MathDAG::Node:
Collaboration graph

Public Member Functions

virtual ~Node ()
 
virtual int BODMASlevel () const =0
 algebraic heirarchy level, used for working out whether brackets are necessary. More...
 
virtual ostream & latex (ostream &) const =0
 writes LaTeX representation of this DAG to the stream More...
 
std::string latexStr () const
 
virtual ostream & matlab (ostream &) const =0
 writes a matlab representation of this DAG to the stream More...
 
std::string matlabStr () const
 
virtual void render (ecolab::cairo::Surface &surf) const =0
 renders a visual representation of this node to surf graphic extends right from the current pen position (which needs to be defined), and pen is moved to the right edge of the graphic. The determine bounding box, render into a recording surface, and use width()/height() More...
 
virtual VariableValuePtr addEvalOps (EvalOpVector &, const VariableValuePtr &result={})=0
 adds EvalOps to an EvalOpVector representing this node. More...
 
virtual int order (unsigned maxOrder) const =0
 returns evaluation order in sequence of variable defintions More...
 
virtual bool tensorEval (std::set< const Node *> &visited) const =0
 returns true if the evaluation of this involves tensor processing More...
 
bool tensorEval ()
 returns true if the evaluation of this involves tensor processing More...
 
LaTeXManip latex () const
 used within io streaming More...
 
MatlabManip matlab () const
 
virtual std::shared_ptr< Nodederivative (SystemOfEquations &) const =0
 support for the derivative operator. More...
 

Public Attributes

int cachedOrder =-1
 
VariableValuePtr result
 reference to where this node's value is stored More...
 

Detailed Description

Definition at line 83 of file equations.h.

Constructor & Destructor Documentation

◆ ~Node()

virtual MathDAG::Node::~Node ( )
inlinevirtual

Definition at line 85 of file equations.h.

85 {}

Member Function Documentation

◆ addEvalOps()

virtual VariableValuePtr MathDAG::Node::addEvalOps ( EvalOpVector ,
const VariableValuePtr result = {} 
)
pure virtual

adds EvalOps to an EvalOpVector representing this node.

Returns
a variable where the result is stored. If a flowVariable has been provided in result, that may be used directly, otherwise a copy operation is added to ensure it receives the result.

Implemented in MathDAG::LockDAG, MathDAG::OperationDAGBase, MathDAG::IntegralInputVariableDAG, MathDAG::VariableDAG, and MathDAG::ConstantDAG.

Referenced by MathDAG::LockDAG::addEvalOps().

Here is the caller graph for this function:

◆ BODMASlevel()

virtual int MathDAG::Node::BODMASlevel ( ) const
pure virtual

algebraic heirarchy level, used for working out whether brackets are necessary.

Implemented in MathDAG::LockDAG, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::VariableDAG, and MathDAG::ConstantDAG.

◆ derivative()

virtual std::shared_ptr<Node> MathDAG::Node::derivative ( SystemOfEquations ) const
pure virtual

support for the derivative operator.

Implemented in MathDAG::LockDAG, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::VariableDAG, and MathDAG::ConstantDAG.

Referenced by MathDAG::SystemOfEquations::derivative().

Here is the caller graph for this function:

◆ latex() [1/2]

virtual ostream& MathDAG::Node::latex ( ostream &  ) const
pure virtual

writes LaTeX representation of this DAG to the stream

Implemented in MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::LockDAG, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::VariableDAG, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::ConstantDAG, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, and MathDAG::OperationDAG< OperationType::subtract >.

Referenced by MathDAG::operator<<().

Here is the caller graph for this function:

◆ latex() [2/2]

LaTeXManip MathDAG::Node::latex ( ) const
inline

used within io streaming

Definition at line 119 of file equations.h.

119 {return LaTeXManip(*this);}

◆ latexStr()

std::string MathDAG::Node::latexStr ( ) const
inline

Definition at line 92 of file equations.h.

References MathDAG::latex().

92 {ostringstream o; latex(o); return o.str();}
LaTeXManip latex() const
used within io streaming
Definition: equations.h:119
Here is the call graph for this function:

◆ matlab() [1/2]

virtual ostream& MathDAG::Node::matlab ( ostream &  ) const
pure virtual

writes a matlab representation of this DAG to the stream

Implemented in MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::LockDAG, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::VariableDAG, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::ConstantDAG, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::OperationDAG< T >, and MathDAG::OperationDAG< OperationType::subtract >.

Referenced by MathDAG::operator<<().

Here is the caller graph for this function:

◆ matlab() [2/2]

MatlabManip MathDAG::Node::matlab ( ) const
inline

Definition at line 120 of file equations.h.

120 {return MatlabManip(*this);}

◆ matlabStr()

std::string MathDAG::Node::matlabStr ( ) const
inline

Definition at line 95 of file equations.h.

95 {ostringstream o; matlab(o); return o.str();}
MatlabManip matlab() const
Definition: equations.h:120

◆ order()

virtual int MathDAG::Node::order ( unsigned  maxOrder) const
pure virtual

returns evaluation order in sequence of variable defintions

Parameters
maxOrderis used to limit the recursion depth

Implemented in MathDAG::LockDAG, MathDAG::GodleyColumnDAG, MathDAG::OperationDAGBase, MathDAG::VariableDAG, and MathDAG::ConstantDAG.

Referenced by MathDAG::VariableDAG::order(), and MathDAG::LockDAG::order().

Here is the caller graph for this function:

◆ render()

virtual void MathDAG::Node::render ( ecolab::cairo::Surface &  surf) const
pure virtual

renders a visual representation of this node to surf graphic extends right from the current pen position (which needs to be defined), and pen is moved to the right edge of the graphic. The determine bounding box, render into a recording surface, and use width()/height()

Implemented in MathDAG::LockDAG, MathDAG::OperationDAG< T >, MathDAG::OperationDAG< OperationType::subtract >, MathDAG::VariableDAG, and MathDAG::ConstantDAG.

Referenced by MathDAG::anonymous_namespace{equationDisplayRender.cc}::variableRender().

Here is the caller graph for this function:

◆ tensorEval() [1/2]

virtual bool MathDAG::Node::tensorEval ( std::set< const Node *> &  visited) const
pure virtual

returns true if the evaluation of this involves tensor processing

Parameters
visitedset to break graph cycles

Implemented in MathDAG::LockDAG, MathDAG::OperationDAGBase, MathDAG::VariableDAG, and MathDAG::ConstantDAG.

◆ tensorEval() [2/2]

bool MathDAG::Node::tensorEval ( )
inline

returns true if the evaluation of this involves tensor processing

Definition at line 116 of file equations.h.

References tensorEval().

Referenced by tensorEval().

116 {std::set<const Node*> visited; return tensorEval(visited);}
bool tensorEval()
returns true if the evaluation of this involves tensor processing
Definition: equations.h:116
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ cachedOrder

int MathDAG::Node::cachedOrder =-1
mutable

Definition at line 117 of file equations.h.

◆ result

VariableValuePtr MathDAG::Node::result

reference to where this node's value is stored

Definition at line 128 of file equations.h.

Referenced by MathDAG::LockDAG::addEvalOps().


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