Use the count_state() function instead of stats_reachable().

* src/tgbaalgos/postproc.cc: Move the count_state() function...
* src/priv/countstates.cc, src/priv/countstates.hh: ... in these
new files.
* src/priv/Makefile.am: Add them.
* src/saba/sabacomplementtgba.cc, src/tgba/tgbakvcomplement.cc,
src/tgbaalgos/minimize.cc: Use count_states() instead of
stats_reachable().
This commit is contained in:
Alexandre Duret-Lutz 2013-07-10 07:57:24 +02:00
parent 43b3df0ef0
commit f00d97b4ba
7 changed files with 87 additions and 33 deletions

41
src/priv/countstates.cc Normal file
View file

@ -0,0 +1,41 @@
// -*- coding: utf-8 -*-
// Copyright (C) 2013 Laboratoire de Recherche et Développement
// de l'Epita (LRDE).
//
// This file is part of Spot, a model checking library.
//
// Spot is free software; you can redistribute it and/or modify it
// under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 3 of the License, or
// (at your option) any later version.
//
// Spot is distributed in the hope that it will be useful, but WITHOUT
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
// License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "countstates.hh"
#include "tgba/tgbaexplicit.hh"
#include "tgbaalgos/stats.hh"
namespace spot
{
unsigned count_states(const tgba* a)
{
const sba_explicit_number* se =
dynamic_cast<const sba_explicit_number*>(a);
if (se)
return se->num_states();
const tgba_explicit_number* te =
dynamic_cast<const tgba_explicit_number*>(a);
if (te)
return te->num_states();
tgba_statistics st = stats_reachable(a);
return st.states;
}
}