Public Member Functions | Public Attributes | List of all members
OSnLNodeVariable Class Reference

The OSnLNodeVariable Class. More...

#include <OSnLNode.h>

Inheritance diagram for OSnLNodeVariable:
Inheritance graph
[legend]
Collaboration diagram for OSnLNodeVariable:
Collaboration graph
[legend]

Public Member Functions

 OSnLNodeVariable ()
 default constructor. More...
 
 ~OSnLNodeVariable ()
 default destructor. More...
 
virtual void getVariableIndexMap (std::map< int, int > *varIdx)
 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. More...
 
virtual std::string getTokenNumber ()
 
virtual std::string getTokenName ()
 
virtual std::string getNonlinearExpressionInXML ()
 
virtual double calculateFunction (double *x)
 Calculate the function value given the current variable values. More...
 
virtual OSnLNodecloneExprNode ()
 The implementation of the virtual functions. More...
 
virtual OSnLNodecopyNodeAndDescendants ()
 make a copy of this node and all its descendants More...
 
virtual ADdouble constructADTape (std::map< int, int > *ADIdx, ADvector *XAD)
 The implementation of the virtual functions. More...
 
virtual bool IsEqual (OSnLNodeVariable *that)
 A function to check for the equality of two objects. More...
 
- Public Member Functions inherited from OSnLNode
 OSnLNode ()
 default constructor. More...
 
virtual ~OSnLNode ()
 default destructor. More...
 
OSnLNodecreateExpressionTreeFromPrefix (std::vector< ExprNode * > nlNodeVec)
 Take a vector of ExprNodes (OSnLNodes and OSnLMNodes) in prefix format and create a scalar-valued OSExpressionTree root node. More...
 
virtual std::vector< ExprNode * > getPrefixFromExpressionTree ()
 Get a vector of pointers to OSnLNodes and OSnLMNodes that correspond to the (scalar-valued or matrix-valued) expression tree in prefix format. More...
 
virtual std::vector< ExprNode * > preOrderOSnLNodeTraversal (std::vector< ExprNode * > *prefixVector)
 Called by getPrefixFromExpressionTree(). More...
 
OSnLNodecreateExpressionTreeFromPostfix (std::vector< ExprNode * > nlNodeVec)
 Take a vector of ExprNodes (OSnLNodes and OSnLMNodes) in postfix format and create a scalar-valued OSExpressionTree root node. More...
 
virtual std::vector< ExprNode * > getPostfixFromExpressionTree ()
 Get a vector of pointers to ExprNodes that correspond to the expression tree in postfix format. More...
 
virtual std::vector< ExprNode * > postOrderOSnLNodeTraversal (std::vector< ExprNode * > *postfixVector)
 Called by getPostfixFromExpressionTree(). More...
 
bool IsEqual (OSnLNode *that)
 A function to check for the equality of two objects. More...
 
- Public Member Functions inherited from ExprNode
 ExprNode ()
 default constructor. More...
 
virtual ~ExprNode ()
 default destructor. More...
 
virtual bool IsEqual (ExprNode *that)
 A function to check for the equality of two objects. More...
 

Public Attributes

double coef
 coef is an option coefficient on the variable, the default value is 1.0 More...
 
int idx
 idx is the index of the variable More...
 
- Public Attributes inherited from OSnLNode
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...
 
- Public Attributes inherited from ExprNode
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...
 

Detailed Description

The OSnLNodeVariable Class.

Author
Robert Fourer, Jun Ma, Kipp Martin
Version
1.0, 10/05/2005
Since
OS1.0
Remarks
The in-memory representation of the OSnL element <variable>

Definition at line 1478 of file OSnLNode.h.

Constructor & Destructor Documentation

OSnLNodeVariable::OSnLNodeVariable ( )

default constructor.

Definition at line 1973 of file OSnLNode.cpp.

OSnLNodeVariable::~OSnLNodeVariable ( )

default destructor.

Definition at line 1985 of file OSnLNode.cpp.

Member Function Documentation

void OSnLNodeVariable::getVariableIndexMap ( std::map< int, int > *  varIdx)
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

Parameters
apointer to a map of the variables in the OSnLNode and its children

Reimplemented from OSnLNode.

Definition at line 2072 of file OSnLNode.cpp.

std::string OSnLNodeVariable::getTokenNumber ( )
virtual
Returns
a string token that corresponds to the OSnLNode.

Reimplemented from ExprNode.

Definition at line 1995 of file OSnLNode.cpp.

std::string OSnLNodeVariable::getTokenName ( )
virtual
Returns
a std::string token that corresponds to the OSnLNode.

Implements ExprNode.

Definition at line 2012 of file OSnLNode.cpp.

std::string OSnLNodeVariable::getNonlinearExpressionInXML ( )
virtual
Returns
the OSiL XML for the variable node.

Reimplemented from ExprNode.

Definition at line 2029 of file OSnLNode.cpp.

double OSnLNodeVariable::calculateFunction ( double *  x)
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.

Parameters
xholds the values of the variables in a double array.
Returns
the function value given the current variable values.

Implements OSnLNode.

Definition at line 2059 of file OSnLNode.cpp.

OSnLNode * OSnLNodeVariable::cloneExprNode ( )
virtual

The implementation of the virtual functions.

Returns
a pointer to a new OSnLNode of the proper type.

Implements ExprNode.

Definition at line 2088 of file OSnLNode.cpp.

OSnLNode * OSnLNodeVariable::copyNodeAndDescendants ( )
virtual

make a copy of this node and all its descendants

Returns
a pointer to the duplicate node

Reimplemented from OSnLNode.

Definition at line 2096 of file OSnLNode.cpp.

double OSnLNodeVariable::constructADTape ( std::map< int, int > *  ADIdx,
ADvector XAD 
)
virtual

The implementation of the virtual functions.

Returns
a ADdouble.

Implements OSnLNode.

Definition at line 2065 of file OSnLNode.cpp.

bool OSnLNodeVariable::IsEqual ( OSnLNodeVariable that)
virtual

A function to check for the equality of two objects.

Definition at line 2135 of file OSnLNode.cpp.

Member Data Documentation

double OSnLNodeVariable::coef

coef is an option coefficient on the variable, the default value is 1.0

Definition at line 1485 of file OSnLNode.h.

int OSnLNodeVariable::idx

idx is the index of the variable

Definition at line 1488 of file OSnLNode.h.


The documentation for this class was generated from the following files: