icentral_subgraph/
find_pruning_counts.rs

1crate::ix!();
2
3impl FindPruningCounts for SubGraph {
4
5    fn find_pruning_counts_exp(&mut self, 
6        src:    NodeId,
7        dst:    NodeId) 
8    -> Result<(i32,i32,i32),BetweennessCentralityError> 
9    {
10        let src_distances = self.find_single_source_shortest_paths(src)?;
11        let dst_distances = self.find_single_source_shortest_paths(dst)?;
12
13        let mut d0 = 0;
14        let mut d1 = 0;
15        let mut d2 = 0;
16
17        for node in self.nodes_map.nodeid_range() {
18
19            let diff:     f64 = src_distances.distance(node) - dst_distances.distance(node);
20            let abs_diff: f64 = diff.abs();
21
22            match abs_diff {
23                0.0  => d0 += 1,
24                1.0  => d1 += 1,
25                _    => d2 += 1,
26            }
27        }
28
29        Ok((d0,d1,d2))
30    }
31}