HLIBpro  3.0
TAlgCTBuilder Class Reference

Base class for cluster tree construction algorithms based on graph partitioning with graph defined by a sparse matrix.

#include <TAlgCTBuilder.hh>

Inheritance diagram for TAlgCTBuilder:
TAlgNDCTBuilder TPartAlgCTBuilder

Public Member Functions

 TAlgCTBuilder (TAlgPartStrat *part_strat, const uint n_min=CFG::Cluster::nmin, const uint min_leaf_lvl=0)
 construct cluster tree builder with given partition strategy and tree parameters
 
virtual ~TAlgCTBuilder ()
 dtor
 
void set_high_deg_fac (const uint fac)
 activate/deactivate (if fac = 0) high degree node separation
 
void set_edge_weights_mode (const edge_weights_mode_t edge_weights_mode)
 set mode for edge weights
 
std::unique_ptr< TClusterTreebuild (any_const_sparse_matrix_t S, const idx_t idx_ofs=0) const
 build cluster tree using connectivity in sparse matrix S
 
virtual std::unique_ptr< TClusterdivide (const TGraph &graph, const uint lvl, TPermutation &perm, const idx_t idx_ofs, const uint n_min, any_const_sparse_matrix_t S, const uint max_lvl) const
 divide graph graph and build corresponding cluster tree
 
virtual void partition (const TGraph &graph, TNodeSet &left, TNodeSet &right) const
 compute graph bi-partitioning of graph and store result in left and right
 

Protected Member Functions

virtual void scc_partition (const TGraph &graph, TNodeSet &left, TNodeSet &right) const
 same as More...
 
virtual std::unique_ptr< TClusterbuild_leaf (const TGraph &graph, const idx_t idx_ofs, TPermutation &perm) const
 build leaf node for indices in graph
 
virtual uint adjust_n_min (any_const_sparse_matrix_t S) const
 adjust n_min based on sparse matrix if default value of 0 was given in constructor
 
virtual void check_flow (const TGraph &graph, TNodeSet &left, TNodeSet &right, any_const_sparse_matrix_t S) const
 analyze connections between sub graphs left and right and swap if necessary
 

Member Function Documentation

◆ scc_partition()

virtual void scc_partition ( const TGraph graph,
TNodeSet left,
TNodeSet right 
) const
protectedvirtual
See also
partition, but first check graph for connected components