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
AM_CPPFLAGS = -I$(srcdir)/.. -I.. $(BUDDY_CPPFLAGS)
AM_CXXFLAGS = $(WARNING_CXXFLAGS)
AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(VISIBILITY_CXXFLAGS)
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).
// 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);

View file

@ -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

View file

@ -1,3 +1,4 @@
// -*- 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);
}

View file

@ -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*,

View file

@ -1,3 +1,4 @@
// -*- 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);
}

View file

@ -1,8 +1,8 @@
// -*- 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,

View file

@ -1,5 +1,8 @@
// 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();

View file

@ -1,6 +1,6 @@
// -*- 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);

View file

@ -1,5 +1,6 @@
// Copyright (C) 2008, 2010 Laboratoire de Recherche et Développement
// 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

View file

@ -1,7 +1,8 @@
// 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);
/// @}

View file

@ -1,7 +1,8 @@
## 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),
## 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,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

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),
// 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.
@ -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
{

View file

@ -1,7 +1,8 @@
// 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() {}

View file

@ -1,8 +1,9 @@
// 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,

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),
// 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:

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),
// 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

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),
// 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,

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),
// 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

View file

@ -1,5 +1,5 @@
// -*- 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);
/// @}
}

View file

@ -19,6 +19,7 @@
#include "cycles.hh"
#include "tgba/tgbaexplicit.hh"
#include "ltlast/formula.hh"
#include "isweakscc.hh"
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).
//
// 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.
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 sba Assume \a g is an SBA and use LBTT's state-based
/// acceptance format (similar to LBT's format).
std::ostream& lbtt_reachable(std::ostream& os, const tgba* g,
bool sba = false);
SPOT_API std::ostream&
lbtt_reachable(std::ostream& os, const tgba* g, bool sba = false);
/// \ingroup tgba_io
/// \brief Read an automaton in LBTT's format
@ -51,12 +51,11 @@ namespace spot
/// \param envacc The environment of acceptance conditions into which parsing
/// should take place.
/// \return the read tgba or 0 on error.
const tgba* lbtt_parse(std::istream& is, std::string& error,
bdd_dict* dict,
ltl::environment& env
= ltl::default_environment::instance(),
ltl::environment& envacc
= ltl::default_environment::instance());
SPOT_API const tgba*
lbtt_parse(std::istream& is, std::string& error,
bdd_dict* dict,
ltl::environment& env = ltl::default_environment::instance(),
ltl::environment& envacc = ltl::default_environment::instance());
}
#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).
//
// This file is part of Spot, a model checking library.
@ -47,8 +48,9 @@ namespace spot
/// \param dict The spot::bdd_dict the constructed automata should use.
/// \param refined_rules If this parameter is set, refined rules are used.
/// \return A spot::taa that recognizes the language of \a f.
taa_tgba* ltl_to_taa(const ltl::formula* f, bdd_dict* dict,
bool refined_rules = false);
SPOT_API taa_tgba*
ltl_to_taa(const ltl::formula* f, bdd_dict* dict,
bool refined_rules = false);
}
#endif // SPOT_TGBAALGOS_LTL2TAA_HH

View file

@ -1,8 +1,9 @@
// -*- coding: utf-8 -*-
// 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
// 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.
//
@ -121,7 +122,7 @@ namespace spot
\endverbatim */
///
/// \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,
bool exprop = false, bool symb_merge = true,
bool branching_postponement = false,

View file

@ -1,6 +1,9 @@
// 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.
// -*- coding: utf-8 -*-
// Copyright (C) 2013 Laboratoire de Recherche et Developpement
// 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.
//
@ -47,7 +50,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* 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

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),
// 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.
@ -94,8 +97,9 @@ namespace spot
///
/// \bug The name is misleading. Magic-search is the algorithm
/// from \c godefroid.93.pstv, not \c courcoubetis.92.fmsd.
emptiness_check* explicit_magic_search(const tgba *a,
option_map o = option_map());
SPOT_API emptiness_check*
explicit_magic_search(const tgba *a,
option_map o = option_map());
/// \brief Returns an emptiness checker on the spot::tgba automaton \a a.
///
@ -124,8 +128,9 @@ namespace spot
///
/// \sa spot::explicit_magic_search
///
emptiness_check* bit_state_hashing_magic_search(const tgba *a, size_t size,
option_map o = option_map());
SPOT_API emptiness_check*
bit_state_hashing_magic_search(const tgba *a, size_t size,
option_map o = option_map());
/// \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
/// in the \c option_map. If \c "bsh" is set and non null, its value
/// 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
/// \pre Dead SCCs should have been removed from \a a before
/// 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.
///
@ -93,7 +93,7 @@ namespace spot
month = oct
}
\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.
///
@ -150,10 +150,10 @@ namespace spot
/// determinization step during minimize_wdba().) Note that
/// checking the size of the minimized WDBA occurs before ensuring
/// that the minimized WDBA is correct.
tgba* minimize_obligation(const tgba* aut_f,
const ltl::formula* f = 0,
const tgba* aut_neg_f = 0,
bool reject_bigger = false);
SPOT_API tgba* minimize_obligation(const tgba* aut_f,
const ltl::formula* f = 0,
const tgba* aut_neg_f = 0,
bool reject_bigger = false);
/// @}
}

View file

@ -1,7 +1,8 @@
// Copyright (C) 2009, 2011, 2012 Laboratoire de Recherche et
// Développement de l'Epita (LRDE).
// -*- coding: utf-8 -*-
// 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),
// 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.
@ -41,10 +42,11 @@ namespace spot
/// it will be output as a comment.
/// \param comments Whether to comment each state of the never clause
/// with the label of the \a g automaton.
std::ostream& never_claim_reachable(std::ostream& os,
const tgba* g,
const ltl::formula* f = 0,
bool comments = false);
SPOT_API std::ostream&
never_claim_reachable(std::ostream& os,
const tgba* g,
const ltl::formula* f = 0,
bool comments = false);
}
#endif // SPOT_TGBAALGOS_NEVERCLAIM_HH

View file

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

View file

@ -1,7 +1,8 @@
// Copyright (C) 2011 Laboratoire de Recherche et Développement de
// l'Epita.
// -*- coding: utf-8 -*-
// Copyright (C) 2011, 2013 Laboratoire de Recherche et Développement
// de l'Epita.
// 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,7 @@
namespace spot
{
struct power_map
struct SPOT_API power_map
{
typedef std::set<const state*, state_ptr_less_than> power_state;
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
/// associated to each state of the deterministic automaton.
//@{
tgba_explicit_number* tgba_powerset(const tgba* aut, power_map& pm);
tgba_explicit_number* tgba_powerset(const tgba* aut);
SPOT_API tgba_explicit_number*
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),
// 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,7 +23,8 @@
#ifndef SPOT_TGBAALGOS_PROJRUN_HH
# define SPOT_TGBAALGOS_PROJRUN_HH
#include <iosfwd>
# include "misc/common.hh"
# include <iosfwd>
namespace spot
{
@ -37,9 +41,10 @@ namespace spot
/// \param a_run the automata on which the run was generated
/// \param a_proj the automata on which to project the run
/// \return true iff the run could be completed
tgba_run* project_tgba_run(const tgba* a_run,
const tgba* a_proj,
const tgba_run* run);
SPOT_API tgba_run*
project_tgba_run(const tgba* a_run, const tgba* a_proj,
const tgba_run* run);
}
#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).
// 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.
@ -77,7 +78,7 @@ namespace spot
/// \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
/// successors one by one.)
tgba*
SPOT_API tgba*
random_graph(int n, float d,
const ltl::atomic_prop_set* ap, bdd_dict* dict,
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
// de l'Epita (LRDE).
// -*- coding: utf-8 -*-
// 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
// (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.
//
// This file is part of Spot, a model checking library.
@ -31,7 +32,7 @@ namespace spot
{
/// \ingroup tgba_generic
/// \brief Iterate over all reachable states of a spot::tgba.
class tgba_reachable_iterator
class SPOT_API tgba_reachable_iterator
{
public:
tgba_reachable_iterator(const tgba* a);
@ -98,7 +99,8 @@ namespace spot
/// \ingroup tgba_generic
/// \brief An implementation of spot::tgba_reachable_iterator that browses
/// 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:
tgba_reachable_iterator_depth_first(const tgba* a);
@ -113,7 +115,8 @@ namespace spot
/// \ingroup tgba_generic
/// \brief An implementation of spot::tgba_reachable_iterator that browses
/// 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:
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
// l'Epita.
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
@ -22,6 +23,8 @@
#ifndef SPOT_TGBAALGOS_REDUCERUN_HH
# define SPOT_TGBAALGOS_REDUCERUN_HH
# include "misc/common.hh"
namespace spot
{
class tgba;
@ -32,7 +35,8 @@ namespace spot
///
/// Return a run which is accepting for \a a and that is no longer
/// 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

View file

@ -1,8 +1,9 @@
// Copyright (C) 2009, 2011, 2012 Laboratoire de Recherche et Développement
// de l'Epita (LRDE).
// -*- coding: utf-8 -*-
// 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
// 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.
//
@ -19,6 +20,7 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#define SKIP_DEPRECATED_WARNING
#include "reductgba_sim.hh"
#include "sccfilter.hh"
#include "simulation.hh"

View file

@ -1,7 +1,8 @@
// Copyright (C) 2009, 2010, 2011, 2012 Laboratoire de Recherche et
// Développement de l'Epita (LRDE).
// -*- coding: utf-8 -*-
// 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),
// 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,6 +24,14 @@
#ifndef 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
{
class tgba;
@ -55,7 +64,6 @@ namespace spot
#endif
};
#if __GNUC__
/// \brief Simplify the automaton using a simulation relation.
///
/// Do not use this obsolete function.
@ -66,23 +74,10 @@ namespace spot
/// 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)
__attribute__ ((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().
/// \deprecated Use scc_filter(), minimize_wdba(), simulation(),
/// or postprocessor.
SPOT_API SPOT_DEPRECATED
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),
// 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,7 +23,8 @@
#ifndef SPOT_TGBAALGOS_REPLAYRUN_HH
# define SPOT_TGBAALGOS_REPLAYRUN_HH
#include <iosfwd>
# include "misc/common.hh"
# include <iosfwd>
namespace spot
{
@ -42,8 +46,9 @@ namespace spot
/// \param debug if set the output will be more verbose and extra
/// debugging informations will be output on failure
/// \return true iff the run could be completed
bool replay_tgba_run(std::ostream& os, const tgba* a, const tgba_run* run,
bool debug = false);
SPOT_API bool
replay_tgba_run(std::ostream& os, const tgba* a, const tgba_run* run,
bool debug = false);
}
#endif // SPOT_TGBAALGOS_REPLAYRUN_HH

View file

@ -1,7 +1,8 @@
// 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),
// 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.
@ -34,7 +35,7 @@ namespace spot
/// \brief Highlight a spot::tgba_run on a spot::tgba.
///
/// 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:
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
// l'Epita (LRDE)
// -*- coding: utf-8 -*-
// 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.
//
@ -45,7 +46,8 @@ namespace spot
/// \param sm an scc_map of the automaton if available (it will be
/// built otherwise. If you supply an scc_map you should call
/// 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.
///
@ -54,8 +56,8 @@ namespace spot
/// only accepting transitions.
///
/// \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),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie.
// -*- coding: utf-8 -*-
// Copyright (C) 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 et Marie Curie.
//
// This file is part of Spot, a model checking library.
//
@ -27,7 +30,8 @@ namespace spot
{
/// \ingroup tgba_io
/// \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

View file

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

View file

@ -1,3 +1,4 @@
// -*- coding: utf-8 -*-
// Copyright (C) 2009, 2010, 2012, 2013 Laboratoire de Recherche et
// Developpement de l'Epita (LRDE).
//
@ -61,9 +62,10 @@ namespace spot
/// (i.e., transitions leaving accepting states are all marked as
/// accepting) may destroy this property. Use scc_filter_states()
/// instead.
tgba* scc_filter(const tgba* aut, bool remove_all_useless = false,
scc_map* given_sm = 0, bdd susp = bddtrue,
bool early_susp = false, bdd ignored = bddtrue);
SPOT_API tgba*
scc_filter(const tgba* aut, bool remove_all_useless = false,
scc_map* given_sm = 0, bdd susp = bddtrue,
bool early_susp = false, bdd ignored = bddtrue);
/// \brief Prune unaccepting SCCs.
///
@ -73,7 +75,8 @@ namespace spot
/// Especially, if the input TGBA has the SBA property, (i.e.,
/// transitions leaving accepting states are all marked as
/// 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

View file

@ -1,6 +1,9 @@
// 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.
// -*- 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 et Marie Curie.
//
// This file is part of Spot, a model checking library.
//
@ -99,8 +102,9 @@ namespace spot
///
/// \sa spot::explicit_magic_search
///
emptiness_check* explicit_se05_search(const tgba *a,
option_map o = option_map());
SPOT_API emptiness_check*
explicit_se05_search(const tgba *a, option_map o = option_map());
/// \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.
@ -128,8 +132,9 @@ namespace spot
///
/// \sa spot::explicit_se05_search
///
emptiness_check* bit_state_hashing_se05_search(const tgba *a, size_t size,
option_map o = option_map());
SPOT_API emptiness_check*
bit_state_hashing_se05_search(const tgba *a, size_t size,
option_map o = option_map());
/// \brief Wrapper for the two se05 implementations.
@ -138,7 +143,8 @@ namespace spot
/// 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
/// 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
# define SPOT_TGBAALGOS_SIMULATION_HH
# include "misc/common.hh"
namespace spot
{
class tgba;
@ -67,8 +69,8 @@ namespace spot
/// \param automaton the automaton to simulate.
/// \return a new automaton which is at worst a copy of the received
/// one
tgba* simulation(const tgba* automaton);
tgba* simulation_sba(const tgba* automaton);
SPOT_API tgba* simulation(const tgba* automaton);
SPOT_API tgba* simulation_sba(const tgba* automaton);
/// @}
/// @{
@ -118,8 +120,8 @@ namespace spot
/// \param automaton the automaton to simulate.
/// \return a new automaton which is at worst a copy of the received
/// one
tgba* cosimulation(const tgba* automaton);
tgba* cosimulation_sba(const tgba* automaton);
SPOT_API tgba* cosimulation(const tgba* automaton);
SPOT_API tgba* cosimulation_sba(const tgba* automaton);
/// @}
/// @{
@ -137,14 +139,15 @@ namespace spot
/// \param automaton the automaton to simulate.
/// \return a new automaton which is at worst a copy of the received
/// one
tgba* iterated_simulations(const tgba* automaton);
tgba* iterated_simulations_sba(const tgba* automaton);
SPOT_API tgba* iterated_simulations(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);

View file

@ -1,7 +1,8 @@
// Copyright (C) 2008, 2011, 2012 Laboratoire de Recherche et
// Développement de l'Epita (LRDE).
// -*- coding: utf-8 -*-
// 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),
// 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 +33,7 @@ namespace spot
/// \addtogroup tgba_misc
/// @{
struct tgba_statistics
struct SPOT_API tgba_statistics
{
unsigned transitions;
unsigned states;
@ -41,7 +42,7 @@ namespace spot
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;
@ -50,12 +51,12 @@ namespace spot
};
/// \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.
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:
printable_formula&
@ -74,7 +75,7 @@ namespace spot
/// This object can be configured to display various statistics
/// about a TGBA. Some %-sequence of characters are interpreted in
/// the format string, and replaced by the corresponding statistics.
class stat_printer: protected formater
class SPOT_API stat_printer: protected formater
{
public:
stat_printer(std::ostream& os, const char* format);

View file

@ -1,5 +1,5 @@
// -*- 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).
//
// 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.
///
/// 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

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),
// 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.
@ -93,8 +96,8 @@ namespace spot
}
\endverbatim */
///
emptiness_check* explicit_tau03_search(const tgba *a,
option_map o = option_map());
SPOT_API emptiness_check*
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),
// 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.
@ -95,8 +98,8 @@ namespace spot
/// the path stored in the blue stack. Such a vector is associated to each
/// state of this stack.
///
emptiness_check* explicit_tau03_opt_search(const tgba *a,
option_map o = option_map());
SPOT_API emptiness_check*
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
/// spot::postprocessor class, but the optimization level is
/// additionally used to select which LTL simplifications to enable.
class translator: protected postprocessor
class SPOT_API translator: protected postprocessor
{
public:
translator(ltl::ltl_simplifier* simpl, const option_map* opt = 0)