icentral_graph/
find_mucs.rs1crate::ix!();
2
3impl<GH> FindMucs for Graph<GH>
4
5where GH
6: GetEdges
7+ ClearMucs
8+ CreateNamedEmpty
9+ Debug
10+ BccGraphHashInterface
11+ ExtendWith<GH,Error=BetweennessCentralityError>
12+ FindConnectedComponents<GH,Error=BetweennessCentralityError>
13+ GetConnectedComponentSizes
14+ GetNeighborsForNode
15+ GetNodeIdRange
16+ HasMapForNode
17+ InsertEdge
18+ InsertNode
19+ IsValid
20+ MappedNodes
21+ NewFromCycleVec
22+ NewFromGraphRef<Self>
23+ NumEdges
24+ NumNodes
25+ RemoveBridges
26{
27 fn find_mucs_fast(&mut self)
35 -> Result<(),BetweennessCentralityError>
36 {
37 let mut bridge_vec: Vec<Edge> = self.find_bridge_edges::<GH>();
38
39 let mut gh: GH = GH::new_from_graph_ref(&*self, name![self.name(),"find_mucs_fast::gh"]);
40
41 gh.remove_bridges(bridge_vec);
42
43 let mut conn_comp_vec: Vec<GH> = gh.find_conn_comp()?;
44
45 self.construct_mucs(conn_comp_vec);
46
47 self.construct_single_node_mucs();
48
49 self.find_conn_verts();
50
51 self.find_all_muc_subgraphs();
52
53 debug!("DONE");
54
55 Ok(())
56 }
57
58 fn find_mucs(&mut self) {
59
60 self.find_mucs_fast();
62 }
63}