SparseLibrary
Version 1.6.0
|
Codes the Minimal CRS block order. More...
#include <MinCRS.hpp>
Protected Member Functions | |
virtual void | pre_readout (const unsigned long int index) |
Prefix operations during SBD tree traversal. More... | |
virtual void | in_readout (const unsigned long int index) |
Infix operations during SBD tree traversal. More... | |
virtual void | post_readout (const unsigned long int index) |
Postfix operations during SBD tree traversal. More... | |
Protected Member Functions inherited from BlockOrderer< T > | |
void | prefix (const unsigned long int index) |
Prefix operation during SBD tree traversal. More... | |
void | infix (const unsigned long int index) |
Infix operation during SBD tree traversal. More... | |
void | postfix (const unsigned long int index) |
Postfix operation during SBD tree traversal. More... | |
void | traverse () |
Traverses the SBD tree, makes call to prefix, infix, and postfix during traversal. More... | |
void | pre_height (const unsigned long int index) |
Prefix code for height-determining traversal. More... | |
void | in_height (const unsigned long int index) |
Infix code for height-determining traversal. More... | |
void | post_height (const unsigned long int index) |
Postfix code for height-determining traversal. More... | |
bool | left_horizontal (const unsigned long int index, const Triplet< T > triplet) |
Helper function for determining place of a nonzero within a separator cross. | |
bool | right_horizontal (const unsigned long int index, const Triplet< T > triplet) |
Helper function for determining place of a nonzero within a separator cross. | |
bool | upper_vertical (const unsigned long int index, const Triplet< T > triplet) |
Helper function for determining place of a nonzero within a separator cross. | |
bool | lower_vertical (const unsigned long int index, const Triplet< T > triplet) |
Helper function for determining place of a nonzero within a separator cross. | |
bool | middle (const unsigned long int index, const Triplet< T > triplet) |
Helper function for determining place of a nonzero within a separator cross. | |
Additional Inherited Members | |
Public Member Functions inherited from BlockOrderer< T > | |
BlockOrderer () | |
Base constructor. | |
virtual | ~BlockOrderer () |
Base destructor. | |
std::vector< std::vector < Triplet< T > > > | induce (const std::vector< Triplet< T > > &input, 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, std::vector< signed char > *datatype) |
Induces this ordering on a set of nonzeroes. | |
Protected Attributes inherited from BlockOrderer< T > | |
SBDTree * | tree |
The SBD tree to order the blocks of. More... | |
std::vector< char > | leftpass |
Stores whether a node has been traversed from the left. More... | |
std::vector< char > | rightpass |
Stores whether a node has been traversed from the right. More... | |
char | traverse_mode |
Sets the traversal mode. More... | |
unsigned long int * | height |
Stores the height of a SBD node. More... | |
unsigned long int | cur_height |
The current height at the traversal position. More... | |
std::vector< Triplet< T > > * | items |
Nonzero storage at each node. More... | |
std::vector< std::vector < Triplet< T > > > * | output |
Output structure after SBD readout (series of blocks in the correct order). More... | |
std::vector< signed char > * | datatype |
The data type of each block. More... | |
Static Protected Attributes inherited from BlockOrderer< T > | |
static const char | TRAVERSE_HEIGHT = 0 |
Mode flag for height-determining traversal. More... | |
static const char | READOUT = 1 |
Mode flag for SBD tree readouts. More... | |
Codes the Minimal CRS block order.
|
inlineprotectedvirtual |
Infix operations during SBD tree traversal.
Implements BlockOrderer< T >.
References BlockOrderer< T >::datatype, SBDTree::isLeaf(), BlockOrderer< T >::items, BlockOrderer< T >::left_horizontal(), BlockOrderer< T >::middle(), BlockOrderer< T >::output, BlockOrderer< T >::right_horizontal(), and BlockOrderer< T >::tree.
|
inlineprotectedvirtual |
Postfix operations during SBD tree traversal.
Implements BlockOrderer< T >.
References BlockOrderer< T >::datatype, SBDTree::isLeaf(), BlockOrderer< T >::items, BlockOrderer< T >::lower_vertical(), BlockOrderer< T >::output, and BlockOrderer< T >::tree.
|
inlineprotectedvirtual |
Prefix operations during SBD tree traversal.
Implements BlockOrderer< T >.
References BlockOrderer< T >::datatype, SBDTree::isLeaf(), BlockOrderer< T >::items, BlockOrderer< T >::output, BlockOrderer< T >::tree, and BlockOrderer< T >::upper_vertical().