icentral_subgraph/
muc_attenuate_parent.rs1crate::ix!();
2
3pub trait MucAttenuateParent {
4
5    fn muc_attenuate_parent_no_new(&mut self, 
6        parent:              NodeId,
7        v_n:                 NodeId, 
8        source:              NodeId, 
9        tmp_conn_vertex_map: &ConnVertexMap,
10        scores:              &mut BetweennessScores);
11}
12
13impl MucAttenuateParent for SubGraph {
14
15    fn muc_attenuate_parent_no_new(&mut self, 
16        parent:              NodeId,
17        v_n:                 NodeId, 
18        source:              NodeId, 
19        tmp_conn_vertex_map: &ConnVertexMap,
20        scores:              &mut BetweennessScores)
21    {
22        let sp_sn = self.path_count_ratio(parent,v_n);
23
24        self.update_pair_dependencies(parent,v_n);
25
26        if tmp_conn_vertex_map.has_mapping_for_node(source) {
27
28            self.update_all_sigmas(parent,v_n);
29
30            let new_parent: NodeId = self.label_map_inout(parent);
31
32            let new_val = {
33                let map_val = scores.score_for_node(new_parent);
34                let sigma_n = self.sigma_value_for_node(v_n);
35                map_val - sigma_n * sp_sn / 2.0
36            };
37
38            scores.set_score_for_node(new_parent, new_val);
39        }
40    }
41}