#include <SmiScenarioTree.hpp>
Public Member Functions | |
Iterators | |
vector< T >::iterator | treeBegin () |
begin | |
vector< T >::iterator | treeEnd () |
end | |
vector< T > & | wholeTree () |
whole tree | |
vector< T >::iterator | scenBegin (int s) |
scenario iterators TODO: native code for these iterators that does not depend on copying. | |
vector< T >::iterator | scenEnd (int s) |
begin | |
Query members | |
SmiTreeNode< T > * | getRoot () |
Get root node. | |
SmiTreeNode< T > * | getLeaf (int scn) |
Get leaf node. | |
SmiTreeNode< T > * | find (unsigned int scenario, int stage) |
Get node identified by scenario/stage. | |
int | getNumScenarios () |
get number of scenarios | |
SmiTreeNode< T > * | find (vector< int > &label) |
Get node identified by longest match to array of labels. | |
vector< T > & | getScenario (int scenario) |
Get vector of node data for given scenario. | |
Tree modification members | |
int | addPathtoLeaf (int brscenario, int stage, vector< T > &pathdata, unsigned int start=0) |
Add new path from branching node to leaf. | |
void | setChildLabels (SmiTreeNode< T > *n, vector< int > labels) |
Set child labels. | |
int | addPathtoLeaf (vector< int >labels, vector< T > &pathdata) |
Add new path using labels to find branching node. | |
Constructors, destructors and major modifying methods | |
SmiScenarioTree () | |
Default Constructor creates an empty scenario tree. | |
virtual | ~SmiScenarioTree () |
Destructor. | |
Private Attributes | |
vector< T > | node_data |
vector< T > | scen_data |
vector< SmiTreeNode< T > * > | leaf_ |
SmiTreeNode< T > * | root_ |
Definition at line 172 of file SmiScenarioTree.hpp.
SmiScenarioTree< T >::SmiScenarioTree | ( | ) | [inline] |
Default Constructor creates an empty scenario tree.
virtual SmiScenarioTree< T >::~SmiScenarioTree | ( | ) | [inline, virtual] |
vector<T>::iterator SmiScenarioTree< T >::treeBegin | ( | ) | [inline] |
vector<T>::iterator SmiScenarioTree< T >::treeEnd | ( | ) | [inline] |
vector<T>& SmiScenarioTree< T >::wholeTree | ( | ) | [inline] |
vector<T>::iterator SmiScenarioTree< T >::scenBegin | ( | int | s | ) | [inline] |
scenario iterators TODO: native code for these iterators that does not depend on copying.
Definition at line 191 of file SmiScenarioTree.hpp.
vector<T>::iterator SmiScenarioTree< T >::scenEnd | ( | int | s | ) | [inline] |
SmiTreeNode<T>* SmiScenarioTree< T >::getRoot | ( | ) | [inline] |
Get root node.
Definition at line 209 of file SmiScenarioTree.hpp.
Referenced by SmiScnModel::getRootNode().
SmiTreeNode<T>* SmiScenarioTree< T >::getLeaf | ( | int | scn | ) | [inline] |
Get leaf node.
Definition at line 212 of file SmiScenarioTree.hpp.
Referenced by SmiScnModel::getLeafNode().
SmiTreeNode<T>* SmiScenarioTree< T >::find | ( | unsigned int | scenario, | |
int | stage | |||
) | [inline] |
Get node identified by scenario/stage.
Definition at line 215 of file SmiScenarioTree.hpp.
Referenced by SmiScenarioTree< SmiScnNode * >::addPathtoLeaf().
int SmiScenarioTree< T >::getNumScenarios | ( | ) | [inline] |
get number of scenarios
Definition at line 226 of file SmiScenarioTree.hpp.
Referenced by SmiScnModel::getNumScenarios().
SmiTreeNode<T>* SmiScenarioTree< T >::find | ( | vector< int > & | label | ) | [inline] |
Get node identified by longest match to array of labels.
Definition at line 233 of file SmiScenarioTree.hpp.
vector<T>& SmiScenarioTree< T >::getScenario | ( | int | scenario | ) | [inline] |
Get vector of node data for given scenario.
Definition at line 248 of file SmiScenarioTree.hpp.
Referenced by SmiScenarioTree< SmiScnNode * >::scenBegin(), and SmiScenarioTree< SmiScnNode * >::scenEnd().
int SmiScenarioTree< T >::addPathtoLeaf | ( | int | brscenario, | |
int | stage, | |||
vector< T > & | pathdata, | |||
unsigned int | start = 0 | |||
) | [inline] |
Add new path from branching node to leaf.
The branching node is the one belonging to "brscenario" at depth "stage". Length of incoming "pathdata" vector is leaf->depth() - stage. Responsibility for memory management of SmiTreeNodeData elements is assigned to SmiScenarioTree. SmiTreeNodeData elements must be created with "new" operator.
Definition at line 281 of file SmiScenarioTree.hpp.
void SmiScenarioTree< T >::setChildLabels | ( | SmiTreeNode< T > * | n, | |
vector< int > | labels | |||
) | [inline] |
int SmiScenarioTree< T >::addPathtoLeaf | ( | vector< int > | labels, | |
vector< T > & | pathdata | |||
) | [inline] |
Add new path using labels to find branching node.
The length of the incoming path is leaf.depth(). Responsibility for memory management of SmiTreeNodeData elements is assigned to SmiScenarioTree. SmiTreeNodeData elements must be created with "new" operator.
Definition at line 329 of file SmiScenarioTree.hpp.
vector<T> SmiScenarioTree< T >::node_data [private] |
Definition at line 370 of file SmiScenarioTree.hpp.
Referenced by SmiScenarioTree< SmiScnNode * >::addPathtoLeaf(), SmiScenarioTree< SmiScnNode * >::treeBegin(), SmiScenarioTree< SmiScnNode * >::treeEnd(), and SmiScenarioTree< SmiScnNode * >::wholeTree().
vector<T> SmiScenarioTree< T >::scen_data [private] |
Definition at line 375 of file SmiScenarioTree.hpp.
Referenced by SmiScenarioTree< SmiScnNode * >::getScenario(), SmiScenarioTree< SmiScnNode * >::scenBegin(), and SmiScenarioTree< SmiScnNode * >::scenEnd().
vector<SmiTreeNode<T> *> SmiScenarioTree< T >::leaf_ [private] |
Definition at line 376 of file SmiScenarioTree.hpp.
Referenced by SmiScenarioTree< SmiScnNode * >::addPathtoLeaf(), SmiScenarioTree< SmiScnNode * >::find(), SmiScenarioTree< SmiScnNode * >::getLeaf(), SmiScenarioTree< SmiScnNode * >::getNumScenarios(), SmiScenarioTree< SmiScnNode * >::getScenario(), and SmiScenarioTree< SmiScnNode * >::scenEnd().
SmiTreeNode<T>* SmiScenarioTree< T >::root_ [private] |
Definition at line 377 of file SmiScenarioTree.hpp.
Referenced by SmiScenarioTree< SmiScnNode * >::addPathtoLeaf(), SmiScenarioTree< SmiScnNode * >::find(), and SmiScenarioTree< SmiScnNode * >::getRoot().