Skip to main content

rust_igraph/algorithms/community/
mod.rs

1//! Community-detection algorithms (ALGO-CO-*). Phase 1: `modularity`
2//! (Newman-Girvan modularity of a partition). Phase 4: `louvain`
3//! multilevel community detection, `leiden` (Traag-Waltman-van Eck 2019),
4//! `label_propagation` (Raghavan-Albert-Kumara 2007 +
5//! Traag-Šubelj 2023 fast variant), `fluid_communities`
6//! (Parés et al. 2017), `edge_betweenness_community` (Girvan-Newman 2002),
7//! `fast_greedy_modularity` (Clauset-Newman-Moore 2004),
8//! `walktrap` (Pons-Latapy 2005), `leading_eigenvector` (Newman 2006).
9//! Helpers: `community_to_membership`
10//! (cut a dendrogram at `k` merges), `reindex_membership` (densify a
11//! membership vector to `0..k-1` by first occurrence).
12
13// `pub(crate)` so the inner module name doesn't double-list with the
14// function re-export in rustdoc.
15pub(crate) mod community_to_membership;
16pub(crate) mod community_voronoi;
17pub(crate) mod compare_communities;
18pub(crate) mod edge_betweenness_community;
19pub(crate) mod edge_betweenness_community_weighted;
20pub(crate) mod fast_greedy_modularity;
21pub(crate) mod fluid_communities;
22pub(crate) mod label_propagation;
23pub(crate) mod lanczos;
24pub(crate) mod leading_eigenvector;
25pub(crate) mod leiden;
26pub(crate) mod louvain;
27pub(crate) mod modularity;
28pub(crate) mod modularity_matrix;
29pub(crate) mod reindex_membership;
30pub(crate) mod split_join_distance;
31pub(crate) mod walktrap;
32
33pub use community_to_membership::{
34    CommunityToMembershipResult, community_to_membership, le_community_to_membership,
35};
36pub use community_voronoi::{CommunityVoronoiResult, community_voronoi};
37pub use compare_communities::{CommunityComparison, compare_communities};
38pub use edge_betweenness_community::{EdgeBetweennessResult, edge_betweenness_community};
39pub use edge_betweenness_community_weighted::edge_betweenness_community_weighted;
40pub use fast_greedy_modularity::{
41    FastGreedyResult, fast_greedy_modularity, fast_greedy_modularity_weighted,
42};
43pub use fluid_communities::{
44    FLUID_DEFAULT_MAX_ITERATIONS, FluidOptions, FluidResult, fluid_communities,
45    fluid_communities_with_options,
46};
47pub use label_propagation::{
48    LpaOptions, LpaResult, LpaVariant, label_propagation, label_propagation_weighted,
49    label_propagation_with_options,
50};
51pub use leading_eigenvector::{
52    LeadingEigenvectorResult, leading_eigenvector, leading_eigenvector_weighted,
53};
54pub use leiden::{
55    LEIDEN_DEFAULT_BETA, LEIDEN_DEFAULT_ITERATIONS, LeidenObjective, LeidenOptions, LeidenResult,
56    leiden, leiden_weighted, leiden_with_options,
57};
58pub use louvain::{LouvainResult, louvain, louvain_weighted, louvain_with_options};
59pub use modularity::{modularity, modularity_directed, modularity_weighted};
60pub use modularity_matrix::modularity_matrix;
61pub use reindex_membership::{ReindexMembershipResult, reindex_membership};
62pub use split_join_distance::{SplitJoinDistance, split_join_distance};
63pub use walktrap::{
64    WALKTRAP_DEFAULT_STEPS, WalktrapOptions, WalktrapResult, walktrap, walktrap_weighted,
65    walktrap_with_options,
66};