#include <OSExpressionTree.h>
Collaboration diagram for OSExpressionTree:
Public Member Functions | |
OSExpressionTree () | |
default constructor. | |
~OSExpressionTree () | |
default destructor. | |
bool | IsEqual (OSExpressionTree *that) |
A function to check for the equality of two objects. | |
double | calculateFunction (double *x, bool new_x) |
Calculate the expression tree function value given the current variable values using the calculateFunciton method of OSnLNode. | |
std::vector< OSnLNode * > | getPrefixFromExpressionTree () |
Get a vector of pointers to OSnLNodes that correspond to the OSExpressionTree in prefix format. | |
std::vector< OSnLNode * > | getPostfixFromExpressionTree () |
Get a vector of pointers to OSnLNodes that correspond to the OSExpressionTree in postfix format. | |
std::map< int, int > * | getVariableIndiciesMap () |
Retrieve a map of the indices of the variables that are in the expression tree. | |
Public Attributes | |
OSnLNode * | m_treeRoot |
m_treeRoot holds the root node (of OSnLNode type) of the expression tree. | |
std::map< int, int > * | mapVarIdx |
m_mvarIdx is a map used by constructADTape(std::map<int, int> *varIdx, AD::vector< AD<double> > *XAD) to generate the infix expression for AD -- the key is idx a variable number, the value of the map is the corresponding variable count in sparse representation | |
bool | m_bIndexMapGenerated |
m_bIndexMapGenerated is set to true if getVariableIndiciesMap() has been called | |
bool | bADMustReTape |
is true if a AD Expresion Tree has an expression that can change depending on the value of the input, e.g. | |
bool | bDestroyNlNodes |
m_bDestroyNlNodes if the destructor deletes the OSnLNodes in the Expression tree | |
Private Attributes | |
double | m_dTreeRootValue |
m_dTreeRootValue is the function value of the root node |
Definition at line 33 of file OSExpressionTree.h.
OSExpressionTree::OSExpressionTree | ( | ) |
OSExpressionTree::~OSExpressionTree | ( | ) |
default destructor.
Definition at line 33 of file OSExpressionTree.cpp.
References bDestroyNlNodes, m_treeRoot, and mapVarIdx.
bool OSExpressionTree::IsEqual | ( | OSExpressionTree * | that | ) |
A function to check for the equality of two objects.
Definition at line 93 of file OSExpressionTree.cpp.
References m_treeRoot.
double OSExpressionTree::calculateFunction | ( | double * | x, | |
bool | new_x | |||
) |
Calculate the expression tree function value given the current variable values using the calculateFunciton method of OSnLNode.
If the function has been calculated, the method will retrieve it.
x | holds the values of the variables in a double array. | |
new_x | is false if any evaluation method was previously called for the current x |
Definition at line 63 of file OSExpressionTree.cpp.
References OSnLNode::calculateFunction(), m_dTreeRootValue, and m_treeRoot.
std::vector< OSnLNode * > OSExpressionTree::getPrefixFromExpressionTree | ( | ) |
Get a vector of pointers to OSnLNodes that correspond to the OSExpressionTree in prefix format.
Definition at line 56 of file OSExpressionTree.cpp.
References OSnLNode::getPrefixFromExpressionTree(), and m_treeRoot.
std::vector< OSnLNode * > OSExpressionTree::getPostfixFromExpressionTree | ( | ) |
Get a vector of pointers to OSnLNodes that correspond to the OSExpressionTree in postfix format.
Definition at line 50 of file OSExpressionTree.cpp.
References OSnLNode::getPostfixFromExpressionTree(), and m_treeRoot.
std::map< int, int > * OSExpressionTree::getVariableIndiciesMap | ( | ) |
Retrieve a map of the indices of the variables that are in the expression tree.
Definition at line 77 of file OSExpressionTree.cpp.
References OSnLNode::getVariableIndexMap(), m_bIndexMapGenerated, m_treeRoot, and mapVarIdx.
Referenced by OSInstance::addQTermsToExressionTree(), OSInstance::getAllNonlinearVariablesIndexMap(), and OSInstance::getLagrangianExpTree().
m_treeRoot holds the root node (of OSnLNode type) of the expression tree.
Definition at line 41 of file OSExpressionTree.h.
Referenced by OSInstance::addQTermsToExressionTree(), CouenneSolver::buildSolverInstance(), calculateFunction(), OSgams2osil::createOSInstance(), OSInstance::getAllNonlinearExpressionTrees(), OSInstance::getLagrangianExpTree(), OSInstance::getNonlinearExpressionTreeInPostfix(), OSInstance::getNonlinearExpressionTreeInPrefix(), OSInstance::getNonlinearExpressionTreeModInPostfix(), OSInstance::getNonlinearExpressionTreeModInPrefix(), getPostfixFromExpressionTree(), getPrefixFromExpressionTree(), OSInstance::getSparseJacobianFromColumnMajor(), getVariableIndiciesMap(), IsEqual(), main(), OSInstance::setQuadraticTermsInNonlinearExpressions(), and ~OSExpressionTree().
std::map<int, int>* OSExpressionTree::mapVarIdx |
m_mvarIdx is a map used by constructADTape(std::map<int, int> *varIdx, AD::vector< AD<double> > *XAD) to generate the infix expression for AD -- the key is idx a variable number, the value of the map is the corresponding variable count in sparse representation
Definition at line 101 of file OSExpressionTree.h.
Referenced by OSInstance::addQTermsToExressionTree(), OSInstance::getAllNonlinearVariablesIndexMap(), OSInstance::getFirstOrderResults(), OSInstance::getSecondOrderResults(), getVariableIndiciesMap(), and ~OSExpressionTree().
m_bIndexMapGenerated is set to true if getVariableIndiciesMap() has been called
Definition at line 115 of file OSExpressionTree.h.
Referenced by OSInstance::addQTermsToExressionTree(), OSInstance::getAllNonlinearVariablesIndexMap(), and getVariableIndiciesMap().
is true if a AD Expresion Tree has an expression that can change depending on the value of the input, e.g.
an if statement -- false by default
Definition at line 121 of file OSExpressionTree.h.
m_bDestroyNlNodes if the destructor deletes the OSnLNodes in the Expression tree
Definition at line 126 of file OSExpressionTree.h.
Referenced by OSInstance::getAllNonlinearExpressionTrees(), and ~OSExpressionTree().
double OSExpressionTree::m_dTreeRootValue [private] |
m_dTreeRootValue is the function value of the root node
Definition at line 135 of file OSExpressionTree.h.
Referenced by calculateFunction().