graph: filter accepting sinks in univ_dest_mapper
This commit is contained in:
parent
f2063b7fc3
commit
abe3da54fb
1 changed files with 6 additions and 2 deletions
|
|
@ -557,10 +557,11 @@ namespace spot
|
||||||
{
|
{
|
||||||
std::map<std::vector<unsigned>, unsigned> uniq_;
|
std::map<std::vector<unsigned>, unsigned> uniq_;
|
||||||
G& g_;
|
G& g_;
|
||||||
|
unsigned acc_sink_;
|
||||||
public:
|
public:
|
||||||
|
|
||||||
univ_dest_mapper(G& graph)
|
univ_dest_mapper(G& graph, unsigned sink = -1u)
|
||||||
: g_(graph)
|
: g_(graph), acc_sink_(sink)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -570,6 +571,9 @@ namespace spot
|
||||||
std::vector<unsigned> tmp(begin, end);
|
std::vector<unsigned> tmp(begin, end);
|
||||||
std::sort(tmp.begin(), tmp.end());
|
std::sort(tmp.begin(), tmp.end());
|
||||||
tmp.erase(std::unique(tmp.begin(), tmp.end()), tmp.end());
|
tmp.erase(std::unique(tmp.begin(), tmp.end()), tmp.end());
|
||||||
|
if (acc_sink_ != -1u && tmp.size() > 1)
|
||||||
|
tmp.erase(std::remove(tmp.begin(), tmp.end(), acc_sink_),
|
||||||
|
tmp.end());
|
||||||
auto p = uniq_.emplace(tmp, 0);
|
auto p = uniq_.emplace(tmp, 0);
|
||||||
if (p.second)
|
if (p.second)
|
||||||
p.first->second = g_.new_univ_dests(tmp.begin(), tmp.end());
|
p.first->second = g_.new_univ_dests(tmp.begin(), tmp.end());
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue