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//! `infomap` (Rosvall-Bergstrom 2008),
10//! `spinglass` (Reichardt-Bornholdt 2006).
11//! Helpers: `community_to_membership`
12//! (cut a dendrogram at `k` merges), `reindex_membership` (densify a
13//! membership vector to `0..k-1` by first occurrence).
14
15// `pub(crate)` so the inner module name doesn't double-list with the
16// function re-export in rustdoc.
17pub(crate) mod community_to_membership;
18pub(crate) mod community_voronoi;
19pub(crate) mod compare_communities;
20pub(crate) mod edge_betweenness_community;
21pub(crate) mod edge_betweenness_community_weighted;
22pub(crate) mod fast_greedy_modularity;
23pub(crate) mod fluid_communities;
24pub(crate) mod infomap;
25pub(crate) mod label_propagation;
26pub(crate) mod lanczos;
27pub(crate) mod leading_eigenvector;
28pub(crate) mod leiden;
29pub(crate) mod louvain;
30pub(crate) mod modularity;
31pub(crate) mod modularity_matrix;
32pub(crate) mod reindex_membership;
33pub(crate) mod spinglass;
34pub(crate) mod split_join_distance;
35pub(crate) mod walktrap;
36
37pub use community_to_membership::{
38    CommunityToMembershipResult, community_to_membership, le_community_to_membership,
39};
40pub use community_voronoi::{CommunityVoronoiResult, community_voronoi};
41pub use compare_communities::{CommunityComparison, compare_communities};
42pub use edge_betweenness_community::{EdgeBetweennessResult, edge_betweenness_community};
43pub use edge_betweenness_community_weighted::edge_betweenness_community_weighted;
44pub use fast_greedy_modularity::{
45    FastGreedyResult, fast_greedy_modularity, fast_greedy_modularity_weighted,
46};
47pub use fluid_communities::{
48    FLUID_DEFAULT_MAX_ITERATIONS, FluidOptions, FluidResult, fluid_communities,
49    fluid_communities_with_options,
50};
51pub use infomap::{InfomapResult, infomap, infomap_weighted, infomap_with_options};
52pub use label_propagation::{
53    LpaOptions, LpaResult, LpaVariant, label_propagation, label_propagation_weighted,
54    label_propagation_with_options,
55};
56pub use leading_eigenvector::{
57    LeadingEigenvectorResult, leading_eigenvector, leading_eigenvector_weighted,
58};
59pub use leiden::{
60    LEIDEN_DEFAULT_BETA, LEIDEN_DEFAULT_ITERATIONS, LeidenObjective, LeidenOptions, LeidenResult,
61    leiden, leiden_weighted, leiden_with_options,
62};
63pub use louvain::{LouvainResult, louvain, louvain_weighted, louvain_with_options};
64pub use modularity::{modularity, modularity_directed, modularity_weighted};
65pub use modularity_matrix::modularity_matrix;
66pub use reindex_membership::{ReindexMembershipResult, reindex_membership};
67pub use spinglass::{
68    SPINGLASS_DEFAULT_SPINS, SpinglassOptions, SpinglassResult, SpinglassUpdateRule, spinglass,
69    spinglass_weighted, spinglass_with_options,
70};
71pub use split_join_distance::{SplitJoinDistance, split_join_distance};
72pub use walktrap::{
73    WALKTRAP_DEFAULT_STEPS, WalktrapOptions, WalktrapResult, walktrap, walktrap_weighted,
74    walktrap_with_options,
75};