Use -fvisibility=hidden in src/tgbaalgos/.

* src/tgbaalgos/Makefile.am, src/tgbaalgos/gtec/Makefile.am: Add
$(VISIBILITY_CXXFLAGS).
* src/tgbaalgos/bfssteps.hh, src/tgbaalgos/compsusp.hh,
src/tgbaalgos/cutscc.hh, src/tgbaalgos/cycles.hh,
src/tgbaalgos/degen.hh, src/tgbaalgos/dotty.hh,
src/tgbaalgos/dottydec.hh, src/tgbaalgos/dupexp.hh,
src/tgbaalgos/eltl2tgba_lacim.hh, src/tgbaalgos/emptiness.hh,
src/tgbaalgos/gtec/ce.hh, src/tgbaalgos/gtec/explscc.hh,
src/tgbaalgos/gtec/gtec.hh, src/tgbaalgos/gtec/nsheap.hh,
src/tgbaalgos/gtec/sccstack.hh,
src/tgbaalgos/gtec/status.hh, src/tgbaalgos/gv04.hh,
src/tgbaalgos/isdet.hh, src/tgbaalgos/isweakscc.cc,
src/tgbaalgos/isweakscc.hh, src/tgbaalgos/lbtt.hh,
src/tgbaalgos/ltl2taa.hh, src/tgbaalgos/ltl2tgba_fm.hh,
src/tgbaalgos/ltl2tgba_lacim.hh, src/tgbaalgos/magic.hh,
src/tgbaalgos/minimize.hh, src/tgbaalgos/neverclaim.hh,
src/tgbaalgos/postproc.hh, src/tgbaalgos/powerset.hh,
src/tgbaalgos/projrun.hh, src/tgbaalgos/randomgraph.hh,
src/tgbaalgos/reachiter.hh, src/tgbaalgos/reducerun.hh,
src/tgbaalgos/reductgba_sim.cc, src/tgbaalgos/reductgba_sim.hh,
src/tgbaalgos/replayrun.hh, src/tgbaalgos/rundotdec.hh,
src/tgbaalgos/safety.hh, src/tgbaalgos/save.hh, src/tgbaalgos/scc.hh,
src/tgbaalgos/sccfilter.hh, src/tgbaalgos/se05.hh,
src/tgbaalgos/simulation.hh, src/tgbaalgos/stats.hh,
src/tgbaalgos/stripacc.hh, src/tgbaalgos/tau03.hh,
src/tgbaalgos/tau03opt.hh, src/tgbaalgos/translate.hh: Mark public
symbol with SPOT_API.
This commit is contained in:
Alexandre Duret-Lutz 2013-06-28 17:34:20 +02:00
parent dab51a9dd0
commit a0f5d53ea4
50 changed files with 358 additions and 247 deletions

View file

@ -23,7 +23,7 @@
SUBDIRS = gtec SUBDIRS = gtec
AM_CPPFLAGS = -I$(srcdir)/.. -I.. $(BUDDY_CPPFLAGS) AM_CPPFLAGS = -I$(srcdir)/.. -I.. $(BUDDY_CPPFLAGS)
AM_CXXFLAGS = $(WARNING_CXXFLAGS) AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(VISIBILITY_CXXFLAGS)
tgbaalgosdir = $(pkgincludedir)/tgbaalgos tgbaalgosdir = $(pkgincludedir)/tgbaalgos

View file

@ -1,7 +1,8 @@
// Copyright (C) 2011 Laboratoire de Recherche et Developpement de // -*- coding: utf-8 -*-
// Copyright (C) 2011, 2013 Laboratoire de Recherche et Developpement de
// l'Epita (LRDE). // l'Epita (LRDE).
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -38,7 +39,7 @@ namespace spot
/// These conditions should be specified by defining bfs_steps::match() /// These conditions should be specified by defining bfs_steps::match()
/// in a subclass. Also the search can be restricted to some set of /// in a subclass. Also the search can be restricted to some set of
/// states with a proper definition of bfs_steps::filter(). /// states with a proper definition of bfs_steps::filter().
class bfs_steps class SPOT_API bfs_steps
{ {
public: public:
bfs_steps(const tgba* a); bfs_steps(const tgba* a);

View file

@ -49,7 +49,8 @@ namespace spot
/// This interface is subject to change, and clients aiming for /// This interface is subject to change, and clients aiming for
/// long-term stability should better use the services of the /// long-term stability should better use the services of the
/// spot::translator class instead. /// spot::translator class instead.
tgba* compsusp(const ltl::formula* f, bdd_dict* dict, SPOT_API tgba*
compsusp(const ltl::formula* f, bdd_dict* dict,
bool no_wdba = false, bool no_simulation = false, bool no_wdba = false, bool no_simulation = false,
bool early_susp = false, bool no_susp_product = false, bool early_susp = false, bool no_susp_product = false,
bool wdba_smaller = false, bool oblig = false); bool wdba_smaller = false, bool oblig = false);

View file

@ -1,3 +1,4 @@
// -*- coding: utf-8 -*-
// Copyright (C) 2009, 2013 Laboratoire de Recherche et Developpement de // Copyright (C) 2009, 2013 Laboratoire de Recherche et Developpement de
// l'Epita (LRDE). // l'Epita (LRDE).
// //
@ -20,7 +21,6 @@
#ifndef SPOT_TGBAALGOS_CUTSCC_HH #ifndef SPOT_TGBAALGOS_CUTSCC_HH
# define SPOT_TGBAALGOS_CUTSCC_HH # define SPOT_TGBAALGOS_CUTSCC_HH
#include <iosfwd>
#include <set> #include <set>
#include <vector> #include <vector>
#include "tgba/tgba.hh" #include "tgba/tgba.hh"
@ -34,10 +34,14 @@ namespace spot
unsigned size; unsigned size;
}; };
std::vector<std::vector<sccs_set* > >* find_paths(tgba* a, const scc_map& m); SPOT_API std::vector<std::vector<sccs_set* > >*
unsigned max_spanning_paths(std::vector<sccs_set* >* paths, scc_map& m); find_paths(tgba* a, const scc_map& m);
std::list<tgba*> split_tgba(tgba* a, const scc_map& m,
unsigned split_number); SPOT_API unsigned
max_spanning_paths(std::vector<sccs_set* >* paths, scc_map& m);
SPOT_API std::list<tgba*>
split_tgba(tgba* a, const scc_map& m, unsigned split_number);
} }

View file

@ -76,7 +76,7 @@ namespace spot
/// run() method will terminate. If it returns true, the run() /// run() method will terminate. If it returns true, the run()
/// method will search for the next elementary cycle and call /// method will search for the next elementary cycle and call
/// cycle_found() again if it finds another cycle. /// cycle_found() again if it finds another cycle.
class enumerate_cycles class SPOT_API enumerate_cycles
{ {
protected: protected:
typedef Sgi::hash_set<const state*, typedef Sgi::hash_set<const state*,

View file

@ -1,3 +1,4 @@
// -*- coding: utf-8 -*-
// Copyright (C) 2012, 2013 Laboratoire de Recherche et Développement // Copyright (C) 2012, 2013 Laboratoire de Recherche et Développement
// de l'Epita. // de l'Epita.
// //
@ -19,6 +20,8 @@
#ifndef SPOT_TGBAALGOS_DEGEN_HH #ifndef SPOT_TGBAALGOS_DEGEN_HH
# define SPOT_TGBAALGOS_DEGEN_HH # define SPOT_TGBAALGOS_DEGEN_HH
# include "misc/common.hh"
namespace spot namespace spot
{ {
class sba; class sba;
@ -47,7 +50,8 @@ namespace spot
/// \a a to be computed prior to its actual degeneralization. /// \a a to be computed prior to its actual degeneralization.
/// ///
/// \see tgba_sba_proxy, tgba_tba_proxy /// \see tgba_sba_proxy, tgba_tba_proxy
sba* degeneralize(const tgba* a, bool use_z_lvl = true, SPOT_API sba*
degeneralize(const tgba* a, bool use_z_lvl = true,
bool use_cust_acc_orders = false, bool use_cust_acc_orders = false,
bool use_lvl_cache = true); bool use_lvl_cache = true);
} }

View file

@ -1,8 +1,8 @@
// -*- coding: utf- // -*- coding: utf-8 -*-
// Copyright (C) 2011, 2012 Laboratoire de Recherche et Developpement de // Copyright (C) 2011, 2012, 2013 Laboratoire de Recherche et
// l'Epita (LRDE). // Developpement de l'Epita (LRDE).
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -23,7 +23,8 @@
#ifndef SPOT_TGBAALGOS_DOTTY_HH #ifndef SPOT_TGBAALGOS_DOTTY_HH
# define SPOT_TGBAALGOS_DOTTY_HH # define SPOT_TGBAALGOS_DOTTY_HH
#include <iosfwd> # include <iosfwd>
# include "misc/common.hh"
namespace spot namespace spot
{ {
@ -41,7 +42,7 @@ namespace spot
/// decorators. If no decorator is specified, the dotty_decorator /// decorators. If no decorator is specified, the dotty_decorator
/// is used. /// is used.
/// labels the transitions are encoded in UTF-8. /// labels the transitions are encoded in UTF-8.
std::ostream& SPOT_API std::ostream&
dotty_reachable(std::ostream& os, dotty_reachable(std::ostream& os,
const tgba* g, const tgba* g,
bool assume_sba = false, bool assume_sba = false,

View file

@ -1,5 +1,8 @@
// Copyright (C) 2004, 2011 Laboratoire d'Informatique de Paris 6 (LIP6), // -*- coding: utf-8 -*-
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // Copyright (C) 2011, 2013 Laboratoire de Recherche et
// Developpement de l'Epita (LRDE).
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -20,7 +23,8 @@
#ifndef SPOT_TGBAALGOS_DOTTYDEC_HH #ifndef SPOT_TGBAALGOS_DOTTYDEC_HH
# define SPOT_TGBAALGOS_DOTTYDEC_HH # define SPOT_TGBAALGOS_DOTTYDEC_HH
#include <string> # include "misc/common.hh"
# include <string>
namespace spot namespace spot
{ {
@ -33,7 +37,7 @@ namespace spot
/// \ingroup tgba_dotty /// \ingroup tgba_dotty
/// \brief Choose state and link styles for spot::dotty_reachable. /// \brief Choose state and link styles for spot::dotty_reachable.
class dotty_decorator class SPOT_API dotty_decorator
{ {
public: public:
virtual ~dotty_decorator(); virtual ~dotty_decorator();

View file

@ -1,6 +1,6 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2012 Laboratoire de Recherche et Développement de // Copyright (C) 2012, 2013 Laboratoire de Recherche et Développement
// l'Epita (LRDE). // de l'Epita (LRDE).
// Copyright (C) 2003, 2004, 2005 Laboratoire d'Informatique de Paris // Copyright (C) 2003, 2004, 2005 Laboratoire d'Informatique de Paris
// 6 (LIP6), département Systèmes Répartis Coopératifs (SRC), // 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
// Université Pierre et Marie Curie. // Université Pierre et Marie Curie.
@ -30,23 +30,25 @@ namespace spot
/// \ingroup tgba_misc /// \ingroup tgba_misc
/// \brief Build an explicit automata from all states of \a aut, /// \brief Build an explicit automata from all states of \a aut,
/// numbering states in bread first order as they are processed. /// numbering states in bread first order as they are processed.
tgba_explicit_number* tgba_dupexp_bfs(const tgba* aut); SPOT_API tgba_explicit_number*
tgba_dupexp_bfs(const tgba* aut);
/// \ingroup tgba_misc /// \ingroup tgba_misc
/// \brief Build an explicit automata from all states of \a aut, /// \brief Build an explicit automata from all states of \a aut,
/// numbering states in depth first order as they are processed. /// numbering states in depth first order as they are processed.
tgba_explicit_number* tgba_dupexp_dfs(const tgba* aut); SPOT_API tgba_explicit_number*
tgba_dupexp_dfs(const tgba* aut);
/// \ingroup tgba_misc /// \ingroup tgba_misc
/// \brief Build an explicit automata from all states of \a aut, /// \brief Build an explicit automata from all states of \a aut,
/// numbering states in bread first order as they are processed. /// numbering states in bread first order as they are processed.
tgba_explicit_number* SPOT_API tgba_explicit_number*
tgba_dupexp_bfs(const tgba* aut, tgba_dupexp_bfs(const tgba* aut,
std::map<const state*, const state*, std::map<const state*, const state*,
state_ptr_less_than>& relation); state_ptr_less_than>& relation);
/// \ingroup tgba_misc /// \ingroup tgba_misc
/// \brief Build an explicit automata from all states of \a aut, /// \brief Build an explicit automata from all states of \a aut,
/// numbering states in depth first order as they are processed. /// numbering states in depth first order as they are processed.
tgba_explicit_number* SPOT_API tgba_explicit_number*
tgba_dupexp_dfs(const tgba* aut, tgba_dupexp_dfs(const tgba* aut,
std::map<const state*, const state*, std::map<const state*, const state*,
state_ptr_less_than>& relation); state_ptr_less_than>& relation);

View file

@ -1,5 +1,6 @@
// Copyright (C) 2008, 2010 Laboratoire de Recherche et Développement // -*- coding: utf-8 -*-
// de l'Epita (LRDE). // Copyright (C) 2008, 2010, 2013 Laboratoire de Recherche et
// Développement de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
// //
@ -46,7 +47,8 @@ namespace spot
/// \param f The formula to translate into an automaton. /// \param f The formula to translate into an automaton.
/// \param dict The spot::bdd_dict the constructed automata should use. /// \param dict The spot::bdd_dict the constructed automata should use.
/// \return A spot::tgba_bdd_concrete that recognizes the language of \a f. /// \return A spot::tgba_bdd_concrete that recognizes the language of \a f.
tgba_bdd_concrete* eltl_to_tgba_lacim(const ltl::formula* f, bdd_dict* dict); SPOT_API tgba_bdd_concrete*
eltl_to_tgba_lacim(const ltl::formula* f, bdd_dict* dict);
} }
#endif // SPOT_TGBAALGOS_LTL2TGBA_LACIM_HH #endif // SPOT_TGBAALGOS_LTL2TGBA_LACIM_HH

View file

@ -1,7 +1,8 @@
// Copyright (C) 2011 Laboratoire de Recherche et Developpement de // -*- coding: utf-8 -*-
// l'Epita (LRDE). // Copyright (C) 2011, 2013 Laboratoire de Recherche et Developpement
// de l'Epita (LRDE).
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -73,7 +74,7 @@ namespace spot
/// Instances of these class should not last longer than the /// Instances of these class should not last longer than the
/// instances of emptiness_check that produced them as they /// instances of emptiness_check that produced them as they
/// may reference data internal to the check. /// may reference data internal to the check.
class emptiness_check_result class SPOT_API emptiness_check_result
{ {
public: public:
emptiness_check_result(const tgba* a, option_map o = option_map()) emptiness_check_result(const tgba* a, option_map o = option_map())
@ -129,7 +130,7 @@ namespace spot
}; };
/// Common interface to emptiness check algorithms. /// Common interface to emptiness check algorithms.
class emptiness_check class SPOT_API emptiness_check
{ {
public: public:
emptiness_check(const tgba* a, option_map o = option_map()) emptiness_check(const tgba* a, option_map o = option_map())
@ -190,7 +191,7 @@ namespace spot
// Dynamically create emptiness checks. Given their name and options. // Dynamically create emptiness checks. Given their name and options.
class emptiness_check_instantiator class SPOT_API emptiness_check_instantiator
{ {
public: public:
/// \brief Create an emptiness-check instantiator, given the name /// \brief Create an emptiness-check instantiator, given the name
@ -250,7 +251,7 @@ namespace spot
/// @{ /// @{
/// An accepted run, for a tgba. /// An accepted run, for a tgba.
struct tgba_run struct SPOT_API tgba_run
{ {
struct step { struct step {
const state* s; const state* s;
@ -285,15 +286,15 @@ namespace spot
/// This is unlike replay_tgba_run(), which will ensure the run /// This is unlike replay_tgba_run(), which will ensure the run
/// actually exists in the automaton (and will also display any /// actually exists in the automaton (and will also display any
/// transition annotation). /// transition annotation).
std::ostream& print_tgba_run(std::ostream& os, SPOT_API std::ostream&
const tgba* a, print_tgba_run(std::ostream& os, const tgba* a, const tgba_run* run);
const tgba_run* run);
/// \brief Return an explicit_tgba corresponding to \a run (i.e. comparable /// \brief Return an explicit_tgba corresponding to \a run (i.e. comparable
/// states are merged). /// states are merged).
/// ///
/// \pre \a run must correspond to an actual run of the automaton \a a. /// \pre \a run must correspond to an actual run of the automaton \a a.
tgba* tgba_run_to_tgba(const tgba* a, const tgba_run* run); SPOT_API tgba*
tgba_run_to_tgba(const tgba* a, const tgba_run* run);
/// @} /// @}

View file

@ -1,7 +1,8 @@
## Copyright (C) 2011 Laboratoire de Recherche et Developpement de ## -*- coding: utf-8 -*-
## l'Epita (LRDE). ## Copyright (C) 2011, 2013 Laboratoire de Recherche et Developpement
## de l'Epita (LRDE).
## Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6), ## Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
## département Systèmes Répartis Coopératifs (SRC), Université Pierre ## département Systèmes Répartis Coopératifs (SRC), Université Pierre
## et Marie Curie. ## et Marie Curie.
## ##
## This file is part of Spot, a model checking library. ## This file is part of Spot, a model checking library.
@ -20,7 +21,7 @@
## along with this program. If not, see <http://www.gnu.org/licenses/>. ## along with this program. If not, see <http://www.gnu.org/licenses/>.
AM_CPPFLAGS = -I$(srcdir)/../.. -I../.. $(BUDDY_CPPFLAGS) AM_CPPFLAGS = -I$(srcdir)/../.. -I../.. $(BUDDY_CPPFLAGS)
AM_CXXFLAGS = $(WARNING_CXXFLAGS) AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(VISIBILITY_CXXFLAGS)
gtecdir = $(pkgincludedir)/tgbaalgos/gtec gtecdir = $(pkgincludedir)/tgbaalgos/gtec

View file

@ -1,5 +1,8 @@
// -*- coding: utf-8 -*-
// Copyright (C) 2013 Laboratoire de Recherche et Développement de
// l'Epita (LRDE).
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -27,7 +30,7 @@
namespace spot namespace spot
{ {
/// Compute a counter example from a spot::couvreur99_check_status /// Compute a counter example from a spot::couvreur99_check_status
class couvreur99_check_result: class SPOT_API couvreur99_check_result:
public emptiness_check_result, public emptiness_check_result,
public acss_statistics public acss_statistics
{ {

View file

@ -1,7 +1,8 @@
// Copyright (C) 2011 Laboratoire de Recherche et Développement de // -*- coding: utf-8 -*-
// l'Epita (LRDE). // Copyright (C) 2011, 2013 Laboratoire de Recherche et Développement
// de l'Epita (LRDE).
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -29,7 +30,8 @@
namespace spot namespace spot
{ {
/// An SCC storing all its states explicitly. /// An SCC storing all its states explicitly.
class explicit_connected_component: public scc_stack::connected_component class SPOT_API explicit_connected_component:
public scc_stack::connected_component
{ {
public: public:
virtual ~explicit_connected_component() {} virtual ~explicit_connected_component() {}
@ -46,7 +48,8 @@ namespace spot
/// A straightforward implementation of explicit_connected_component /// A straightforward implementation of explicit_connected_component
/// using a hash. /// using a hash.
class connected_component_hash_set: public explicit_connected_component class SPOT_API connected_component_hash_set:
public explicit_connected_component
{ {
public: public:
virtual ~connected_component_hash_set() {} virtual ~connected_component_hash_set() {}

View file

@ -1,8 +1,9 @@
// Copyright (C) 2008 Laboratoire de Recherche et Development de // -*- coding: utf-8 -*-
// l'Epita (LRDE). // Copyright (C) 2008, 2013 Laboratoire de Recherche et Développement
// de l'Epita (LRDE).
// Copyright (C) 2003, 2004, 2005, 2006 Laboratoire d'Informatique de // Copyright (C) 2003, 2004, 2005, 2006 Laboratoire d'Informatique de
// Paris 6 (LIP6), département Systèmes Répartis Coopératifs (SRC), // Paris 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
// Université Pierre et Marie Curie. // Université Pierre et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
// //
@ -135,7 +136,7 @@ namespace spot
/// states that belong to the same SCC will be considered when /// states that belong to the same SCC will be considered when
/// choosing a successor. Otherwise, only the successor of the /// choosing a successor. Otherwise, only the successor of the
/// topmost state on the DFS stack are considered. /// topmost state on the DFS stack are considered.
emptiness_check* SPOT_API emptiness_check*
couvreur99(const tgba* a, couvreur99(const tgba* a,
option_map options = option_map(), option_map options = option_map(),
const numbered_state_heap_factory* nshf const numbered_state_heap_factory* nshf
@ -145,7 +146,7 @@ namespace spot
/// \brief An implementation of the Couvreur99 emptiness-check algorithm. /// \brief An implementation of the Couvreur99 emptiness-check algorithm.
/// ///
/// See the documentation for spot::couvreur99. /// See the documentation for spot::couvreur99.
class couvreur99_check: public emptiness_check, public ec_statistics class SPOT_API couvreur99_check: public emptiness_check, public ec_statistics
{ {
public: public:
couvreur99_check(const tgba* a, couvreur99_check(const tgba* a,
@ -190,7 +191,7 @@ namespace spot
/// known states first. /// known states first.
/// ///
/// See the documentation for spot::couvreur99. /// See the documentation for spot::couvreur99.
class couvreur99_check_shy : public couvreur99_check class SPOT_API couvreur99_check_shy : public couvreur99_check
{ {
public: public:
couvreur99_check_shy(const tgba* a, couvreur99_check_shy(const tgba* a,

View file

@ -1,5 +1,8 @@
// -*- coding: utf-8 -*-
// Copyright (C) 2013 Laboratoire de Recherche et Development de
// l'Epita (LRDE).
// Copyright (C) 2004, 2006 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2004, 2006 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -20,13 +23,13 @@
#ifndef SPOT_TGBAALGOS_GTEC_NSHEAP_HH #ifndef SPOT_TGBAALGOS_GTEC_NSHEAP_HH
# define SPOT_TGBAALGOS_GTEC_NSHEAP_HH # define SPOT_TGBAALGOS_GTEC_NSHEAP_HH
#include "tgba/state.hh" # include "tgba/state.hh"
#include "misc/hash.hh" # include "misc/hash.hh"
namespace spot namespace spot
{ {
/// Iterator on numbered_state_heap objects. /// Iterator on numbered_state_heap objects.
class numbered_state_heap_const_iterator class SPOT_API numbered_state_heap_const_iterator
{ {
public: public:
virtual ~numbered_state_heap_const_iterator() {} virtual ~numbered_state_heap_const_iterator() {}
@ -46,7 +49,7 @@ namespace spot
}; };
/// Keep track of a large quantity of indexed states. /// Keep track of a large quantity of indexed states.
class numbered_state_heap class SPOT_API numbered_state_heap
{ {
public: public:
typedef std::pair<const state*, int*> state_index_p; typedef std::pair<const state*, int*> state_index_p;
@ -95,7 +98,7 @@ namespace spot
}; };
/// Abstract factory for numbered_state_heap /// Abstract factory for numbered_state_heap
class numbered_state_heap_factory class SPOT_API numbered_state_heap_factory
{ {
public: public:
virtual ~numbered_state_heap_factory() {} virtual ~numbered_state_heap_factory() {}
@ -103,7 +106,7 @@ namespace spot
}; };
/// A straightforward implementation of numbered_state_heap with a hash map. /// A straightforward implementation of numbered_state_heap with a hash map.
class numbered_state_heap_hash_map : public numbered_state_heap class SPOT_API numbered_state_heap_hash_map : public numbered_state_heap
{ {
public: public:
virtual ~numbered_state_heap_hash_map(); virtual ~numbered_state_heap_hash_map();
@ -127,7 +130,7 @@ namespace spot
/// \brief Factory for numbered_state_heap_hash_map. /// \brief Factory for numbered_state_heap_hash_map.
/// ///
/// This class is a singleton. Retrieve the instance using instance(). /// This class is a singleton. Retrieve the instance using instance().
class numbered_state_heap_hash_map_factory: class SPOT_API numbered_state_heap_hash_map_factory:
public numbered_state_heap_factory public numbered_state_heap_factory
{ {
public: public:

View file

@ -1,5 +1,8 @@
// -*- coding: utf-8 -*-
// Copyright (C) 2013 Laboratoire de Recherche et Développement de
// l'Epita (LRDE).
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -28,7 +31,7 @@ namespace spot
{ {
// A stack of Strongly-Connected Components, as needed by the // A stack of Strongly-Connected Components, as needed by the
// Tarjan-Couvreur algorithm. // Tarjan-Couvreur algorithm.
class scc_stack class SPOT_API scc_stack
{ {
public: public:
struct connected_component struct connected_component

View file

@ -1,5 +1,8 @@
// -*- coding: utf-8 -*-
// Copyright (C) 2013 Laboratoire de Recherche et Développement de
// l'Epita (LRDE).
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -32,7 +35,7 @@ namespace spot
/// This contains everything needed to construct a counter-example: /// This contains everything needed to construct a counter-example:
/// the automata, the stack of SCCs traversed by the counter-example, /// the automata, the stack of SCCs traversed by the counter-example,
/// and the heap of visited states with their indexes. /// and the heap of visited states with their indexes.
class couvreur99_check_status class SPOT_API couvreur99_check_status
{ {
public: public:
couvreur99_check_status(const tgba* aut, couvreur99_check_status(const tgba* aut,

View file

@ -1,5 +1,8 @@
// -*- coding: utf-8 -*-
// Copyright (C) 2013 Laboratoire de Recherche et Developpement
// de l'Epita (LRDE).
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -51,8 +54,8 @@ namespace spot
isbn = {3-540-21299-X} isbn = {3-540-21299-X}
} }
\endverbatim */ \endverbatim */
emptiness_check* explicit_gv04_check(const tgba* a, SPOT_API emptiness_check*
option_map o = option_map()); explicit_gv04_check(const tgba* a, option_map o = option_map());
} }
#endif // SPOT_TGBAALGOS_GV04_HH #endif // SPOT_TGBAALGOS_GV04_HH

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2012 Laboratoire de Recherche et // Copyright (C) 2012, 2013 Laboratoire de Recherche et
// Développement de l'Epita (LRDE). // Développement de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -32,14 +32,16 @@ namespace spot
/// The automaton is deterministic if it has 0 nondeterministic states, /// The automaton is deterministic if it has 0 nondeterministic states,
/// but it is more efficient to call is_deterministic() if you do not /// but it is more efficient to call is_deterministic() if you do not
/// care about the number of nondeterministic states. /// care about the number of nondeterministic states.
unsigned count_nondet_states(const tgba* aut); SPOT_API unsigned
count_nondet_states(const tgba* aut);
/// \brief Return true iff \a aut is deterministic. /// \brief Return true iff \a aut is deterministic.
/// ///
/// This function is more efficient than count_nondet_states() when /// This function is more efficient than count_nondet_states() when
/// the automaton is nondeterministic, because it can return before /// the automaton is nondeterministic, because it can return before
/// the entire automaton has been explored. /// the entire automaton has been explored.
bool is_deterministic(const tgba* aut); SPOT_API bool
is_deterministic(const tgba* aut);
/// @} /// @}
} }

View file

@ -19,6 +19,7 @@
#include "cycles.hh" #include "cycles.hh"
#include "tgba/tgbaexplicit.hh" #include "tgba/tgbaexplicit.hh"
#include "ltlast/formula.hh" #include "ltlast/formula.hh"
#include "isweakscc.hh"
namespace spot namespace spot
{ {

View file

@ -1,4 +1,5 @@
// Copyright (C) 2012, 2013 Laboratoire de Recherche et Developpement de // -*- coding: utf-8 -*-
// Copyright (C) 2012, 2013 Laboratoire de Recherche et Développement de
// l'Epita (LRDE). // l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -42,7 +43,8 @@ namespace spot
/// necessarily weak. /// necessarily weak.
/// For other accepting SCCs, this function enumerates all cycles in /// For other accepting SCCs, this function enumerates all cycles in
/// the given SCC (it stops if it find a non-accepting cycle). /// the given SCC (it stops if it find a non-accepting cycle).
bool is_inherently_weak_scc(scc_map& map, unsigned scc); SPOT_API bool
is_inherently_weak_scc(scc_map& map, unsigned scc);
/// \brief Whether the SCC number \a scc in \a map is weak. /// \brief Whether the SCC number \a scc in \a map is weak.
/// ///
@ -52,7 +54,8 @@ namespace spot
/// Note that terminal SCCs are also weak with that definition. /// Note that terminal SCCs are also weak with that definition.
/// ///
/// The scc_map \a map should have been built already. /// The scc_map \a map should have been built already.
bool is_weak_scc(scc_map& map, unsigned scc); SPOT_API bool
is_weak_scc(scc_map& map, unsigned scc);
/// \brief Whether the SCC number \a scc in \a map is complete. /// \brief Whether the SCC number \a scc in \a map is complete.
/// ///
@ -60,7 +63,8 @@ namespace spot
/// a transition that stays into this SCC. /// a transition that stays into this SCC.
/// ///
/// The scc_map \a map should have been built already. /// The scc_map \a map should have been built already.
bool is_complete_scc(scc_map& map, unsigned scc); SPOT_API bool
is_complete_scc(scc_map& map, unsigned scc);
/// \brief Whether the SCC number \a scc in \a map is syntactically /// \brief Whether the SCC number \a scc in \a map is syntactically
/// weak. /// weak.
@ -70,7 +74,8 @@ namespace spot
/// syntactic-persistence formula. /// syntactic-persistence formula.
/// ///
/// The scc_map \a map should have been built already. /// The scc_map \a map should have been built already.
bool is_syntactic_weak_scc(scc_map& map, unsigned scc); SPOT_API bool
is_syntactic_weak_scc(scc_map& map, unsigned scc);
/// \brief Whether the SCC number \a scc in \a map is syntactically /// \brief Whether the SCC number \a scc in \a map is syntactically
/// terminal. /// terminal.
@ -80,14 +85,16 @@ namespace spot
/// syntactic-guarantee formula. /// syntactic-guarantee formula.
/// ///
/// The scc_map \a map should have been built already. /// The scc_map \a map should have been built already.
bool is_syntactic_terminal_scc(scc_map& map, unsigned scc); SPOT_API bool
is_syntactic_terminal_scc(scc_map& map, unsigned scc);
/// \brief Whether the SCC number \a scc in \a map is terminal. /// \brief Whether the SCC number \a scc in \a map is terminal.
/// ///
/// An SCC is terminal if it is weak, complete, and accepting. /// An SCC is terminal if it is weak, complete, and accepting.
/// ///
/// The scc_map \a map should have been built already. /// The scc_map \a map should have been built already.
bool is_terminal_scc(scc_map& map, unsigned scc); SPOT_API bool
is_terminal_scc(scc_map& map, unsigned scc);
/// @} /// @}
} }

View file

@ -36,8 +36,8 @@ namespace spot
/// \param os Where to print. /// \param os Where to print.
/// \param sba Assume \a g is an SBA and use LBTT's state-based /// \param sba Assume \a g is an SBA and use LBTT's state-based
/// acceptance format (similar to LBT's format). /// acceptance format (similar to LBT's format).
std::ostream& lbtt_reachable(std::ostream& os, const tgba* g, SPOT_API std::ostream&
bool sba = false); lbtt_reachable(std::ostream& os, const tgba* g, bool sba = false);
/// \ingroup tgba_io /// \ingroup tgba_io
/// \brief Read an automaton in LBTT's format /// \brief Read an automaton in LBTT's format
@ -51,12 +51,11 @@ namespace spot
/// \param envacc The environment of acceptance conditions into which parsing /// \param envacc The environment of acceptance conditions into which parsing
/// should take place. /// should take place.
/// \return the read tgba or 0 on error. /// \return the read tgba or 0 on error.
const tgba* lbtt_parse(std::istream& is, std::string& error, SPOT_API const tgba*
lbtt_parse(std::istream& is, std::string& error,
bdd_dict* dict, bdd_dict* dict,
ltl::environment& env ltl::environment& env = ltl::default_environment::instance(),
= ltl::default_environment::instance(), ltl::environment& envacc = ltl::default_environment::instance());
ltl::environment& envacc
= ltl::default_environment::instance());
} }
#endif // SPOT_TGBAALGOS_LBTT_HH #endif // SPOT_TGBAALGOS_LBTT_HH

View file

@ -1,4 +1,5 @@
// Copyright (C) 2009, 2010 Laboratoire de Recherche et Développement // -*- coding: utf-8 -*-
// Copyright (C) 2009, 2010, 2013 Laboratoire de Recherche et Développement
// de l'Epita (LRDE). // de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -47,7 +48,8 @@ namespace spot
/// \param dict The spot::bdd_dict the constructed automata should use. /// \param dict The spot::bdd_dict the constructed automata should use.
/// \param refined_rules If this parameter is set, refined rules are used. /// \param refined_rules If this parameter is set, refined rules are used.
/// \return A spot::taa that recognizes the language of \a f. /// \return A spot::taa that recognizes the language of \a f.
taa_tgba* ltl_to_taa(const ltl::formula* f, bdd_dict* dict, SPOT_API taa_tgba*
ltl_to_taa(const ltl::formula* f, bdd_dict* dict,
bool refined_rules = false); bool refined_rules = false);
} }

View file

@ -1,8 +1,9 @@
// -*- coding: utf-8 -*-
// Copyright (C) 2010, 2011, 2012, 2013 Laboratoire de Recherche et // Copyright (C) 2010, 2011, 2012, 2013 Laboratoire de Recherche et
// Développement de l'Epita (LRDE). // Développement de l'Epita (LRDE).
// Copyright (C) 2003, 2004, 2005, 2006 Laboratoire d'Informatique de // Copyright (C) 2003, 2004, 2005, 2006 Laboratoire d'Informatique de
// Paris 6 (LIP6), département Systèmes Répartis Coopératifs (SRC), // Paris 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
// Université Pierre et Marie Curie. // Université Pierre et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
// //
@ -121,7 +122,7 @@ namespace spot
\endverbatim */ \endverbatim */
/// ///
/// \return A spot::tgba_explicit that recognizes the language of \a f. /// \return A spot::tgba_explicit that recognizes the language of \a f.
tgba_explicit_formula* SPOT_API tgba_explicit_formula*
ltl_to_tgba_fm(const ltl::formula* f, bdd_dict* dict, ltl_to_tgba_fm(const ltl::formula* f, bdd_dict* dict,
bool exprop = false, bool symb_merge = true, bool exprop = false, bool symb_merge = true,
bool branching_postponement = false, bool branching_postponement = false,

View file

@ -1,6 +1,9 @@
// Copyright (C) 2003, 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6), // -*- coding: utf-8 -*-
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // Copyright (C) 2013 Laboratoire de Recherche et Developpement
// et Marie Curie. // de l'Epita (LRDE).
// Copyright (C) 2003, 2004, 2005 Laboratoire d'Informatique de Paris
// 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
// Université Pierre et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
// //
@ -47,7 +50,8 @@ namespace spot
/// \param f The formula to translate into an automaton. /// \param f The formula to translate into an automaton.
/// \param dict The spot::bdd_dict the constructed automata should use. /// \param dict The spot::bdd_dict the constructed automata should use.
/// \return A spot::tgba_bdd_concrete that recognizes the language of \a f. /// \return A spot::tgba_bdd_concrete that recognizes the language of \a f.
tgba_bdd_concrete* ltl_to_tgba_lacim(const ltl::formula* f, bdd_dict* dict); SPOT_API tgba_bdd_concrete*
ltl_to_tgba_lacim(const ltl::formula* f, bdd_dict* dict);
} }
#endif // SPOT_TGBAALGOS_LTL2TGBA_LACIM_HH #endif // SPOT_TGBAALGOS_LTL2TGBA_LACIM_HH

View file

@ -1,5 +1,8 @@
// -*- coding: utf-8 -*-
// Copyright (C) 2013 Laboratoire de Recherche et Developpement
// de l'Epita (LRDE).
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -94,7 +97,8 @@ namespace spot
/// ///
/// \bug The name is misleading. Magic-search is the algorithm /// \bug The name is misleading. Magic-search is the algorithm
/// from \c godefroid.93.pstv, not \c courcoubetis.92.fmsd. /// from \c godefroid.93.pstv, not \c courcoubetis.92.fmsd.
emptiness_check* explicit_magic_search(const tgba *a, SPOT_API emptiness_check*
explicit_magic_search(const tgba *a,
option_map o = option_map()); option_map o = option_map());
/// \brief Returns an emptiness checker on the spot::tgba automaton \a a. /// \brief Returns an emptiness checker on the spot::tgba automaton \a a.
@ -124,7 +128,8 @@ namespace spot
/// ///
/// \sa spot::explicit_magic_search /// \sa spot::explicit_magic_search
/// ///
emptiness_check* bit_state_hashing_magic_search(const tgba *a, size_t size, SPOT_API emptiness_check*
bit_state_hashing_magic_search(const tgba *a, size_t size,
option_map o = option_map()); option_map o = option_map());
/// \brief Wrapper for the two magic_search implementations. /// \brief Wrapper for the two magic_search implementations.
@ -133,7 +138,8 @@ namespace spot
/// bit_state_hashing_magic_search() according to the \c "bsh" option /// bit_state_hashing_magic_search() according to the \c "bsh" option
/// in the \c option_map. If \c "bsh" is set and non null, its value /// in the \c option_map. If \c "bsh" is set and non null, its value
/// is used as the size of the hash map. /// is used as the size of the hash map.
emptiness_check* magic_search(const tgba *a, option_map o = option_map()); SPOT_API emptiness_check*
magic_search(const tgba *a, option_map o = option_map());
/// @} /// @}
} }

View file

@ -57,7 +57,7 @@ namespace spot
/// \param a the automaton to convert into a minimal deterministic monitor /// \param a the automaton to convert into a minimal deterministic monitor
/// \pre Dead SCCs should have been removed from \a a before /// \pre Dead SCCs should have been removed from \a a before
/// calling this function. /// calling this function.
sba_explicit_number* minimize_monitor(const tgba* a); SPOT_API sba_explicit_number* minimize_monitor(const tgba* a);
/// \brief Minimize a Büchi automaton in the WDBA class. /// \brief Minimize a Büchi automaton in the WDBA class.
/// ///
@ -93,7 +93,7 @@ namespace spot
month = oct month = oct
} }
\endverbatim */ \endverbatim */
sba_explicit_number* minimize_wdba(const tgba* a); SPOT_API sba_explicit_number* minimize_wdba(const tgba* a);
/// \brief Minimize an automaton if it represents an obligation property. /// \brief Minimize an automaton if it represents an obligation property.
/// ///
@ -150,7 +150,7 @@ namespace spot
/// determinization step during minimize_wdba().) Note that /// determinization step during minimize_wdba().) Note that
/// checking the size of the minimized WDBA occurs before ensuring /// checking the size of the minimized WDBA occurs before ensuring
/// that the minimized WDBA is correct. /// that the minimized WDBA is correct.
tgba* minimize_obligation(const tgba* aut_f, SPOT_API tgba* minimize_obligation(const tgba* aut_f,
const ltl::formula* f = 0, const ltl::formula* f = 0,
const tgba* aut_neg_f = 0, const tgba* aut_neg_f = 0,
bool reject_bigger = false); bool reject_bigger = false);

View file

@ -1,7 +1,8 @@
// Copyright (C) 2009, 2011, 2012 Laboratoire de Recherche et // -*- coding: utf-8 -*-
// Développement de l'Epita (LRDE). // Copyright (C) 2009, 2011, 2012, 2013 Laboratoire de Recherche et
// Développement de l'Epita (LRDE).
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -41,7 +42,8 @@ namespace spot
/// it will be output as a comment. /// it will be output as a comment.
/// \param comments Whether to comment each state of the never clause /// \param comments Whether to comment each state of the never clause
/// with the label of the \a g automaton. /// with the label of the \a g automaton.
std::ostream& never_claim_reachable(std::ostream& os, SPOT_API std::ostream&
never_claim_reachable(std::ostream& os,
const tgba* g, const tgba* g,
const ltl::formula* f = 0, const ltl::formula* f = 0,
bool comments = false); bool comments = false);

View file

@ -56,7 +56,7 @@ namespace spot
/// when minimized_obligation failed to produce an automaton smaller /// when minimized_obligation failed to produce an automaton smaller
/// than its input. pref=Small,level=Low will only run /// than its input. pref=Small,level=Low will only run
/// simulation(). /// simulation().
class postprocessor class SPOT_API postprocessor
{ {
public: public:
/// \brief Construct a postprocessor. /// \brief Construct a postprocessor.

View file

@ -1,7 +1,8 @@
// Copyright (C) 2011 Laboratoire de Recherche et Développement de // -*- coding: utf-8 -*-
// l'Epita. // Copyright (C) 2011, 2013 Laboratoire de Recherche et Développement
// de l'Epita.
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -29,7 +30,7 @@
namespace spot namespace spot
{ {
struct power_map struct SPOT_API power_map
{ {
typedef std::set<const state*, state_ptr_less_than> power_state; typedef std::set<const state*, state_ptr_less_than> power_state;
typedef std::map<int, power_state> power_map_data; typedef std::map<int, power_state> power_map_data;
@ -86,8 +87,10 @@ namespace spot
/// If \a pm is supplied it will be filled with the set of original states /// If \a pm is supplied it will be filled with the set of original states
/// associated to each state of the deterministic automaton. /// associated to each state of the deterministic automaton.
//@{ //@{
tgba_explicit_number* tgba_powerset(const tgba* aut, power_map& pm); SPOT_API tgba_explicit_number*
tgba_explicit_number* tgba_powerset(const tgba* aut); tgba_powerset(const tgba* aut, power_map& pm);
SPOT_API tgba_explicit_number*
tgba_powerset(const tgba* aut);
//@} //@}
} }

View file

@ -1,5 +1,8 @@
// -*- coding: utf-8 -*-
// Copyright (C) 2013 Laboratoire de Recherche et Developpement
// de l'Epita (LRDE).
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -20,7 +23,8 @@
#ifndef SPOT_TGBAALGOS_PROJRUN_HH #ifndef SPOT_TGBAALGOS_PROJRUN_HH
# define SPOT_TGBAALGOS_PROJRUN_HH # define SPOT_TGBAALGOS_PROJRUN_HH
#include <iosfwd> # include "misc/common.hh"
# include <iosfwd>
namespace spot namespace spot
{ {
@ -37,9 +41,10 @@ namespace spot
/// \param a_run the automata on which the run was generated /// \param a_run the automata on which the run was generated
/// \param a_proj the automata on which to project the run /// \param a_proj the automata on which to project the run
/// \return true iff the run could be completed /// \return true iff the run could be completed
tgba_run* project_tgba_run(const tgba* a_run, SPOT_API tgba_run*
const tgba* a_proj, project_tgba_run(const tgba* a_run, const tgba* a_proj,
const tgba_run* run);
const tgba_run* run);
} }
#endif // SPOT_TGBAALGOS_PROJRUN_HH #endif // SPOT_TGBAALGOS_PROJRUN_HH

View file

@ -1,7 +1,8 @@
// Copyright (C) 2011 Laboratoire de Recherche et Developpement de // -*- coding: utf-8 -*-
// Copyright (C) 2011, 2013 Laboratoire de Recherche et Developpement de
// l'Epita (LRDE). // l'Epita (LRDE).
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -77,7 +78,7 @@ namespace spot
/// \f$1+(n-1)d\f$ and variance \f$(n-1)d(1-d)\f$. (This is less /// \f$1+(n-1)d\f$ and variance \f$(n-1)d(1-d)\f$. (This is less
/// accurate, but faster than considering all possible \a n /// accurate, but faster than considering all possible \a n
/// successors one by one.) /// successors one by one.)
tgba* SPOT_API tgba*
random_graph(int n, float d, random_graph(int n, float d,
const ltl::atomic_prop_set* ap, bdd_dict* dict, const ltl::atomic_prop_set* ap, bdd_dict* dict,
int n_acc = 0, float a = 0.1, float t = 0.5, int n_acc = 0, float a = 0.1, float t = 0.5,

View file

@ -1,7 +1,8 @@
// Copyright (C) 2008, 2009, 2011 Laboratoire de Recherche et Développement // -*- coding: utf-8 -*-
// de l'Epita (LRDE). // Copyright (C) 2008, 2009, 2011, 2013 Laboratoire de Recherche et
// Développement de l'Epita (LRDE).
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 // Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6
// (LIP6), département Systèmes Répartis Coopératifs (SRC), Université // (LIP6), département Systèmes Répartis Coopératifs (SRC), Université
// Pierre et Marie Curie. // Pierre et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -31,7 +32,7 @@ namespace spot
{ {
/// \ingroup tgba_generic /// \ingroup tgba_generic
/// \brief Iterate over all reachable states of a spot::tgba. /// \brief Iterate over all reachable states of a spot::tgba.
class tgba_reachable_iterator class SPOT_API tgba_reachable_iterator
{ {
public: public:
tgba_reachable_iterator(const tgba* a); tgba_reachable_iterator(const tgba* a);
@ -98,7 +99,8 @@ namespace spot
/// \ingroup tgba_generic /// \ingroup tgba_generic
/// \brief An implementation of spot::tgba_reachable_iterator that browses /// \brief An implementation of spot::tgba_reachable_iterator that browses
/// states depth first. /// states depth first.
class tgba_reachable_iterator_depth_first : public tgba_reachable_iterator class SPOT_API tgba_reachable_iterator_depth_first :
public tgba_reachable_iterator
{ {
public: public:
tgba_reachable_iterator_depth_first(const tgba* a); tgba_reachable_iterator_depth_first(const tgba* a);
@ -113,7 +115,8 @@ namespace spot
/// \ingroup tgba_generic /// \ingroup tgba_generic
/// \brief An implementation of spot::tgba_reachable_iterator that browses /// \brief An implementation of spot::tgba_reachable_iterator that browses
/// states breadth first. /// states breadth first.
class tgba_reachable_iterator_breadth_first : public tgba_reachable_iterator class SPOT_API tgba_reachable_iterator_breadth_first :
public tgba_reachable_iterator
{ {
public: public:
tgba_reachable_iterator_breadth_first(const tgba* a); tgba_reachable_iterator_breadth_first(const tgba* a);

View file

@ -1,3 +1,4 @@
// -*- coding: utf-8 -*-
// Copyright (C) 2010, 2013 Laboratoire de Recherche et Développement de // Copyright (C) 2010, 2013 Laboratoire de Recherche et Développement de
// l'Epita. // l'Epita.
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
@ -22,6 +23,8 @@
#ifndef SPOT_TGBAALGOS_REDUCERUN_HH #ifndef SPOT_TGBAALGOS_REDUCERUN_HH
# define SPOT_TGBAALGOS_REDUCERUN_HH # define SPOT_TGBAALGOS_REDUCERUN_HH
# include "misc/common.hh"
namespace spot namespace spot
{ {
class tgba; class tgba;
@ -32,7 +35,8 @@ namespace spot
/// ///
/// Return a run which is accepting for \a a and that is no longer /// Return a run which is accepting for \a a and that is no longer
/// than \a org. /// than \a org.
tgba_run* reduce_run(const tgba* a, const tgba_run* org); SPOT_API tgba_run*
reduce_run(const tgba* a, const tgba_run* org);
} }
#endif // SPOT_TGBAALGOS_REDUCERUN_HH #endif // SPOT_TGBAALGOS_REDUCERUN_HH

View file

@ -1,8 +1,9 @@
// Copyright (C) 2009, 2011, 2012 Laboratoire de Recherche et Développement // -*- coding: utf-8 -*-
// de l'Epita (LRDE). // Copyright (C) 2009, 2011, 2012, 2013 Laboratoire de Recherche et
// Développement de l'Epita (LRDE).
// Copyright (C) 2004, 2005, 2007 Laboratoire d'Informatique de // Copyright (C) 2004, 2005, 2007 Laboratoire d'Informatique de
// Paris 6 (LIP6), département Systèmes Répartis Coopératifs (SRC), // Paris 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
// Université Pierre et Marie Curie. // Université Pierre et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
// //
@ -19,6 +20,7 @@
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#define SKIP_DEPRECATED_WARNING
#include "reductgba_sim.hh" #include "reductgba_sim.hh"
#include "sccfilter.hh" #include "sccfilter.hh"
#include "simulation.hh" #include "simulation.hh"

View file

@ -1,7 +1,8 @@
// Copyright (C) 2009, 2010, 2011, 2012 Laboratoire de Recherche et // -*- coding: utf-8 -*-
// Développement de l'Epita (LRDE). // Copyright (C) 2009, 2010, 2011, 2012, 2013 Laboratoire de Recherche et
// Développement de l'Epita (LRDE).
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -23,6 +24,14 @@
#ifndef SPOT_TGBAALGOS_REDUCTGBA_SIM_HH #ifndef SPOT_TGBAALGOS_REDUCTGBA_SIM_HH
#define SPOT_TGBAALGOS_REDUCTGBA_SIM_HH #define SPOT_TGBAALGOS_REDUCTGBA_SIM_HH
#if __GNUC__
#ifndef SKIP_DEPRECATED_WARNING
#warning This file is deprecated. Use postproc.hh instead.
#endif
#endif
#include "misc/common.hh"
namespace spot namespace spot
{ {
class tgba; class tgba;
@ -55,7 +64,6 @@ namespace spot
#endif #endif
}; };
#if __GNUC__
/// \brief Simplify the automaton using a simulation relation. /// \brief Simplify the automaton using a simulation relation.
/// ///
/// Do not use this obsolete function. /// Do not use this obsolete function.
@ -66,23 +74,10 @@ namespace spot
/// simulation-related flag will cause direct simulation /// simulation-related flag will cause direct simulation
/// to be applied. /// to be applied.
/// \return the reduced automaton /// \return the reduced automaton
/// \deprecated Use scc_filter(), minimize_wdba(), or simulation(). /// \deprecated Use scc_filter(), minimize_wdba(), simulation(),
const tgba* reduc_tgba_sim(const tgba* a, int opt = Reduce_All) /// or postprocessor.
__attribute__ ((deprecated)); SPOT_API SPOT_DEPRECATED
#else
/// \brief Simplify the automaton using a simulation relation.
///
/// Do not use this obsolete function.
///
/// \param a the automata to reduce
/// \param opt a conjonction of spot::reduce_tgba_options specifying
/// which optimizations to apply. Actually any
/// simulation-related flag will cause direct simulation
/// to be applied.
/// \return the reduced automaton
/// \deprecated Use scc_filter(), minimize_wdba(), or simulation().
const tgba* reduc_tgba_sim(const tgba* a, int opt = Reduce_All); const tgba* reduc_tgba_sim(const tgba* a, int opt = Reduce_All);
#endif
/// @} /// @}
} }

View file

@ -1,5 +1,8 @@
// -*- coding: utf-8 -*-
// Copyright (C) 2013 Laboratoire de Recherche et Developpement
// de l'Epita (LRDE).
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -20,7 +23,8 @@
#ifndef SPOT_TGBAALGOS_REPLAYRUN_HH #ifndef SPOT_TGBAALGOS_REPLAYRUN_HH
# define SPOT_TGBAALGOS_REPLAYRUN_HH # define SPOT_TGBAALGOS_REPLAYRUN_HH
#include <iosfwd> # include "misc/common.hh"
# include <iosfwd>
namespace spot namespace spot
{ {
@ -42,7 +46,8 @@ namespace spot
/// \param debug if set the output will be more verbose and extra /// \param debug if set the output will be more verbose and extra
/// debugging informations will be output on failure /// debugging informations will be output on failure
/// \return true iff the run could be completed /// \return true iff the run could be completed
bool replay_tgba_run(std::ostream& os, const tgba* a, const tgba_run* run, SPOT_API bool
replay_tgba_run(std::ostream& os, const tgba* a, const tgba_run* run,
bool debug = false); bool debug = false);
} }

View file

@ -1,7 +1,8 @@
// Copyright (C) 2011 Laboratoire de Recherche et Developpement de // -*- coding: utf-8 -*-
// l'Epita (LRDE). // Copyright (C) 2011, 2013 Laboratoire de Recherche et Developpement
// de l'Epita (LRDE).
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -34,7 +35,7 @@ namespace spot
/// \brief Highlight a spot::tgba_run on a spot::tgba. /// \brief Highlight a spot::tgba_run on a spot::tgba.
/// ///
/// An instance of this class can be passed to spot::dotty_reachable. /// An instance of this class can be passed to spot::dotty_reachable.
class tgba_run_dotty_decorator: public dotty_decorator class SPOT_API tgba_run_dotty_decorator: public dotty_decorator
{ {
public: public:
tgba_run_dotty_decorator(const tgba_run* run); tgba_run_dotty_decorator(const tgba_run* run);

View file

@ -1,5 +1,6 @@
// Copyright (C) 2010, 2011 Laboratoire de Recherche et Développement de // -*- coding: utf-8 -*-
// l'Epita (LRDE) // Copyright (C) 2010, 2011, 2013 Laboratoire de Recherche et
// Développement de l'Epita (LRDE)
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
// //
@ -45,7 +46,8 @@ namespace spot
/// \param sm an scc_map of the automaton if available (it will be /// \param sm an scc_map of the automaton if available (it will be
/// built otherwise. If you supply an scc_map you should call /// built otherwise. If you supply an scc_map you should call
/// build_map() before passing it to this function. /// build_map() before passing it to this function.
bool is_guarantee_automaton(const tgba* aut, const scc_map* sm = 0); SPOT_API bool
is_guarantee_automaton(const tgba* aut, const scc_map* sm = 0);
/// \brief Whether a minimized WDBA represents a safety property. /// \brief Whether a minimized WDBA represents a safety property.
/// ///
@ -54,8 +56,8 @@ namespace spot
/// only accepting transitions. /// only accepting transitions.
/// ///
/// \param aut the automaton to check /// \param aut the automaton to check
bool is_safety_mwdba(const tgba* aut); SPOT_API bool
is_safety_mwdba(const tgba* aut);
} }

View file

@ -1,6 +1,9 @@
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6), // -*- coding: utf-8 -*-
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // Copyright (C) 2013 Laboratoire de Recherche et Developpement
// et Marie Curie. // de l'Epita (LRDE).
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6
// (LIP6), département Systèmes Répartis Coopératifs (SRC), Université
// Pierre et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
// //
@ -27,7 +30,8 @@ namespace spot
{ {
/// \ingroup tgba_io /// \ingroup tgba_io
/// \brief Save reachable states in text format. /// \brief Save reachable states in text format.
std::ostream& tgba_save_reachable(std::ostream& os, const tgba* g); SPOT_API std::ostream&
tgba_save_reachable(std::ostream& os, const tgba* g);
} }
#endif // SPOT_TGBAALGOS_SAVE_HH #endif // SPOT_TGBAALGOS_SAVE_HH

View file

@ -1,6 +1,6 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2008, 2009, 2010, 2011, 2012 Laboratoire de Recherche // Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013 Laboratoire de
// et Développement de l'Epita. // Recherche et Développement de l'Epita.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
// //
@ -31,7 +31,7 @@
namespace spot namespace spot
{ {
struct scc_stats struct SPOT_API scc_stats
{ {
/// Total number of SCCs. /// Total number of SCCs.
unsigned scc_total; unsigned scc_total;
@ -67,7 +67,7 @@ namespace spot
}; };
/// Build a map of Strongly Connected components in in a TGBA. /// Build a map of Strongly Connected components in in a TGBA.
class scc_map class SPOT_API scc_map
{ {
public: public:
typedef std::map<unsigned, bdd> succ_type; typedef std::map<unsigned, bdd> succ_type;
@ -247,13 +247,15 @@ namespace spot
unsigned self_loops_; // Self loops count. unsigned self_loops_; // Self loops count.
}; };
scc_stats build_scc_stats(const tgba* a); SPOT_API scc_stats
scc_stats build_scc_stats(const scc_map& m); build_scc_stats(const tgba* a);
SPOT_API scc_stats
build_scc_stats(const scc_map& m);
std::ostream& dump_scc_dot(const tgba* a, std::ostream& out, SPOT_API std::ostream&
bool verbose = false); dump_scc_dot(const tgba* a, std::ostream& out, bool verbose = false);
std::ostream& dump_scc_dot(const scc_map& m, std::ostream& out, SPOT_API std::ostream&
bool verbose = false); dump_scc_dot(const scc_map& m, std::ostream& out, bool verbose = false);
} }
#endif // SPOT_TGBAALGOS_SCC_HH #endif // SPOT_TGBAALGOS_SCC_HH

View file

@ -1,3 +1,4 @@
// -*- coding: utf-8 -*-
// Copyright (C) 2009, 2010, 2012, 2013 Laboratoire de Recherche et // Copyright (C) 2009, 2010, 2012, 2013 Laboratoire de Recherche et
// Developpement de l'Epita (LRDE). // Developpement de l'Epita (LRDE).
// //
@ -61,7 +62,8 @@ namespace spot
/// (i.e., transitions leaving accepting states are all marked as /// (i.e., transitions leaving accepting states are all marked as
/// accepting) may destroy this property. Use scc_filter_states() /// accepting) may destroy this property. Use scc_filter_states()
/// instead. /// instead.
tgba* scc_filter(const tgba* aut, bool remove_all_useless = false, SPOT_API tgba*
scc_filter(const tgba* aut, bool remove_all_useless = false,
scc_map* given_sm = 0, bdd susp = bddtrue, scc_map* given_sm = 0, bdd susp = bddtrue,
bool early_susp = false, bdd ignored = bddtrue); bool early_susp = false, bdd ignored = bddtrue);
@ -73,7 +75,8 @@ namespace spot
/// Especially, if the input TGBA has the SBA property, (i.e., /// Especially, if the input TGBA has the SBA property, (i.e.,
/// transitions leaving accepting states are all marked as /// transitions leaving accepting states are all marked as
/// accepting), then the output TGBA will also have that property. /// accepting), then the output TGBA will also have that property.
tgba* scc_filter_states(const tgba* aut, scc_map* given_sm = 0); SPOT_API tgba*
scc_filter_states(const tgba* aut, scc_map* given_sm = 0);
} }
#endif // SPOT_TGBAALGOS_SCC_HH #endif // SPOT_TGBAALGOS_SCC_HH

View file

@ -1,6 +1,9 @@
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6), // -*- coding: utf-8 -*-
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // Copyright (C) 2013 Laboratoire de Recherche et Developpement
// et Marie Curie. // de l'Epita (LRDE).
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6
// (LIP6), département Systèmes Répartis Coopératifs (SRC), Université
// Pierre et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
// //
@ -99,8 +102,9 @@ namespace spot
/// ///
/// \sa spot::explicit_magic_search /// \sa spot::explicit_magic_search
/// ///
emptiness_check* explicit_se05_search(const tgba *a, SPOT_API emptiness_check*
option_map o = option_map()); explicit_se05_search(const tgba *a, option_map o = option_map());
/// \brief Returns an emptiness checker on the spot::tgba automaton \a a. /// \brief Returns an emptiness checker on the spot::tgba automaton \a a.
/// ///
/// \pre The automaton \a a must have at most one acceptance condition (i.e. /// \pre The automaton \a a must have at most one acceptance condition (i.e.
@ -128,7 +132,8 @@ namespace spot
/// ///
/// \sa spot::explicit_se05_search /// \sa spot::explicit_se05_search
/// ///
emptiness_check* bit_state_hashing_se05_search(const tgba *a, size_t size, SPOT_API emptiness_check*
bit_state_hashing_se05_search(const tgba *a, size_t size,
option_map o = option_map()); option_map o = option_map());
@ -138,7 +143,8 @@ namespace spot
/// bit_state_hashing_se05_search() according to the \c "bsh" option /// bit_state_hashing_se05_search() according to the \c "bsh" option
/// in the \c option_map. If \c "bsh" is set and non null, its value /// in the \c option_map. If \c "bsh" is set and non null, its value
/// is used as the size of the hash map. /// is used as the size of the hash map.
emptiness_check* se05(const tgba *a, option_map o); SPOT_API emptiness_check*
se05(const tgba *a, option_map o);
/// @} /// @}
} }

View file

@ -20,6 +20,8 @@
#ifndef SPOT_TGBAALGOS_SIMULATION_HH #ifndef SPOT_TGBAALGOS_SIMULATION_HH
# define SPOT_TGBAALGOS_SIMULATION_HH # define SPOT_TGBAALGOS_SIMULATION_HH
# include "misc/common.hh"
namespace spot namespace spot
{ {
class tgba; class tgba;
@ -67,8 +69,8 @@ namespace spot
/// \param automaton the automaton to simulate. /// \param automaton the automaton to simulate.
/// \return a new automaton which is at worst a copy of the received /// \return a new automaton which is at worst a copy of the received
/// one /// one
tgba* simulation(const tgba* automaton); SPOT_API tgba* simulation(const tgba* automaton);
tgba* simulation_sba(const tgba* automaton); SPOT_API tgba* simulation_sba(const tgba* automaton);
/// @} /// @}
/// @{ /// @{
@ -118,8 +120,8 @@ namespace spot
/// \param automaton the automaton to simulate. /// \param automaton the automaton to simulate.
/// \return a new automaton which is at worst a copy of the received /// \return a new automaton which is at worst a copy of the received
/// one /// one
tgba* cosimulation(const tgba* automaton); SPOT_API tgba* cosimulation(const tgba* automaton);
tgba* cosimulation_sba(const tgba* automaton); SPOT_API tgba* cosimulation_sba(const tgba* automaton);
/// @} /// @}
/// @{ /// @{
@ -137,14 +139,15 @@ namespace spot
/// \param automaton the automaton to simulate. /// \param automaton the automaton to simulate.
/// \return a new automaton which is at worst a copy of the received /// \return a new automaton which is at worst a copy of the received
/// one /// one
tgba* iterated_simulations(const tgba* automaton); SPOT_API tgba* iterated_simulations(const tgba* automaton);
tgba* iterated_simulations_sba(const tgba* automaton); SPOT_API tgba* iterated_simulations_sba(const tgba* automaton);
/// @} /// @}
tgba* dont_care_simulation(const tgba* t, int limit = -1); SPOT_API tgba*
dont_care_simulation(const tgba* t, int limit = -1);
tgba* SPOT_API tgba*
dont_care_iterated_simulations(const tgba* t, int limit = -1); dont_care_iterated_simulations(const tgba* t, int limit = -1);

View file

@ -1,7 +1,8 @@
// Copyright (C) 2008, 2011, 2012 Laboratoire de Recherche et // -*- coding: utf-8 -*-
// Développement de l'Epita (LRDE). // Copyright (C) 2008, 2011, 2012, 2013 Laboratoire de Recherche et
// Développement de l'Epita (LRDE).
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -32,7 +33,7 @@ namespace spot
/// \addtogroup tgba_misc /// \addtogroup tgba_misc
/// @{ /// @{
struct tgba_statistics struct SPOT_API tgba_statistics
{ {
unsigned transitions; unsigned transitions;
unsigned states; unsigned states;
@ -41,7 +42,7 @@ namespace spot
std::ostream& dump(std::ostream& out) const; std::ostream& dump(std::ostream& out) const;
}; };
struct tgba_sub_statistics: public tgba_statistics struct SPOT_API tgba_sub_statistics: public tgba_statistics
{ {
unsigned sub_transitions; unsigned sub_transitions;
@ -50,12 +51,12 @@ namespace spot
}; };
/// \brief Compute statistics for an automaton. /// \brief Compute statistics for an automaton.
tgba_statistics stats_reachable(const tgba* g); SPOT_API tgba_statistics stats_reachable(const tgba* g);
/// \brief Compute subended statistics for an automaton. /// \brief Compute subended statistics for an automaton.
tgba_sub_statistics sub_stats_reachable(const tgba* g); SPOT_API tgba_sub_statistics sub_stats_reachable(const tgba* g);
class printable_formula: public printable_value<const ltl::formula*> class SPOT_API printable_formula: public printable_value<const ltl::formula*>
{ {
public: public:
printable_formula& printable_formula&
@ -74,7 +75,7 @@ namespace spot
/// This object can be configured to display various statistics /// This object can be configured to display various statistics
/// about a TGBA. Some %-sequence of characters are interpreted in /// about a TGBA. Some %-sequence of characters are interpreted in
/// the format string, and replaced by the corresponding statistics. /// the format string, and replaced by the corresponding statistics.
class stat_printer: protected formater class SPOT_API stat_printer: protected formater
{ {
public: public:
stat_printer(std::ostream& os, const char* format); stat_printer(std::ostream& os, const char* format);

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2012 Laboratoire de Recherche et Développement de // Copyright (C) 2012, 2013 Laboratoire de Recherche et Développement de
// l'Epita (LRDE). // l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -28,7 +28,8 @@ namespace spot
/// \brief Duplicate automaton \a a, removing all acceptance sets. /// \brief Duplicate automaton \a a, removing all acceptance sets.
/// ///
/// This is equivalent to marking all states/transitions as accepting. /// This is equivalent to marking all states/transitions as accepting.
sba_explicit_number* strip_acceptance(const tgba* a); SPOT_API sba_explicit_number*
strip_acceptance(const tgba* a);
} }
#endif // SPOT_TGBAALGOS_STRIPACC_HH #endif // SPOT_TGBAALGOS_STRIPACC_HH

View file

@ -1,5 +1,8 @@
// -*- coding: utf-8 -*-
// Copyright (C) 2013 Laboratoire de Recherche et Développement de
// l'Epita (LRDE).
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -93,8 +96,8 @@ namespace spot
} }
\endverbatim */ \endverbatim */
/// ///
emptiness_check* explicit_tau03_search(const tgba *a, SPOT_API emptiness_check*
option_map o = option_map()); explicit_tau03_search(const tgba *a, option_map o = option_map());
/// @} /// @}
} }

View file

@ -1,5 +1,8 @@
// -*- coding: utf-8 -*-
// Copyright (C) 2013 Laboratoire de Recherche et Développement de
// l'Epita (LRDE).
// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6), // Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre // département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie. // et Marie Curie.
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -95,8 +98,8 @@ namespace spot
/// the path stored in the blue stack. Such a vector is associated to each /// the path stored in the blue stack. Such a vector is associated to each
/// state of this stack. /// state of this stack.
/// ///
emptiness_check* explicit_tau03_opt_search(const tgba *a, SPOT_API emptiness_check*
option_map o = option_map()); explicit_tau03_opt_search(const tgba *a, option_map o = option_map());
/// @} /// @}
} }

View file

@ -45,7 +45,7 @@ namespace spot
/// The semantic of these three methods is inherited from the /// The semantic of these three methods is inherited from the
/// spot::postprocessor class, but the optimization level is /// spot::postprocessor class, but the optimization level is
/// additionally used to select which LTL simplifications to enable. /// additionally used to select which LTL simplifications to enable.
class translator: protected postprocessor class SPOT_API translator: protected postprocessor
{ {
public: public:
translator(ltl::ltl_simplifier* simpl, const option_map* opt = 0) translator(ltl::ltl_simplifier* simpl, const option_map* opt = 0)