HLIBpro  1.2
Public Member Functions | Protected Member Functions | List of all members
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:
TNDAlgCTBuilder 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_use_edge_weights (const bool use_edge_weights, const bool sym_edge_weights)
virtual TClusterTreebuild (const TSparseMatrix *S, const idx_t idx_ofs=0) const
 build cluster tree using connectivity in sparse matrix S
virtual TClusterdivide (const TGraph &graph, const uint lvl, TPermutation &perm, const idx_t idx_ofs, const uint n_min, const TSparseMatrix *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
virtual 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 (const TSparseMatrix *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, const TSparseMatrix *S) const
 analyze connections between sub graphs left and right and swap if necessary

Member Function Documentation

virtual void scc_partition ( const TGraph graph,
TNodeSet left,
TNodeSet right 
) const
protectedvirtual
See Also
partition, but first check graph for connected components
void set_use_edge_weights ( const bool  use_edge_weights,
const bool  sym_edge_weights 
)

activate/deactivate the use of edge weights for the graph bi-partitioning and whether they should be handled symmetric