OS  2.10.1
OSExpressionTree.h
Go to the documentation of this file.
1 /* $Id: OSExpressionTree.h 4996 2015-04-14 20:38:45Z Gassmann $ */
15 #ifndef EXPRESSIONTREE_H
16 #define EXPRESSIONTREE_H
17 
18 #include "OSnLNode.h"
19 #include <vector>
20 #include <map>
21 
22 class ExprNode;
23 class OSnLNode;
24 class OSnLMNode;
25 
38 {
39 public:
44 
49 
55  std::map<int, int> *mapVarIdx;
56 
65  //virtual std::map<int, int> *getVariableIndicesMap();
66 
71 
77 
82 
86  bool IsEqual(OSExpressionTree *that);
87 };//end OSExpressionTree
88 
89 
100 {
101 public:
102 
107 
112 
117 
121  bool IsEqual(ScalarExpressionTree *that);
122 
131  std::vector<ExprNode*> getPrefixFromExpressionTree();
132 
141  std::vector<ExprNode*> getPostfixFromExpressionTree();
142 
151  std::map<int, int> *getVariableIndicesMap();
152 
153 #if 0
154 
158 
163  bool bADMustReTape;
164 
168  bool bDestroyNlNodes;
169 #endif
170 
182  double calculateFunction( double *x, bool new_x);
183 
189  //bool deepCopyFrom(ScalarExpressionTree *that);
190 
191 private:
195  double m_dTreeRootValue;
196 };//end ScalarExpressionTree
197 
198 
209 {
210 public:
215 
220 
225 
229  bool IsEqual(MatrixExpressionTree *that);
230 
239  std::vector<ExprNode*> getPrefixFromExpressionTree();
240 
249  std::vector<ExprNode*> getPostfixFromExpressionTree();
250 
259  //std::map<int, int> *getVariableIndicesMap();
260 
261 #if 0
262 
266 
271  bool bADMustReTape;
272 
276  bool bDestroyNlNodes;
277 
289  double calculateFunction( double *x, bool new_x);
290 #endif
291 
292 private:
293 
297  //double m_dTreeRootValue;
298 };//end MatrixExpressionTree
299 
300 #endif
301 
OSnLNode * m_treeRoot
m_treeRoot holds the root node (of OSnLNode type) of the expression tree.
Used to hold the instance in memory.
bool m_bIndexMapGenerated
Retrieve a map of the indices of the variables that are in the expression tree.
The OSnLMNode Class for nonlinear expressions involving matrices.
Definition: OSnLNode.h:1760
OSExpressionTree()
default constructor.
~OSExpressionTree()
default destructor.
bool IsEqual(OSExpressionTree *that)
A function to check for the equality of two objects.
bool bDestroyNlNodes
m_bDestroyNlNodes is true if the destructor deletes the nodes in the Expression tree ...
Used to hold part of the instance in memory.
Used to hold the instance in memory.
A generic class from which we derive both OSnLNode and OSnLMNode.
Definition: OSnLNode.h:56
This file defines the OSnLNode class along with its derived classes.
OSnLMNode * m_treeRoot
m_treeRoot holds the root node (of OSnLMNode type) of the expression tree.
std::map< int, int > * mapVarIdx
m_mapVarIdx is a map used to generate the infix expression for AD the key is idx, a variable number; ...
bool bADMustReTape
is true if an AD Expression Tree has an expression that can change depending on the value of the inpu...
The OSnLNode Class for nonlinear expressions.
Definition: OSnLNode.h:179