Skip to content

Commit 2081a0f

Browse files
committed
Change EDiff result of SCC to avoid redundancy
1 parent 0f7331b commit 2081a0f

1 file changed

Lines changed: 3 additions & 1 deletion

File tree

algorithms/scc/minreach_scc.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,12 @@ SCCData MinReachSCC::calculate(const DSBG& dsbg)
7070
PWMap rmap = PW_FACT.createPWMap();
7171
Set Ediff = SET_FACT.createSet();
7272
Set oldE = dsbg.E();
73+
Set deleted_edges = SET_FACT.createSet();
7374
do {
7475
oldE = dsbg_.E();
7576
rmap = sccStep();
7677
Ediff = oldE.difference(dsbg_.E());
78+
deleted_edges = deleted_edges.disjointCup(Ediff);
7779
} while (Ediff != SET_FACT.createSet());
7880
rmap = rmap.compact();
7981
auto end = std::chrono::high_resolution_clock::now();
@@ -85,7 +87,7 @@ SCCData MinReachSCC::calculate(const DSBG& dsbg)
8587

8688
Util::DEBUG_LOG << "MinReachSCC result: " << rmap << "\n\n";
8789

88-
return SCCData(dsbg, rmap, Ediff);
90+
return SCCData(dsbg, rmap, deleted_edges);
8991
}
9092

9193
////////////////////////////////////////////////////////////////////////////////

0 commit comments

Comments
 (0)