| 72 | } |
| 73 | |
| 74 | void nested_dissection::compute_separator(PartitionConfig &config, graph_access &G) { |
| 75 | // set up the graph and config for computing a node separator |
| 76 | config.k = 2; |
| 77 | G.set_partition_count(config.k + 1); |
| 78 | config.mode_node_separators = true; |
| 79 | config.graph_allready_partitioned = false; |
| 80 | balance_configuration bc; |
| 81 | bc.configurate_balance(config, G); |
| 82 | |
| 83 | // compute the separator |
| 84 | area_bfs::m_deepth.resize(G.number_of_nodes(), 0); |
| 85 | forall_nodes(G, node) { |
| 86 | area_bfs::m_deepth[node] = 0; |
| 87 | } endfor |
| 88 | |
| 89 | graph_partitioner partitioner; |
| 90 | partitioner.perform_partitioning(config, G); |
| 91 | } |
| 92 | |
| 93 | void nested_dissection::recurse_dissection(PartitionConfig &config, graph_access &G, PartitionID block, NodeID &order_begin) { |
| 94 | std::vector<NodeID> mapping; |
nothing calls this directly
no test coverage detected