| 
    SparseLibrary
    Version 1.6.0
    
   | 
 
Induces a block order by fully traversing an SBDTree. More...
#include <BlockOrderer.hpp>


Public Member Functions | |
| 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 Member Functions | |
| 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... | |
| virtual void | pre_readout (const unsigned long int index)=0 | 
| Prefix traversal code.  More... | |
| virtual void | in_readout (const unsigned long int index)=0 | 
| Infix traversal code.  More... | |
| virtual void | post_readout (const unsigned long int index)=0 | 
| Postfix traversal code.  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.  | |
Protected Attributes | |
| 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 | |
| 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... | |
Induces a block order by fully traversing an SBDTree.
      
  | 
  protected | 
Infix code for height-determining traversal.
      
  | 
  protectedpure virtual | 
Infix traversal code.
Implemented in MinCCS< T >, MinCRS< T >, BlockCRS< T >, U2< T >, Duck< T >, and SepLast< T >.
Referenced by BlockOrderer< T >::infix().
      
  | 
  inlineprotected | 
Infix operation during SBD tree traversal.
References BlockOrderer< T >::cur_height, BlockOrderer< T >::height, BlockOrderer< T >::in_readout(), BlockOrderer< T >::READOUT, BlockOrderer< T >::TRAVERSE_HEIGHT, and BlockOrderer< T >::traverse_mode.
Referenced by BlockOrderer< T >::traverse().
      
  | 
  protected | 
Postfix code for height-determining traversal.
      
  | 
  protectedpure virtual | 
Postfix traversal code.
Implemented in MinCCS< T >, MinCRS< T >, BlockCRS< T >, U2< T >, Duck< T >, and SepLast< T >.
Referenced by BlockOrderer< T >::postfix().
      
  | 
  inlineprotected | 
Postfix operation during SBD tree traversal.
References BlockOrderer< T >::cur_height, BlockOrderer< T >::post_readout(), BlockOrderer< T >::READOUT, BlockOrderer< T >::TRAVERSE_HEIGHT, and BlockOrderer< T >::traverse_mode.
Referenced by BlockOrderer< T >::traverse().
      
  | 
  protected | 
Prefix code for height-determining traversal.
      
  | 
  protectedpure virtual | 
Prefix traversal code.
Implemented in BlockCRS< T >, MinCCS< T >, MinCRS< T >, U2< T >, Duck< T >, and SepLast< T >.
Referenced by BlockOrderer< T >::prefix().
      
  | 
  inlineprotected | 
Prefix operation during SBD tree traversal.
References BlockOrderer< T >::cur_height, BlockOrderer< T >::pre_readout(), BlockOrderer< T >::READOUT, BlockOrderer< T >::TRAVERSE_HEIGHT, and BlockOrderer< T >::traverse_mode.
Referenced by BlockOrderer< T >::traverse().
      
  | 
  inlineprotected | 
Traverses the SBD tree, makes call to prefix, infix, and postfix during traversal.
References SBDTree::getRoot(), BlockOrderer< T >::infix(), SBDTree::isLeaf(), SBDTree::left(), BlockOrderer< T >::leftpass, BlockOrderer< T >::postfix(), BlockOrderer< T >::prefix(), SBDTree::right(), BlockOrderer< T >::rightpass, SBDTree::size(), BlockOrderer< T >::tree, and SBDTree::up().
Referenced by BlockOrderer< T >::induce().
      
  | 
  protected | 
The current height at the traversal position.
Referenced by BlockOrderer< T >::induce(), BlockOrderer< T >::infix(), BlockOrderer< T >::postfix(), and BlockOrderer< T >::prefix().
      
  | 
  protected | 
The data type of each block.
Referenced by Duck< T >::in_readout(), BlockCRS< T >::in_readout(), U2< T >::in_readout(), MinCCS< T >::in_readout(), MinCRS< T >::in_readout(), BlockOrderer< T >::induce(), SepLast< T >::post_readout(), Duck< T >::post_readout(), U2< T >::post_readout(), MinCCS< T >::post_readout(), MinCRS< T >::post_readout(), Duck< T >::pre_readout(), SepLast< T >::pre_readout(), MinCCS< T >::pre_readout(), MinCRS< T >::pre_readout(), U2< T >::pre_readout(), and BlockCRS< T >::pre_readout().
      
  | 
  protected | 
Stores the height of a SBD node.
Referenced by BlockOrderer< T >::induce(), and BlockOrderer< T >::infix().
      
  | 
  protected | 
Nonzero storage at each node.
Referenced by Duck< T >::in_readout(), BlockCRS< T >::in_readout(), U2< T >::in_readout(), MinCCS< T >::in_readout(), MinCRS< T >::in_readout(), BlockOrderer< T >::induce(), SepLast< T >::post_readout(), Duck< T >::post_readout(), U2< T >::post_readout(), MinCCS< T >::post_readout(), MinCRS< T >::post_readout(), Duck< T >::pre_readout(), SepLast< T >::pre_readout(), MinCCS< T >::pre_readout(), MinCRS< T >::pre_readout(), U2< T >::pre_readout(), and BlockCRS< T >::pre_readout().
      
  | 
  protected | 
Stores whether a node has been traversed from the left.
Referenced by BlockOrderer< T >::traverse().
      
  | 
  protected | 
Output structure after SBD readout (series of blocks in the correct order).
Referenced by Duck< T >::in_readout(), U2< T >::in_readout(), BlockCRS< T >::in_readout(), MinCCS< T >::in_readout(), MinCRS< T >::in_readout(), BlockOrderer< T >::induce(), SepLast< T >::post_readout(), Duck< T >::post_readout(), U2< T >::post_readout(), MinCCS< T >::post_readout(), MinCRS< T >::post_readout(), SepLast< T >::pre_readout(), Duck< T >::pre_readout(), MinCCS< T >::pre_readout(), BlockCRS< T >::pre_readout(), MinCRS< T >::pre_readout(), U2< T >::pre_readout(), and BlockOrderer< T >::~BlockOrderer().
      
  | 
  staticprotected | 
Mode flag for SBD tree readouts.
Referenced by BlockOrderer< T >::induce(), BlockOrderer< T >::infix(), BlockOrderer< T >::postfix(), and BlockOrderer< T >::prefix().
      
  | 
  protected | 
Stores whether a node has been traversed from the right.
Referenced by BlockOrderer< T >::traverse().
      
  | 
  staticprotected | 
Mode flag for height-determining traversal.
Referenced by BlockOrderer< T >::induce(), BlockOrderer< T >::infix(), BlockOrderer< T >::postfix(), and BlockOrderer< T >::prefix().
      
  | 
  protected | 
Sets the traversal mode.
Referenced by BlockOrderer< T >::induce(), BlockOrderer< T >::infix(), BlockOrderer< T >::postfix(), and BlockOrderer< T >::prefix().
      
  | 
  protected | 
The SBD tree to order the blocks of.
Referenced by Duck< T >::in_readout(), BlockCRS< T >::in_readout(), U2< T >::in_readout(), MinCRS< T >::in_readout(), MinCCS< T >::in_readout(), BlockOrderer< T >::induce(), BlockOrderer< T >::left_horizontal(), BlockOrderer< T >::lower_vertical(), BlockOrderer< T >::middle(), SepLast< T >::post_readout(), Duck< T >::post_readout(), U2< T >::post_readout(), MinCRS< T >::post_readout(), MinCCS< T >::post_readout(), Duck< T >::pre_readout(), SepLast< T >::pre_readout(), MinCCS< T >::pre_readout(), U2< T >::pre_readout(), BlockCRS< T >::pre_readout(), MinCRS< T >::pre_readout(), BlockOrderer< T >::right_horizontal(), BlockOrderer< T >::traverse(), and BlockOrderer< T >::upper_vertical().
 1.8.7