* src/tgbaalgos/emptiness_stats.hh (ars_statistics): Distinguish
states visited to compute the prefix and those for the cycle. * src/tgbaalgos/gv04.cc, src/tgbaalgos/ndfs_result.hxx, src/tgbaalgos/gtec/ce.cc: Adjust. * src/tgbatest/randtgba.cc: Print both statistics.
This commit is contained in:
parent
f56abf58b8
commit
8f0135ebb0
6 changed files with 85 additions and 29 deletions
|
|
@ -336,9 +336,12 @@ struct acss_stat
|
|||
|
||||
struct ars_stat
|
||||
{
|
||||
int min_states;
|
||||
int max_states;
|
||||
int tot_states;
|
||||
int min_prefix_states;
|
||||
int max_prefix_states;
|
||||
int tot_prefix_states;
|
||||
int min_cycle_states;
|
||||
int max_cycle_states;
|
||||
int tot_cycle_states;
|
||||
int n;
|
||||
|
||||
ars_stat()
|
||||
|
|
@ -349,21 +352,25 @@ struct ars_stat
|
|||
void
|
||||
count(const spot::ars_statistics* acss)
|
||||
{
|
||||
int s = acss->ars_states();
|
||||
int p = acss->ars_prefix_states();
|
||||
int c = acss->ars_cycle_states();
|
||||
if (n++)
|
||||
{
|
||||
min_states = std::min(min_states, s);
|
||||
max_states = std::max(max_states, s);
|
||||
tot_states += s;
|
||||
min_prefix_states = std::min(min_prefix_states, p);
|
||||
max_prefix_states = std::max(max_prefix_states, p);
|
||||
tot_prefix_states += p;
|
||||
min_cycle_states = std::min(min_cycle_states, c);
|
||||
max_cycle_states = std::max(max_cycle_states, c);
|
||||
tot_cycle_states += c;
|
||||
}
|
||||
else
|
||||
{
|
||||
min_states = max_states = tot_states = s;
|
||||
min_prefix_states = max_prefix_states = tot_prefix_states = p;
|
||||
min_cycle_states = max_cycle_states = tot_cycle_states = c;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
struct ar_stat
|
||||
{
|
||||
int min_prefix;
|
||||
|
|
@ -1259,7 +1266,7 @@ main(int argc, char** argv)
|
|||
std::cout << "Statistics about accepting run computation:"
|
||||
<< std::endl;
|
||||
std::cout << std::setw(22) << ""
|
||||
<< " | (non unique) states |"
|
||||
<< " |(non unique) states for prefix |"
|
||||
<< std::endl << std::setw(22) << "algorithm"
|
||||
<< " | min < mean < max | total | n"
|
||||
<< std::endl
|
||||
|
|
@ -1268,14 +1275,37 @@ main(int argc, char** argv)
|
|||
for (ars_stats_type::const_iterator i = ars_stats.begin();
|
||||
i != ars_stats.end(); ++i)
|
||||
std::cout << std::setw(22) << i->first << " |"
|
||||
<< std::setw(6) << i->second.min_states
|
||||
<< std::setw(6) << i->second.min_prefix_states
|
||||
<< " "
|
||||
<< std::setw(8)
|
||||
<< static_cast<float>(i->second.tot_states) / i->second.n
|
||||
<< (static_cast<float>(i->second.tot_prefix_states)
|
||||
/ i->second.n)
|
||||
<< " "
|
||||
<< std::setw(6) << i->second.max_states
|
||||
<< std::setw(6) << i->second.max_prefix_states
|
||||
<< " |"
|
||||
<< std::setw(6) << i->second.tot_states
|
||||
<< std::setw(6) << i->second.tot_prefix_states
|
||||
<< " |"
|
||||
<< std::setw(4) << i->second.n
|
||||
<< std::endl;
|
||||
std::cout << std::setw(22) << ""
|
||||
<< " | (non unique) states for cycle |"
|
||||
<< std::endl << std::setw(22) << "algorithm"
|
||||
<< " | min < mean < max | total | n"
|
||||
<< std::endl
|
||||
<< std::setw(61) << std::setfill('-') << "" << std::setfill(' ')
|
||||
<< std::endl;
|
||||
for (ars_stats_type::const_iterator i = ars_stats.begin();
|
||||
i != ars_stats.end(); ++i)
|
||||
std::cout << std::setw(22) << i->first << " |"
|
||||
<< std::setw(6) << i->second.min_cycle_states
|
||||
<< " "
|
||||
<< std::setw(8)
|
||||
<< (static_cast<float>(i->second.tot_cycle_states)
|
||||
/ i->second.n)
|
||||
<< " "
|
||||
<< std::setw(6) << i->second.max_cycle_states
|
||||
<< " |"
|
||||
<< std::setw(6) << i->second.tot_cycle_states
|
||||
<< " |"
|
||||
<< std::setw(4) << i->second.n
|
||||
<< std::endl;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue