#include <OSExpressionTree.h>
Public Member Functions | |
OSExpressionTree () | |
default constructor. | |
~OSExpressionTree () | |
default destructor. | |
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 indicies 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 constructCppADTape(std::map<int, int> *varIdx, CppAD::vector< AD<double> > *XAD) to generate the infix expression for CPPAD -- 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 | bCppADMustReTape |
is true if a CppAD 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 | |
std::map< int, int > ::iterator | m_mPosVarIdx |
posVarIdx is a map iterator used by the map varIdx | |
CppAD::AD< double > | m_CppADTape |
m_CppADTape stores the espression tree for m_treeRoot as an AD<double>. | |
double | m_dTreeRootValue |
m_dTreeRootValue is the function value of the root node |
Definition at line 35 of file OSExpressionTree.h.
OSExpressionTree::OSExpressionTree | ( | ) |
OSExpressionTree::~OSExpressionTree | ( | ) |
default destructor.
Definition at line 33 of file OSExpressionTree.cpp.
References bDestroyNlNodes, m_treeRoot, and mapVarIdx.
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 58 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 52 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 47 of file OSExpressionTree.cpp.
References OSnLNode::getPostfixFromExpressionTree(), and m_treeRoot.
std::map< int, int > * OSExpressionTree::getVariableIndiciesMap | ( | ) |
Retrieve a map of the indicies of the variables that are in the expression tree.
Definition at line 69 of file OSExpressionTree.cpp.
References OSnLNode::getVariableIndexMap(), m_bIndexMapGenerated, m_mPosVarIdx, 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 42 of file OSExpressionTree.h.
Referenced by OSInstance::addQTermsToExressionTree(), calculateFunction(), OSnl2osil::createOSInstance(), OSInstance::getAllNonlinearExpressionTrees(), OSInstance::getLagrangianExpTree(), OSInstance::getNonlinearExpressionTreeInPostfix(), OSInstance::getNonlinearExpressionTreeInPrefix(), OSInstance::getNonlinearExpressionTreeModInPostfix(), OSInstance::getNonlinearExpressionTreeModInPrefix(), getPostfixFromExpressionTree(), getPrefixFromExpressionTree(), OSInstance::getSparseJacobianFromColumnMajor(), getVariableIndiciesMap(), main(), OSInstance::setQuadraticTermsInNonlinearExpressions(), OSiLWriter::writeOSiL(), and ~OSExpressionTree().
std::map<int, int>* OSExpressionTree::mapVarIdx |
m_mvarIdx is a map used by constructCppADTape(std::map<int, int> *varIdx, CppAD::vector< AD<double> > *XAD) to generate the infix expression for CPPAD -- the key is idx a variable number, the value of the map is the corresponding variable count in sparse representation
Definition at line 97 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 111 of file OSExpressionTree.h.
Referenced by OSInstance::addQTermsToExressionTree(), OSInstance::getAllNonlinearVariablesIndexMap(), and getVariableIndiciesMap().
is true if a CppAD 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 117 of file OSExpressionTree.h.
m_bDestroyNlNodes if the destructor deletes the OSnLNodes in the Expression tree
Definition at line 122 of file OSExpressionTree.h.
Referenced by OSInstance::getAllNonlinearExpressionTrees(), and ~OSExpressionTree().
std::map<int, int>::iterator OSExpressionTree::m_mPosVarIdx [private] |
posVarIdx is a map iterator used by the map varIdx
Definition at line 130 of file OSExpressionTree.h.
Referenced by getVariableIndiciesMap().
CppAD::AD<double> OSExpressionTree::m_CppADTape [private] |
m_CppADTape stores the espression tree for m_treeRoot as an AD<double>.
Definition at line 135 of file OSExpressionTree.h.
double OSExpressionTree::m_dTreeRootValue [private] |
m_dTreeRootValue is the function value of the root node
Definition at line 141 of file OSExpressionTree.h.
Referenced by calculateFunction().