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

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 @@
SUBDIRS = gtec
AM_CPPFLAGS = -I$(srcdir)/.. -I.. $(BUDDY_CPPFLAGS)
AM_CXXFLAGS = $(WARNING_CXXFLAGS)
AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(VISIBILITY_CXXFLAGS)
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).
// 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.
//
// 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()
/// in a subclass. Also the search can be restricted to some set of
/// states with a proper definition of bfs_steps::filter().
class bfs_steps
class SPOT_API bfs_steps
{
public:
bfs_steps(const tgba* a);
......
......@@ -49,10 +49,11 @@ namespace spot
/// This interface is subject to change, and clients aiming for
/// long-term stability should better use the services of the
/// spot::translator class instead.
tgba* compsusp(const ltl::formula* f, bdd_dict* dict,
bool no_wdba = false, bool no_simulation = false,
bool early_susp = false, bool no_susp_product = false,
bool wdba_smaller = false, bool oblig = false);
SPOT_API tgba*
compsusp(const ltl::formula* f, bdd_dict* dict,
bool no_wdba = false, bool no_simulation = false,
bool early_susp = false, bool no_susp_product = false,
bool wdba_smaller = false, bool oblig = false);
}
#endif // SPOT_TGBAALGOS_COMPSUSP_HH
// -*- coding: utf-8 -*-
// Copyright (C) 2009, 2013 Laboratoire de Recherche et Developpement de
// l'Epita (LRDE).
//
......@@ -20,7 +21,6 @@
#ifndef SPOT_TGBAALGOS_CUTSCC_HH
# define SPOT_TGBAALGOS_CUTSCC_HH
#include <iosfwd>
#include <set>
#include <vector>
#include "tgba/tgba.hh"
......@@ -34,10 +34,14 @@ namespace spot
unsigned size;
};
std::vector<std::vector<sccs_set* > >* find_paths(tgba* a, const scc_map& m);
unsigned max_spanning_paths(std::vector<sccs_set* >* paths, scc_map& m);
std::list<tgba*> split_tgba(tgba* a, const scc_map& m,
unsigned split_number);
SPOT_API std::vector<std::vector<sccs_set* > >*
find_paths(tgba* a, const scc_map& m);
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
/// run() method will terminate. If it returns true, the run()
/// method will search for the next elementary cycle and call
/// cycle_found() again if it finds another cycle.
class enumerate_cycles
class SPOT_API enumerate_cycles
{
protected:
typedef Sgi::hash_set<const state*,
......
// -*- coding: utf-8 -*-
// Copyright (C) 2012, 2013 Laboratoire de Recherche et Développement
// de l'Epita.
//
......@@ -19,6 +20,8 @@
#ifndef SPOT_TGBAALGOS_DEGEN_HH
# define SPOT_TGBAALGOS_DEGEN_HH
# include "misc/common.hh"
namespace spot
{
class sba;
......@@ -47,9 +50,10 @@ namespace spot
/// \a a to be computed prior to its actual degeneralization.
///
/// \see tgba_sba_proxy, tgba_tba_proxy
sba* degeneralize(const tgba* a, bool use_z_lvl = true,
bool use_cust_acc_orders = false,
bool use_lvl_cache = true);
SPOT_API sba*
degeneralize(const tgba* a, bool use_z_lvl = true,
bool use_cust_acc_orders = false,
bool use_lvl_cache = true);
}
......
// -*- coding: utf-
// Copyright (C) 2011, 2012 Laboratoire de Recherche et Developpement de
// l'Epita (LRDE).
// -*- coding: utf-8 -*-
// Copyright (C) 2011, 2012, 2013 Laboratoire de Recherche et
// Developpement 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
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie.
//
// This file is part of Spot, a model checking library.
......@@ -23,7 +23,8 @@
#ifndef SPOT_TGBAALGOS_DOTTY_HH
# define SPOT_TGBAALGOS_DOTTY_HH
#include <iosfwd>
# include <iosfwd>
# include "misc/common.hh"
namespace spot
{
......@@ -41,7 +42,7 @@ namespace spot
/// decorators. If no decorator is specified, the dotty_decorator
/// is used.
/// labels the transitions are encoded in UTF-8.
std::ostream&
SPOT_API std::ostream&
dotty_reachable(std::ostream& os,
const tgba* g,
bool assume_sba = false,
......
// Copyright (C) 2004, 2011 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
// -*- coding: utf-8 -*-
// 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.
//
// This file is part of Spot, a model checking library.
......@@ -20,7 +23,8 @@
#ifndef SPOT_TGBAALGOS_DOTTYDEC_HH
# define SPOT_TGBAALGOS_DOTTYDEC_HH
#include <string>
# include "misc/common.hh"
# include <string>
namespace spot
{
......@@ -33,7 +37,7 @@ namespace spot
/// \ingroup tgba_dotty
/// \brief Choose state and link styles for spot::dotty_reachable.
class dotty_decorator
class SPOT_API dotty_decorator
{
public:
virtual ~dotty_decorator();
......
// -*- coding: utf-8 -*-
// Copyright (C) 2012 Laboratoire de Recherche et Développement de
// l'Epita (LRDE).
// Copyright (C) 2012, 2013 Laboratoire de Recherche et Développement
// 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.
......@@ -30,23 +30,25 @@ namespace spot
/// \ingroup tgba_misc
/// \brief Build an explicit automata from all states of \a aut,
/// 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
/// \brief Build an explicit automata from all states of \a aut,
/// 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
/// \brief Build an explicit automata from all states of \a aut,
/// numbering states in bread first order as they are processed.
tgba_explicit_number*
SPOT_API tgba_explicit_number*
tgba_dupexp_bfs(const tgba* aut,
std::map<const state*, const state*,
state_ptr_less_than>& relation);
/// \ingroup tgba_misc
/// \brief Build an explicit automata from all states of \a aut,
/// numbering states in depth first order as they are processed.
tgba_explicit_number*
SPOT_API tgba_explicit_number*
tgba_dupexp_dfs(const tgba* aut,
std::map<const state*, const state*,
state_ptr_less_than>& relation);
......
// Copyright (C) 2008, 2010 Laboratoire de Recherche et Dveloppement
// de l'Epita (LRDE).
// -*- coding: utf-8 -*-
// 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.
//
......@@ -46,7 +47,8 @@ namespace spot
/// \param f The formula to translate into an automaton.
/// \param dict The spot::bdd_dict the constructed automata should use.
/// \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
// Copyright (C) 2011 Laboratoire de Recherche et Developpement de
// l'Epita (LRDE).
// -*- coding: utf-8 -*-
// Copyright (C) 2011, 2013 Laboratoire de Recherche et Developpement
// 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
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie.
//
// 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 emptiness_check that produced them as they
/// may reference data internal to the check.
class emptiness_check_result
class SPOT_API emptiness_check_result
{
public:
emptiness_check_result(const tgba* a, option_map o = option_map())
......@@ -129,7 +130,7 @@ namespace spot
};
/// Common interface to emptiness check algorithms.
class emptiness_check
class SPOT_API emptiness_check
{
public:
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.
class emptiness_check_instantiator
class SPOT_API emptiness_check_instantiator
{
public:
/// \brief Create an emptiness-check instantiator, given the name
......@@ -250,7 +251,7 @@ namespace spot
/// @{
/// An accepted run, for a tgba.
struct tgba_run
struct SPOT_API tgba_run
{
struct step {
const state* s;
......@@ -285,15 +286,15 @@ namespace spot
/// This is unlike replay_tgba_run(), which will ensure the run
/// actually exists in the automaton (and will also display any
/// transition annotation).
std::ostream& print_tgba_run(std::ostream& os,
const tgba* a,
const tgba_run* run);
SPOT_API std::ostream&
print_tgba_run(std::ostream& os, const tgba* a, const tgba_run* run);
/// \brief Return an explicit_tgba corresponding to \a run (i.e. comparable
/// states are merged).
///
/// \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
## l'Epita (LRDE).
## -*- coding: utf-8 -*-
## Copyright (C) 2011, 2013 Laboratoire de Recherche et Developpement
## de l'Epita (LRDE).
## 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.
##
## 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/>.
AM_CPPFLAGS = -I$(srcdir)/../.. -I../.. $(BUDDY_CPPFLAGS)
AM_CXXFLAGS = $(WARNING_CXXFLAGS)
AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(VISIBILITY_CXXFLAGS)
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),
// dpartement Systmes Rpartis Coopratifs (SRC), Universit Pierre
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie.
//
// This file is part of Spot, a model checking library.
......@@ -27,7 +30,7 @@
namespace spot
{
/// 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 acss_statistics
{
......
// Copyright (C) 2011 Laboratoire de Recherche et Développement de
// l'Epita (LRDE).
// -*- coding: utf-8 -*-
// Copyright (C) 2011, 2013 Laboratoire de Recherche et Développement
// 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
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie.
//
// This file is part of Spot, a model checking library.
......@@ -29,7 +30,8 @@
namespace spot
{
/// 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:
virtual ~explicit_connected_component() {}
......@@ -46,7 +48,8 @@ namespace spot
/// A straightforward implementation of explicit_connected_component
/// using a hash.
class connected_component_hash_set: public explicit_connected_component
class SPOT_API connected_component_hash_set:
public explicit_connected_component
{
public:
virtual ~connected_component_hash_set() {}
......
// Copyright (C) 2008 Laboratoire de Recherche et Development de
// l'Epita (LRDE).
// -*- coding: utf-8 -*-
// Copyright (C) 2008, 2013 Laboratoire de Recherche et Développement
// de l'Epita (LRDE).
// Copyright (C) 2003, 2004, 2005, 2006 Laboratoire d'Informatique de
// Paris 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
// Université Pierre et Marie Curie.
// 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.
//
......@@ -135,7 +136,7 @@ namespace spot
/// states that belong to the same SCC will be considered when
/// choosing a successor. Otherwise, only the successor of the
/// topmost state on the DFS stack are considered.
emptiness_check*
SPOT_API emptiness_check*
couvreur99(const tgba* a,
option_map options = option_map(),
const numbered_state_heap_factory* nshf
......@@ -145,7 +146,7 @@ namespace spot
/// \brief An implementation of the Couvreur99 emptiness-check algorithm.
///
/// 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:
couvreur99_check(const tgba* a,
......@@ -190,7 +191,7 @@ namespace spot
/// known states first.
///
/// See the documentation for spot::couvreur99.
class couvreur99_check_shy : public couvreur99_check
class SPOT_API couvreur99_check_shy : public couvreur99_check
{
public:
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),
// 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.
//
// This file is part of Spot, a model checking library.
......@@ -20,13 +23,13 @@
#ifndef SPOT_TGBAALGOS_GTEC_NSHEAP_HH
# define SPOT_TGBAALGOS_GTEC_NSHEAP_HH
#include "tgba/state.hh"
#include "misc/hash.hh"
# include "tgba/state.hh"
# include "misc/hash.hh"
namespace spot
{
/// Iterator on numbered_state_heap objects.
class numbered_state_heap_const_iterator
class SPOT_API numbered_state_heap_const_iterator
{
public:
virtual ~numbered_state_heap_const_iterator() {}
......@@ -46,7 +49,7 @@ namespace spot
};
/// Keep track of a large quantity of indexed states.
class numbered_state_heap
class SPOT_API numbered_state_heap
{
public:
typedef std::pair<const state*, int*> state_index_p;
......@@ -95,7 +98,7 @@ namespace spot
};
/// Abstract factory for numbered_state_heap
class numbered_state_heap_factory
class SPOT_API numbered_state_heap_factory
{
public:
virtual ~numbered_state_heap_factory() {}
......@@ -103,7 +106,7 @@ namespace spot
};
/// 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:
virtual ~numbered_state_heap_hash_map();
......@@ -127,7 +130,7 @@ namespace spot
/// \brief Factory for numbered_state_heap_hash_map.
///
/// 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:
......
// -*- 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),
// 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.
//
// 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
// Tarjan-Couvreur algorithm.
class scc_stack
class SPOT_API scc_stack
{
public:
struct connected_component
......
// -*- 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),
// 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.
//
// 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:
/// the automata, the stack of SCCs traversed by the counter-example,
/// and the heap of visited states with their indexes.
class couvreur99_check_status
class SPOT_API couvreur99_check_status
{
public:
couvreur99_check_status(const tgba* aut,
......
// -*- 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),
// 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.
//
// This file is part of Spot, a model checking library.
......@@ -51,8 +54,8 @@ namespace spot
isbn = {3-540-21299-X}
}
\endverbatim */
emptiness_check* explicit_gv04_check(const tgba* a,
option_map o = option_map());
SPOT_API emptiness_check*
explicit_gv04_check(const tgba* a, option_map o = option_map());
}
#endif // SPOT_TGBAALGOS_GV04_HH
// -*- coding: utf-8 -*-
// Copyright (C) 2012 Laboratoire de Recherche et
// Copyright (C) 2012, 2013 Laboratoire de Recherche et
// Développement de l'Epita (LRDE).
//
// 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,
/// but it is more efficient to call is_deterministic() if you do not
/// 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.
///
/// This function is more efficient than count_nondet_states() when
/// the automaton is nondeterministic, because it can return before
/// the entire automaton has been explored.
bool is_deterministic(const tgba* aut);
SPOT_API bool
is_deterministic(const tgba* aut);
/// @}
}
......
......@@ -19,6 +19,7 @@
#include "cycles.hh"
#include "tgba/tgbaexplicit.hh"
#include "ltlast/formula.hh"
#include "isweakscc.hh"
namespace spot
{
......
// 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).
//
// This file is part of Spot, a model checking library.
......@@ -42,7 +43,8 @@ namespace spot
/// necessarily weak.
/// For other accepting SCCs, this function enumerates all cycles in
/// 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.
///
......@@ -52,7 +54,8 @@ namespace spot
/// Note that terminal SCCs are also weak with that definition.
///
/// 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.
///
......@@ -60,7 +63,8 @@ namespace spot
/// a transition that stays into this SCC.
///
/// 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
/// weak.
......@@ -70,7 +74,8 @@ namespace spot
/// syntactic-persistence formula.
///
/// 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
/// terminal.
......@@ -80,14 +85,16 @@ namespace spot
/// syntactic-guarantee formula.
///
/// 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.
///
/// An SCC is terminal if it is weak, complete, and accepting.
///
/// The scc_map \a map should have been built already.