HLIBpro
3.0
|
Representing a node in a block cluster tree as product of two clusters.
#include <TBlockCluster.hh>
Public Member Functions | |
TBlockCluster (TBlockCluster *parent) | |
construct empty, leaf block cluster with parent as parent node | |
TBlockCluster (TBlockCluster *parent, TCluster *rowcl, TCluster *colcl) | |
construct leaf block cluster defined by rowcl × colcl with parent as parent node | |
virtual | ~TBlockCluster () |
dtor | |
int | id () const |
return ID | |
TBlockCluster * | parent () |
return parent cluster | |
void | set_parent (TBlockCluster *bct) |
set parent cluster to bct | |
const TProcSet & | procs () const |
return processor set | |
void | set_procs (const TProcSet &ps, const bool recursive=false) |
set local processor set and if recursive is true also son sets to ps | |
TCluster * | rowcl () |
return row cluster | |
TCluster * | colcl () |
return column cluster | |
void | set_rowcl (TCluster *cl) |
set row cluster | |
void | set_colcl (TCluster *cl) |
set column cluster | |
void | set_clusters (TCluster *row_cl, TCluster *col_cl) |
set row and column cluster | |
TBlockIndexSet | is () const |
return block index set of block cluster | |
bool | is_adm () const |
return true if block cluster is admissible | |
void | set_adm (const bool b) |
set admissibility of block cluster to b | |
virtual uint | nsons () const |
return number of sons | |
virtual TBlockCluster * | son (const uint i) |
return i'th son | |
virtual void | set_son (const uint i, TBlockCluster *son, const bool del_son=true) |
set i'th son to son | |
virtual void | add_son (TBlockCluster *son) |
add son to set of sons at first free slot | |
virtual void | set_layout (const uint nrows, const uint ncols) |
change block layout | |
virtual uint | nrows () const |
return number of rows | |
virtual uint | ncols () const |
return number of columns | |
virtual TBlockCluster * | son (const uint i, const uint j) |
return son at position (i, j) | |
virtual void | set_son (const uint i, const uint j, TBlockCluster *son, const bool del_son=true) |
set son at position (i, j) to son | |
virtual TBlockCluster * | son_cl (const TCluster *rowcl, const TCluster *colcl) |
return son corresponding to block cluster rowcl × colcl | |
virtual bool | is_leaf () const |
return true of node is leaf | |
virtual void | make_leaf () |
make node a leaf | |
virtual uint | nnodes () const |
return number of nodes in tree | |
virtual uint | depth () const |
return depth of tree | |
void | assign_procs () |
adjust processor set such that local set is union of son sets | |
bool | has_son (const uint i) const |
return true if i'th son is present | |
bool | is_sub_cluster (const TBlockCluster *c) const |
return true if given cluster is a subcluster of this | |
virtual TBlockCluster * | create () const |
return object of same type | |
void | collect_leaves (std::list< TBlockCluster * > &leaves, const int depth=-1, const int level=0) const |
collect leaves or nodes with depth depth in tree | |
uint | compute_c_sp () const |
compute sparsity constant of tree | |
uint | compute_c_sh (const uint nprocs) const |
compute sharing constant of tree for index set partition with nprocs processors | |
virtual TBlockCluster * | copy () const |
return copy of node/subtree | |
virtual size_t | byte_size () const |
return size in bytes used by this object | |
void | print (const uint ofs=0) const |
stream output | |
std::string | to_string () const |
return string representation | |