88 void build( std::vector< unsigned long int > &hierarchy,
89 std::vector< unsigned long int > &r_bounds,
90 std::vector< unsigned long int > &c_bounds );
94 SBDTree( std::vector< unsigned long int > &r_hierarchy, std::vector< unsigned long int > &c_hierarchy,
95 std::vector< unsigned long int > &r_bounds,
96 std::vector< unsigned long int > &c_bounds );
99 SBDTree( std::vector< unsigned long int > &hierarchy,
100 std::vector< unsigned long int > &r_bounds,
101 std::vector< unsigned long int > &c_bounds );
120 unsigned long int &
r_lo,
unsigned long int &
r_hi,
121 unsigned long int &
c_lo,
unsigned long int &
c_hi );
124 unsigned long int up(
const unsigned long int index );
127 unsigned long int left(
const unsigned long int index );
130 unsigned long int right(
const unsigned long int index );
133 void rowBounds(
const unsigned long int index,
134 unsigned long int &
r_lo,
135 unsigned long int &
r_hi );
139 unsigned long int &
c_lo,
140 unsigned long int &
c_hi );
143 char isLeaf(
const unsigned long int index );
146 unsigned long int size();
unsigned long int root
Which node ID corresponds to the root.
Definition: SBDTree.hpp:70
void columnBounds(const unsigned long int index, unsigned long int &c_lo, unsigned long int &c_hi)
Returns the column bounds corresponding to a given node.
Definition: SBDTree.cpp:206
char root_is_set
Whether the root node is set.
Definition: SBDTree.hpp:76
unsigned long int * right_child
Array s.t.
Definition: SBDTree.hpp:55
unsigned long int * left_child
Array s.t.
Definition: SBDTree.hpp:52
void build(std::vector< unsigned long int > &hierarchy, std::vector< unsigned long int > &r_bounds, std::vector< unsigned long int > &c_bounds)
Builds the SBD tree using three input vectors.
Definition: SBDTree.cpp:36
unsigned long int * c_lo
Array s.t.
Definition: SBDTree.hpp:64
char isLeaf(const unsigned long int index)
Whether the given node is a leaf node.
Definition: SBDTree.cpp:214
~SBDTree()
Base deconstructor.
Definition: SBDTree.cpp:125
unsigned long int left(const unsigned long int index)
Returns the left child of a given node.
Definition: SBDTree.cpp:180
unsigned long int * r_lo
Array s.t.
Definition: SBDTree.hpp:58
unsigned long int * c_hi
Array s.t.
Definition: SBDTree.hpp:67
unsigned long int * parent
Array s.t.
Definition: SBDTree.hpp:49
void rowBounds(const unsigned long int index, unsigned long int &r_lo, unsigned long int &r_hi)
Returns the row bounds corresponding to a given node.
Definition: SBDTree.cpp:198
unsigned long int up(const unsigned long int index)
Returns the parent of a given node.
Definition: SBDTree.cpp:171
unsigned long int size()
Gets the number of nodes.
Definition: SBDTree.cpp:222
unsigned long int right(const unsigned long int index)
Returns the right child of a given node.
Definition: SBDTree.cpp:189
unsigned long int * r_hi
Array s.t.
Definition: SBDTree.hpp:61
unsigned long int getRoot()
Gets the root index.
Definition: SBDTree.cpp:226
SBDTree(std::vector< unsigned long int > &r_hierarchy, std::vector< unsigned long int > &c_hierarchy, std::vector< unsigned long int > &r_bounds, std::vector< unsigned long int > &c_bounds)
Base constructor.
Definition: SBDTree.cpp:103
static const unsigned long int NO_SUCH_NODE
Integer corresponding to non-existing nodes.
Definition: SBDTree.hpp:79
unsigned long int nodes
The total number of tree nodes.
Definition: SBDTree.hpp:73
Models a Separated Block Diagonal tree structure.
Definition: SBDTree.hpp:44
void getSeparatorBB(const unsigned long int index, unsigned long int &r_lo, unsigned long int &r_hi, unsigned long int &c_lo, unsigned long int &c_hi)
Gets, from a separator node, the bounding box of the nonzeroes contained in the separator.
Definition: SBDTree.cpp:141