Skip to main content

rust_igraph/algorithms/properties/
mod.rs

1//! Graph properties — invariants and metrics. Phase 1 entries:
2//! ALGO-PR-001 (`girth`), ALGO-PR-002 (triangles + global/local
3//! transitivity), ALGO-PR-003 (density + mean distance), ALGO-PR-004
4//! (reciprocity), ALGO-PR-005 (avg nearest-neighbour degree),
5//! ALGO-PR-006 (degree assortativity).
6
7// `pub(crate)` instead of `pub` so the inner module names (often
8// identical to the function they expose, e.g. `is_simple`,
9// `pagerank`) don't collide with the function re-exports in the
10// rendered rustdoc — see https://github.com/rust-lang/rust/issues/...
11pub(crate) mod adjacency;
12pub(crate) mod are_adjacent;
13pub(crate) mod assortativity;
14pub(crate) mod assortativity_nominal;
15pub(crate) mod assortativity_values;
16pub(crate) mod assortativity_weighted;
17pub(crate) mod basic;
18pub(crate) mod betweenness;
19pub(crate) mod betweenness_cutoff;
20pub(crate) mod betweenness_subset;
21pub(crate) mod betweenness_weighted;
22pub(crate) mod centralization;
23pub(crate) mod closeness;
24pub(crate) mod closeness_cutoff;
25pub(crate) mod closeness_weighted;
26pub(crate) mod constraint;
27pub(crate) mod convergence_degree;
28pub(crate) mod coreness;
29pub(crate) mod degree;
30pub(crate) mod degree_correlation;
31pub(crate) mod degree_distribution;
32pub(crate) mod ecc;
33pub(crate) mod edge_betweenness;
34pub(crate) mod edge_betweenness_cutoff;
35pub(crate) mod edge_betweenness_subset;
36pub(crate) mod edge_betweenness_weighted;
37pub(crate) mod edgelist;
38pub(crate) mod efficiency;
39pub(crate) mod eigenvector;
40pub(crate) mod get_biadjacency;
41pub(crate) mod get_biadjacency_weighted;
42pub(crate) mod get_eids;
43pub(crate) mod girth;
44pub(crate) mod graphicality;
45pub(crate) mod harmonic;
46pub(crate) mod harmonic_cutoff;
47pub(crate) mod harmonic_weighted;
48pub(crate) mod hits;
49pub(crate) mod is_acyclic;
50pub(crate) mod is_apex_forest;
51pub(crate) mod is_apex_tree;
52pub(crate) mod is_banner_free;
53pub(crate) mod is_biclique;
54pub(crate) mod is_bipartite;
55pub(crate) mod is_biregular;
56pub(crate) mod is_block;
57pub(crate) mod is_bowtie_free;
58pub(crate) mod is_bull_free;
59pub(crate) mod is_c4_free;
60pub(crate) mod is_c5_free;
61pub(crate) mod is_cactus;
62pub(crate) mod is_caterpillar;
63pub(crate) mod is_chain_graph;
64pub(crate) mod is_chordal_bipartite;
65pub(crate) mod is_claw_free;
66pub(crate) mod is_clique;
67pub(crate) mod is_cluster;
68pub(crate) mod is_co_bipartite;
69pub(crate) mod is_co_chordal;
70pub(crate) mod is_cograph;
71pub(crate) mod is_complete;
72pub(crate) mod is_complete_bipartite;
73pub(crate) mod is_complete_multipartite;
74pub(crate) mod is_cricket_free;
75pub(crate) mod is_cubic;
76pub(crate) mod is_cycle;
77pub(crate) mod is_dag;
78pub(crate) mod is_dart_free;
79pub(crate) mod is_diamond_free;
80pub(crate) mod is_distance_hereditary;
81pub(crate) mod is_forest;
82pub(crate) mod is_fork_free;
83pub(crate) mod is_gem_free;
84pub(crate) mod is_geodetic;
85pub(crate) mod is_house_free;
86pub(crate) mod is_k_degenerate;
87pub(crate) mod is_lobster;
88pub(crate) mod is_net_free;
89pub(crate) mod is_outerplanar;
90pub(crate) mod is_p5_free;
91pub(crate) mod is_path;
92pub(crate) mod is_paw_free;
93pub(crate) mod is_proper_interval;
94pub(crate) mod is_pseudo_forest;
95pub(crate) mod is_ptolemaic;
96pub(crate) mod is_regular;
97pub(crate) mod is_self_complementary;
98pub(crate) mod is_semicomplete;
99pub(crate) mod is_series_parallel;
100pub(crate) mod is_simple;
101pub(crate) mod is_spider;
102pub(crate) mod is_split;
103pub(crate) mod is_star;
104pub(crate) mod is_strongly_chordal;
105pub(crate) mod is_strongly_regular;
106pub(crate) mod is_threshold;
107pub(crate) mod is_tournament;
108pub(crate) mod is_tree;
109pub(crate) mod is_triangle_free;
110pub(crate) mod is_trivially_perfect;
111pub(crate) mod is_unicyclic;
112pub(crate) mod is_weakly_chordal;
113pub(crate) mod is_well_covered;
114pub(crate) mod is_wheel;
115pub(crate) mod is_windmill;
116pub(crate) mod joint_degree_distribution;
117pub(crate) mod joint_degree_matrix;
118pub(crate) mod joint_type_distribution;
119pub(crate) mod knn;
120pub(crate) mod laplacian;
121pub(crate) mod list_triangles;
122pub(crate) mod local_scan;
123pub(crate) mod local_scan_k;
124pub(crate) mod mean_distance_weighted;
125pub(crate) mod multiplicity;
126pub(crate) mod mutual;
127pub(crate) mod neighborhood;
128pub(crate) mod pagerank;
129pub(crate) mod pagerank_linsys;
130pub(crate) mod pagerank_weighted;
131pub(crate) mod perfect;
132pub(crate) mod personalized_pagerank;
133pub(crate) mod power_law_fit;
134pub(crate) mod reciprocity;
135pub(crate) mod rich_club;
136pub(crate) mod running_mean;
137pub(crate) mod satisfies_dirac;
138pub(crate) mod satisfies_ore;
139pub(crate) mod similarity;
140pub(crate) mod sort_by_degree;
141pub(crate) mod stochastic;
142pub(crate) mod strength;
143pub(crate) mod topological_sorting;
144pub(crate) mod triangles;
145pub(crate) mod trussness;
146pub(crate) mod unfold_tree;
147
148pub use adjacency::{AdjacencyType, LoopHandling, get_adjacency};
149pub use are_adjacent::are_adjacent;
150pub use assortativity::{assortativity_degree, assortativity_degree_directed};
151pub use assortativity_nominal::assortativity_nominal;
152pub use assortativity_values::assortativity;
153pub use assortativity_weighted::{
154    assortativity_degree_directed_weighted, assortativity_degree_weighted,
155};
156pub use basic::{density, mean_degree, mean_distance};
157pub use betweenness::betweenness;
158pub use betweenness_cutoff::betweenness_cutoff;
159pub use betweenness_subset::betweenness_subset;
160pub use betweenness_weighted::betweenness_weighted;
161pub use centralization::{
162    CentralizationMode, CentralizationResult, LoopMode, centralization,
163    centralization_betweenness_tmax, centralization_betweenness_wrapper,
164    centralization_closeness_tmax, centralization_closeness_wrapper, centralization_degree_tmax,
165    centralization_degree_wrapper, centralization_eigenvector_tmax,
166    centralization_eigenvector_wrapper,
167};
168pub use closeness::closeness;
169pub use closeness_cutoff::{ClosenessCutoffResult, closeness_cutoff};
170pub use closeness_weighted::closeness_weighted;
171pub use constraint::constraint;
172pub use convergence_degree::{convergence_degree, convergence_degree_full};
173pub use coreness::{CorenessMode, coreness, coreness_with_mode};
174pub use degree::{DegreeMode, degree_sequence, max_degree, max_degree_vertex, min_degree};
175pub use degree_correlation::degree_correlation_vector;
176pub use degree_distribution::degree_distribution;
177pub use ecc::ecc;
178pub use edge_betweenness::edge_betweenness;
179pub use edge_betweenness_cutoff::edge_betweenness_cutoff;
180pub use edge_betweenness_subset::edge_betweenness_subset;
181pub use edge_betweenness_weighted::edge_betweenness_weighted;
182pub use edgelist::get_edgelist;
183pub use efficiency::{average_local_efficiency, global_efficiency, local_efficiency};
184pub use eigenvector::{
185    EigenvectorMode, EigenvectorScores, eigenvector_centrality, eigenvector_centrality_directed,
186    eigenvector_centrality_directed_weighted, eigenvector_centrality_full,
187    eigenvector_centrality_weighted,
188};
189pub use get_biadjacency::{GetBiadjacencyResult, get_biadjacency_matrix};
190pub use get_biadjacency_weighted::{GetBiadjacencyWeightedResult, get_biadjacency_weighted};
191pub use get_eids::get_eids;
192pub use girth::girth;
193pub use graphicality::{EdgeTypeFilter, is_bigraphical, is_graphical};
194pub use harmonic::harmonic_centrality;
195pub use harmonic_cutoff::harmonic_centrality_cutoff;
196pub use harmonic_weighted::harmonic_centrality_weighted;
197pub use hits::{HitsScores, hub_and_authority_scores};
198pub use is_acyclic::is_acyclic;
199pub use is_apex_forest::is_apex_forest;
200pub use is_apex_tree::is_apex_tree;
201pub use is_banner_free::is_banner_free;
202pub use is_biclique::is_biclique;
203pub use is_bipartite::{BipartiteResult, is_bipartite};
204pub use is_biregular::is_biregular;
205pub use is_block::is_block_graph;
206pub use is_bowtie_free::is_bowtie_free;
207pub use is_bull_free::is_bull_free;
208pub use is_c4_free::is_c4_free;
209pub use is_c5_free::is_c5_free;
210pub use is_cactus::is_cactus_graph;
211pub use is_caterpillar::is_caterpillar;
212pub use is_chain_graph::is_chain_graph;
213pub use is_chordal_bipartite::is_chordal_bipartite;
214pub use is_claw_free::is_claw_free;
215pub use is_clique::{is_clique, is_independent_vertex_set};
216pub use is_cluster::is_cluster_graph;
217pub use is_co_bipartite::is_co_bipartite;
218pub use is_co_chordal::is_co_chordal;
219pub use is_cograph::is_cograph;
220pub use is_complete::is_complete;
221pub use is_complete_bipartite::is_complete_bipartite;
222pub use is_complete_multipartite::is_complete_multipartite;
223pub use is_cricket_free::is_cricket_free;
224pub use is_cubic::is_cubic;
225pub use is_cycle::is_cycle;
226pub use is_dag::is_dag;
227pub use is_dart_free::is_dart_free;
228pub use is_diamond_free::is_diamond_free;
229pub use is_distance_hereditary::is_distance_hereditary;
230pub use is_forest::is_forest;
231pub use is_fork_free::is_fork_free;
232pub use is_gem_free::is_gem_free;
233pub use is_geodetic::is_geodetic;
234pub use is_house_free::is_house_free;
235pub use is_k_degenerate::{degeneracy, is_k_degenerate};
236pub use is_lobster::is_lobster;
237pub use is_net_free::is_net_free;
238pub use is_outerplanar::is_outerplanar;
239pub use is_p5_free::is_p5_free;
240pub use is_path::is_path;
241pub use is_paw_free::is_paw_free;
242pub use is_proper_interval::is_proper_interval;
243pub use is_pseudo_forest::is_pseudo_forest;
244pub use is_ptolemaic::is_ptolemaic;
245pub use is_regular::{is_regular, regularity};
246pub use is_self_complementary::is_self_complementary;
247pub use is_semicomplete::is_semicomplete;
248pub use is_series_parallel::is_series_parallel;
249pub use is_simple::{SimpleMode, is_simple, is_simple_with_mode};
250pub use is_spider::is_spider;
251pub use is_split::is_split_graph;
252pub use is_star::is_star;
253pub use is_strongly_chordal::is_strongly_chordal;
254pub use is_strongly_regular::{StronglyRegularParams, is_strongly_regular};
255pub use is_threshold::is_threshold_graph;
256pub use is_tournament::is_tournament;
257pub use is_tree::is_tree;
258pub use is_triangle_free::is_triangle_free;
259pub use is_trivially_perfect::is_trivially_perfect;
260pub use is_unicyclic::is_unicyclic;
261pub use is_weakly_chordal::is_weakly_chordal;
262pub use is_well_covered::is_well_covered;
263pub use is_wheel::is_wheel;
264pub use is_windmill::is_windmill;
265pub use joint_degree_distribution::joint_degree_distribution;
266pub use joint_degree_matrix::joint_degree_matrix;
267pub use joint_type_distribution::joint_type_distribution;
268pub use knn::avg_nearest_neighbor_degree;
269pub use laplacian::{LaplacianNormalization, get_laplacian};
270pub use list_triangles::list_triangles;
271pub use local_scan::{
272    local_scan_0, local_scan_0_them, local_scan_1, local_scan_1_ecount, local_scan_1_ecount_them,
273    local_scan_subset_ecount,
274};
275pub use local_scan_k::{local_scan_k, local_scan_k_ecount, local_scan_k_ecount_them};
276pub use mean_distance_weighted::mean_distance_weighted;
277pub use multiplicity::{
278    count_loops, count_multiple, count_multiple_1, has_loop, has_multiple, is_loop, is_multiple,
279};
280pub use mutual::{count_mutual, has_mutual, is_mutual};
281pub use neighborhood::{
282    NeighborhoodMode, neighborhood, neighborhood_graphs, neighborhood_graphs_with_mode,
283    neighborhood_size, neighborhood_size_with_mode, neighborhood_with_mode,
284};
285pub use pagerank::pagerank;
286pub use pagerank_linsys::pagerank_linsys;
287pub use pagerank_weighted::pagerank_weighted;
288pub use perfect::is_perfect;
289pub use personalized_pagerank::{
290    personalized_pagerank, personalized_pagerank_default, personalized_pagerank_vs,
291};
292pub use power_law_fit::{PowerLawFitResult, power_law_fit};
293pub use reciprocity::{ReciprocityMode, reciprocity, reciprocity_with_mode};
294pub use rich_club::rich_club_sequence;
295pub use running_mean::{expand_path_to_pairs, running_mean};
296pub use satisfies_dirac::satisfies_dirac;
297pub use satisfies_ore::satisfies_ore;
298pub use similarity::{
299    bibcoupling, cocitation, similarity_dice, similarity_dice_es, similarity_dice_pairs,
300    similarity_inverse_log_weighted, similarity_inverse_log_weighted_pairs, similarity_jaccard,
301    similarity_jaccard_es, similarity_jaccard_pairs,
302};
303pub use sort_by_degree::{SortOrder, sort_vertices_by_degree};
304pub use stochastic::get_stochastic;
305pub use strength::{StrengthMode, diversity, strength, strength_with_mode};
306pub use topological_sorting::topological_sorting;
307pub use triangles::{
308    TransitivityMode, count_adjacent_triangles, count_triangles, transitivity_avglocal_undirected,
309    transitivity_local_undirected, transitivity_undirected,
310};
311pub use trussness::trussness;
312pub use unfold_tree::{UnfoldTreeResult, unfold_tree};