OS
2.9.3
|
The OSnLNode Class for nonlinear expressions. More...
#include <OSnLNode.h>
Public Member Functions | |
OSnLNode () | |
default constructor. More... | |
virtual | ~OSnLNode () |
default destructor. More... | |
virtual void | getVariableIndexMap (std::map< int, int > *varIdx) |
virtual double | calculateFunction (double *x)=0 |
virtual ADdouble | constructADTape (std::map< int, int > *ADIdx, ADvector *XAD)=0 |
OSnLNode * | createExpressionTreeFromPrefix (std::vector< ExprNode * > nlNodeVec) |
virtual std::vector< ExprNode * > | getPrefixFromExpressionTree () |
virtual std::vector< ExprNode * > | preOrderOSnLNodeTraversal (std::vector< ExprNode * > *prefixVector) |
OSnLNode * | createExpressionTreeFromPostfix (std::vector< ExprNode * > nlNodeVec) |
virtual std::vector< ExprNode * > | getPostfixFromExpressionTree () |
virtual std::vector< ExprNode * > | postOrderOSnLNodeTraversal (std::vector< ExprNode * > *postfixVector) |
OSnLNode * | copyNodeAndDescendants () |
make a copy of this node and all its descendants More... | |
bool | IsEqual (OSnLNode *that) |
A function to check for the equality of two objects. More... | |
![]() | |
ExprNode () | |
default constructor. More... | |
virtual | ~ExprNode () |
default destructor. More... | |
virtual std::string | getTokenNumber () |
virtual std::string | getTokenName ()=0 |
virtual std::string | getNonlinearExpressionInXML () |
virtual ExprNode * | cloneExprNode ()=0 |
virtual bool | IsEqual (ExprNode *that) |
A function to check for the equality of two objects. More... | |
Public Attributes | |
double | m_dFunctionValue |
m_dFunctionValue holds the function value given the current variable values. More... | |
ADdouble | m_ADTape |
m_ADTape stores the expression tree for the this OSnLNode as an ADdouble. More... | |
![]() | |
int | inodeInt |
inodeInt is the unique integer assigned to the OSnLNode or OSnLMNode in OSParameters.h. More... | |
int | inodeType |
inodeType essentially tracks whether the number of children are known or not. More... | |
unsigned int | inumberOfChildren |
inumberOfChildren is the number of OSnLNode child elements If this number is not fixed, e.g., for a sum node, it is temporarily set to 0 More... | |
unsigned int | inumberOfMatrixChildren |
inumberOfMatrixChildren is the number of OSnLMNode child elements If this number is not fixed, e.g., for a matrixProduct node, it is temporarily set to 0 More... | |
OSnLNode ** | m_mChildren |
m_mChildren holds all the operands, that is, nodes that the current node operates on. More... | |
OSnLMNode ** | m_mMatrixChildren |
m_mMatrixChildren holds all the matrix-valued operands, if any. More... | |
The OSnLNode Class for nonlinear expressions.
Definition at line 192 of file OSnLNode.h.
OSnLNode::OSnLNode | ( | ) |
default constructor.
|
virtual |
default destructor.
|
virtual |
varIdx is a map where the key is the index of an OSnLNodeVariable and (*varIdx)[ idx] is the kth variable in the map, e.g. (*varIdx)[ 5] = 2 means that variable indexed by 5 is the second variable in the OSnLNode and all of its children
a | pointer to a map of the variables in the OSnLNode and its children |
Reimplemented in OSnLNodeVariable.
|
pure virtual |
Calculate the function value given the current variable values. This is an abstract method which is required to be implemented by the concrete operator nodes that derive or extend from this OSnLNode class.
x | holds the values of the variables in a double array. |
Implemented in OSnLNodeMatrixToScalar, OSnLNodeMatrixTrace, OSnLNodeMatrixDeterminant, OSnLNodeAllDiff, OSnLNodeVariable, OSnLNodePI, OSnLNodeE, OSnLNodeNumber, OSnLNodeIf, OSnLNodeErf, OSnLNodeAbs, OSnLNodeExp, OSnLNodeSin, OSnLNodeCos, OSnLNodeSquare, OSnLNodeSqrt, OSnLNodeLn, OSnLNodeProduct, OSnLNodePower, OSnLNodeDivide, OSnLNodeTimes, OSnLNodeNegate, OSnLNodeMinus, OSnLNodeMin, OSnLNodeMax, OSnLNodeSum, and OSnLNodePlus.
|
pure virtual |
Create the AD tape to be evaluated by AD. This is an abstract method which is required to be implemented by the concrete operator nodes that derive or extend from this OSnLNode class.
Implemented in OSnLNodeMatrixToScalar, OSnLNodeMatrixTrace, OSnLNodeMatrixDeterminant, OSnLNodeAllDiff, OSnLNodeVariable, OSnLNodePI, OSnLNodeE, OSnLNodeNumber, OSnLNodeIf, OSnLNodeErf, OSnLNodeAbs, OSnLNodeExp, OSnLNodeSin, OSnLNodeCos, OSnLNodeSquare, OSnLNodeSqrt, OSnLNodeLn, OSnLNodeProduct, OSnLNodePower, OSnLNodeDivide, OSnLNodeTimes, OSnLNodeNegate, OSnLNodeMinus, OSnLNodeMin, OSnLNodeMax, OSnLNodeSum, and OSnLNodePlus.
Take a vector of ExprNodes (OSnLNodes and OSnLMNodes) in prefix format and create a scalar-valued OSExpressionTree root node
nlNodeVec | holds a vector of pointers to OSnLNodes and OSnLMNodes in prefix format |
|
virtual |
Get a vector of pointers to OSnLNodes and OSnLMNodes that correspond to the (scalar-valued or matrix-valued) expression tree in prefix format.
Reimplemented from ExprNode.
|
virtual |
Called by getPrefixFromExpressionTree(). This method calls itself recursively and generates a vector of pointers to ExprNode in prefix
a | pointer prefixVector to a vector of pointers of ExprNodes |
Reimplemented from ExprNode.
Take a vector of ExprNodes (OSnLNodes and OSnLMNodes) in postfix format and create a scalar-valued OSExpressionTree root node
nlNodeVec | holds a vector of pointers to OSnLNodes in postfix format |
|
virtual |
Get a vector of pointers to ExprNodes that correspond to the expression tree in postfix format
Reimplemented from ExprNode.
|
virtual |
Called by getPostfixFromExpressionTree(). This method calls itself recursively and generates a vector of pointers to ExprNodes in postfix.
a | pointer postfixVector to a vector of pointers of ExprNodes |
Reimplemented from ExprNode.
OSnLNode* OSnLNode::copyNodeAndDescendants | ( | ) |
make a copy of this node and all its descendants
bool OSnLNode::IsEqual | ( | OSnLNode * | that | ) |
A function to check for the equality of two objects.
double OSnLNode::m_dFunctionValue |
m_dFunctionValue holds the function value given the current variable values.
Definition at line 198 of file OSnLNode.h.
ADdouble OSnLNode::m_ADTape |
m_ADTape stores the expression tree for the this OSnLNode as an ADdouble.
Definition at line 203 of file OSnLNode.h.