pub fn eigenvector_centrality_run<G: GraphRef>(
graph: &G,
max_iterations: usize,
tolerance: f64,
) -> EigenvectorRunExpand 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