Skip to main content

eigenvector_centrality_run

Function eigenvector_centrality_run 

Source
pub fn eigenvector_centrality_run<G: GraphRef>(
    graph: &G,
    max_iterations: usize,
    tolerance: f64,
) -> EigenvectorRun
Expand description

Compute eigenvector centrality with full convergence reporting.

Scores are L2-normalized (unit vector). Isolated nodes get score 0.

use graphops::eigenvector::eigenvector_centrality_run;
use graphops::GraphRef;

struct G(Vec<Vec<usize>>);
impl GraphRef for G {
    fn node_count(&self) -> usize { self.0.len() }
    fn neighbors_ref(&self, n: usize) -> &[usize] { &self.0[n] }
}

let g = G(vec![vec![1, 2], vec![0, 2], vec![0, 1]]);
let run = eigenvector_centrality_run(&g, 100, 1e-6);
assert!(run.converged);
assert!((run.scores[0] - run.scores[1]).abs() < 1e-6); // symmetric graph