Commit a0f5d53e authored by Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz
Browse files

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.
parent dab51a9d
...@@ -23,7 +23,7 @@ ...@@ -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
......
// 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 ...@@ -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);
......
...@@ -49,10 +49,11 @@ namespace spot ...@@ -49,10 +49,11 @@ 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*
bool no_wdba = false, bool no_simulation = false, compsusp(const ltl::formula* f, bdd_dict* dict,
bool early_susp = false, bool no_susp_product = false, bool no_wdba = false, bool no_simulation = false,
bool wdba_smaller = false, bool oblig = false); bool early_susp = false, bool no_susp_product = false,
bool wdba_smaller = false, bool oblig = false);
} }
#endif // SPOT_TGBAALGOS_COMPSUSP_HH #endif // SPOT_TGBAALGOS_COMPSUSP_HH
// -*- 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 @@ ...@@ -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 ...@@ -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);
} }
......
...@@ -76,7 +76,7 @@ namespace spot ...@@ -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*,
......
// -*- 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 @@ ...@@ -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,9 +50,10 @@ namespace spot ...@@ -47,9 +50,10 @@ 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*
bool use_cust_acc_orders = false, degeneralize(const tgba* a, bool use_z_lvl = true,
bool use_lvl_cache = true); bool use_cust_acc_orders = false,
bool use_lvl_cache = true);
} }
......
// -*- 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 @@ ...@@ -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 ...@@ -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,
......
// 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 @@ ...@@ -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 ...@@ -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();
......
// -*- 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 ...@@ -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);
......
// Copyright (C) 2008, 2010 Laboratoire de Recherche et Dveloppement // -*- 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 ...@@ -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
// 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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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);
/// @} /// @}
......
## 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),
## dpartement Systmes Rpartis Coopratifs (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 @@ ...@@ -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
......
// -*- 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),
// dpartement Systmes Rpartis Coopratifs (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 @@ ...@@ -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
{ {
......
// 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 @@ ...@@ -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 ...@@ -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() {}
......
// 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 ...@@ -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 ...@@ -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 ...@@ -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,
......
// -*- 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 @@ ...@@ -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 ...@@ -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 ...@@ -95,7 +98,7 @@ namespace spot
}; };