expansions: US order in pipeline configurable
This commit is contained in:
parent
975ea0c52a
commit
0a89377400
2 changed files with 24 additions and 3 deletions
|
|
@ -310,7 +310,7 @@ namespace spot
|
|||
exp = bddf.simplify(opts);
|
||||
}
|
||||
|
||||
if (opts & exp_opts::expand_opt::UniqueSuffix)
|
||||
if (opts & exp_opts::expand_opt::UniqueSuffixPre)
|
||||
{
|
||||
std::map<formula, bdd> unique_map;
|
||||
for (const auto& [prefix, suffix] : exp)
|
||||
|
|
@ -378,6 +378,26 @@ namespace spot
|
|||
}
|
||||
}
|
||||
|
||||
if (opts & exp_opts::expand_opt::UniqueSuffixPost)
|
||||
{
|
||||
std::map<formula, bdd> unique_map;
|
||||
for (const auto& [prefix, suffix] : exp)
|
||||
{
|
||||
auto res = unique_map.insert({suffix, prefix});
|
||||
if (!res.second)
|
||||
{
|
||||
auto it = res.first;
|
||||
it->second |= prefix;
|
||||
}
|
||||
}
|
||||
|
||||
exp.clear();
|
||||
for (const auto [suffix, prefix] : unique_map)
|
||||
{
|
||||
exp.insert({prefix, suffix});
|
||||
}
|
||||
}
|
||||
|
||||
if (opts & exp_opts::expand_opt::Determinize)
|
||||
{
|
||||
std::multimap<bdd, formula, bdd_less_than> exp_new;
|
||||
|
|
@ -831,7 +851,7 @@ namespace spot
|
|||
aut->set_named_prop("state-names", state_names);
|
||||
|
||||
if ((opts & exp_opts::MergeEdges)
|
||||
&& !(opts & exp_opts::UniqueSuffix))
|
||||
&& !(opts & exp_opts::UniqueSuffixPre || opts & exp_opts::UniqueSuffixPost))
|
||||
aut->merge_edges();
|
||||
|
||||
return aut;
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ namespace spot
|
|||
{
|
||||
enum expand_opt {
|
||||
None = 0,
|
||||
UniqueSuffix = 1,
|
||||
UniqueSuffixPre = 1,
|
||||
UniquePrefix = 2,
|
||||
BddIsop = 4,
|
||||
BddMinterm = 8,
|
||||
|
|
@ -46,6 +46,7 @@ namespace spot
|
|||
SignatureMerge = 128,
|
||||
Determinize = 256,
|
||||
UniquePrefixSeenOpt = 512,
|
||||
UniqueSuffixPost = 1024,
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue