compute component id for each SCC
This commit is contained in:
		
							parent
							
								
									09d0ac3838
								
							
						
					
					
						commit
						b2637b9a43
					
				| @ -510,14 +510,23 @@ void EdgeBasedGraphFactory::GenerateEdgeExpandedNodes() | ||||
|             const unsigned size_of_component = std::min(component_explorer.get_component_size(u), | ||||
|                                                         component_explorer.get_component_size(v)); | ||||
| 
 | ||||
|             const unsigned id_of_smaller_component = [u,v,component_explorer] { | ||||
|                 if (component_explorer.get_component_size(u) < component_explorer.get_component_size(v)) | ||||
|                 { | ||||
|                     return component_explorer.get_component_id(u); | ||||
|                 } | ||||
|                 return component_explorer.get_component_id(v); | ||||
|             }(); | ||||
| 
 | ||||
|             const bool component_is_tiny = (size_of_component < 1000); | ||||
| 
 | ||||
|             if (edge_data.edgeBasedNodeID == SPECIAL_NODEID) | ||||
|             { | ||||
|                 InsertEdgeBasedNode(v, u, component_is_tiny); | ||||
|                 InsertEdgeBasedNode(v, u, (component_is_tiny ? id_of_smaller_component + 1 : 0)); | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 InsertEdgeBasedNode(u, v, component_is_tiny); | ||||
|                 InsertEdgeBasedNode(u, v, (component_is_tiny ? id_of_smaller_component + 1 : 0)); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user