@@ -195,48 +195,48 @@ size_t graph::identify_graph_components (vertex_map_t &v,
195195
196196void graph::strong_connect (vertex_id_t vt,
197197 vertex_map_t &v,
198- std::unordered_map<vertex_id_t , size_t > &com,
199- std::unordered_map<vertex_id_t , size_t > &index_map,
200- std::unordered_map<vertex_id_t , size_t > &lowlink_map,
201- std::unordered_set<vertex_id_t > &on_stack,
202- std::stack<vertex_id_t > &s,
198+ std::unordered_map <vertex_id_t , size_t > &com,
199+ std::unordered_map <vertex_id_t , size_t > &index_map,
200+ std::unordered_map <vertex_id_t , size_t > &lowlink_map,
201+ std::unordered_set <vertex_id_t > &on_stack,
202+ std::stack <vertex_id_t > &s,
203203 size_t &index,
204204 size_t &compnum)
205205{
206206
207- Rcpp::checkUserInterrupt ();
207+ Rcpp::checkUserInterrupt ();
208208
209- index_map[vt] = index;
210- lowlink_map[vt] = index;
209+ index_map [vt] = index;
210+ lowlink_map [vt] = index;
211211 index++;
212- s.push (vt);
213- on_stack.insert (vt);
212+ s.push (vt);
213+ on_stack.insert (vt);
214214
215- vertex_t vtx = v.find (vt)->second ;
216- std::unordered_set<vertex_id_t > nbs = vtx.get_out_neighbours (); // directed: outgoing only
215+ vertex_t vtx = v.find (vt)->second ;
216+ std::unordered_set<vertex_id_t > nbs = vtx.get_out_neighbours ();
217217
218218 for (auto nvtx : nbs)
219219 {
220- if (index_map.find (nvtx) == index_map.end ())
220+ if (index_map.find (nvtx) == index_map.end ())
221221 {
222- strong_connect (nvtx, v, com, index_map, lowlink_map, on_stack, s, index, compnum);
223- lowlink_map[vt] = std::min (lowlink_map[vt], lowlink_map[nvtx]);
222+ strong_connect (nvtx, v, com, index_map, lowlink_map, on_stack, s, index, compnum);
223+ lowlink_map [vt] = std::min (lowlink_map [vt], lowlink_map [nvtx]);
224224 }
225- else if (on_stack.find (nvtx) != on_stack.end ())
225+ else if (on_stack.find (nvtx) != on_stack.end ())
226226 {
227- lowlink_map[vt] = std::min (lowlink_map[vt], index_map[nvtx]);
227+ lowlink_map [vt] = std::min (lowlink_map [vt], index_map [nvtx]);
228228 }
229229 }
230230
231- if (lowlink_map[vt] == index_map[vt])
231+ if (lowlink_map [vt] == index_map [vt])
232232 {
233233 vertex_id_t w;
234234 do
235235 {
236- w = s.top ();
237- s.pop ();
238- on_stack.erase (w);
239- com[w] = compnum;
236+ w = s.top ();
237+ s.pop ();
238+ on_stack.erase (w);
239+ com [w] = compnum;
240240 } while (w != vt);
241241 compnum++;
242242 }
@@ -254,22 +254,21 @@ void graph::strong_connect(vertex_id_t vt,
254254size_t graph::identify_graph_strong_components (vertex_map_t &v,
255255 std::unordered_map <vertex_id_t , size_t > &com)
256256{
257-
258257 com.clear ();
259258
260259 size_t index = 0 ;
261260 size_t compnum = 0 ;
262261
263- std::unordered_map<vertex_id_t , size_t > index_map;
264- std::unordered_map<vertex_id_t , size_t > lowlink_map;
265- std::unordered_set<vertex_id_t > on_stack;
266- std::stack<vertex_id_t > s;
262+ std::unordered_map <vertex_id_t , size_t > index_map;
263+ std::unordered_map <vertex_id_t , size_t > lowlink_map;
264+ std::unordered_set <vertex_id_t > on_stack;
265+ std::stack <vertex_id_t > s;
267266
268267 for (auto it : v)
269268 {
270269 vertex_id_t vt = it.first ;
271- if (index_map.find (vt) == index_map.end ())
272- strong_connect (vt, v, com, index_map, lowlink_map, on_stack, s, index, compnum);
270+ if (index_map.find (vt) == index_map.end ())
271+ strong_connect (vt, v, com, index_map, lowlink_map, on_stack, s, index, compnum);
273272 }
274273
275274 long int largest_id = 0 ;
@@ -301,46 +300,46 @@ size_t graph::identify_graph_strong_components (vertex_map_t &v,
301300// ' @noRd
302301// [[Rcpp::export]]
303302
304- Rcpp::List rcpp_get_component_vector (const Rcpp::DataFrame &graph, bool strong = false )
303+ Rcpp::List rcpp_get_component_vector (const Rcpp::DataFrame &graph, bool strong = false )
305304{
306305 vertex_map_t vertices;
307306 edge_map_t edge_map;
308307 vert2edge_map_t vert2edge_map;
309308
310- bool has_times = graph::graph_from_df (graph, vertices, edge_map, vert2edge_map);
309+ bool has_times = graph::graph_from_df (graph, vertices, edge_map, vert2edge_map);
311310 has_times = false ; // suppress unused variable warning
312311
313- std::unordered_map<vertex_id_t , size_t > components;
312+ std::unordered_map <vertex_id_t , size_t > components;
314313 size_t largest_component;
315314
316315 if (strong)
317- largest_component = graph::identify_graph_strong_components (vertices, components);
316+ largest_component = graph::identify_graph_strong_components (vertices, components);
318317 else
319- largest_component = graph::identify_graph_components (vertices, components);
318+ largest_component = graph::identify_graph_components (vertices, components);
320319
321320 largest_component++; // suppress unused variable warning
322321
323322 // Map component numbers of vertices onto edges
324- std::unordered_map<edge_id_t , size_t > comp_nums;
323+ std::unordered_map <edge_id_t , size_t > comp_nums;
325324 for (auto &e : edge_map)
326325 {
327- vertex_id_t vi = e.second .get_from_vertex ();
328- comp_nums.emplace (e.first , components.find (vi)->second );
326+ vertex_id_t vi = e.second .get_from_vertex ();
327+ comp_nums.emplace (e.first , components.find (vi)->second );
329328 }
330329
331- Rcpp::StringVector edge_id (comp_nums.size ());
332- Rcpp::IntegerVector comp_num (comp_nums.size ());
330+ Rcpp::StringVector edge_id (comp_nums.size ());
331+ Rcpp::IntegerVector comp_num (comp_nums.size ());
333332 size_t i = 0 ;
334- for (auto &cn : comp_nums)
333+ for (auto &cn: comp_nums)
335334 {
336- edge_id (i) = cn.first ;
337- comp_num (i) = static_cast <int >(cn.second ) + 1L ; // 1-indexed for R
338- i++;
335+ edge_id (i) = cn.first ;
336+ comp_num (i) = static_cast <int > (cn.second ) + 1L ; // 1-indexed for R
337+ i++;
339338 }
340339
341- return Rcpp::List::create (
342- Rcpp::Named (" edge_id" ) = edge_id,
343- Rcpp::Named (" edge_component" ) = comp_num);
340+ return Rcpp::List::create (
341+ Rcpp::Named (" edge_id" ) = edge_id,
342+ Rcpp::Named (" edge_component" ) = comp_num);
344343}
345344
346345// ' rcpp_unique_rownames
0 commit comments