Commit graph

168 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
9a14d28a06 Use bdd_satprefix() to speedup minato on BDDs that are almost cubes.
* src/misc/minato.cc (minato_isop::minato_isop): Call bdd_satprefix.
(minato_isop::next): Avoid useless intermediate variables.
* src/misc/minato.hh: Typo in comments.
2009-11-23 21:58:00 +01:00
Alexandre Duret-Lutz
dfb9c6622b Strip useless acceptance conditions in scc_filter().
A useless acceptance conditions is one that is always implied by
another.

* src/misc/bddop.hh, src/misc/bddop.cc
(compute_neg_acceptance_conditions): New function.
* src/tgba/tgbaexplicit.hh, src/tgba/tgbaexplicit.cc
(set_acceptance_conditions): New function.
* src/tgbaalgos/scc.cc (build_map, build_scc_stats, dump_scc_dot):
Keep track of useful acceptance conditions.
(useful_acc_of): New function.
* src/tgbaalgos/scc.hh (scc_stats, scc_map::scc::useful_scc): New
attributes.
* src/tgbaalgos/sccfilter.cc (filter_iter): Adjust to filter
useless acceptance conditions.
(scc_filter): Compute useful acceptance conditions and pass them
to filter_iter.
2009-11-20 19:21:12 +01:00
Damien Lefortier
84060b49e5 Minor fixes.
* src/misc/bddop.hh, src/tgba/taa.hh, src/tgbaalgos/ltl2taa.hh:
Fix sanity (incorrect include guard).
* src/tgba/tgbacomplement.cc, src/tgba/tgbacomplement.hh:
Copyright 2009.
* src/tgbaalgos/eltl2tgba_lacim.cc: Use abbreviations.
* src/tgbatest/taa.cc: Fix it.
2009-10-16 17:48:47 +02:00
Damien Lefortier
20c1f01e48 Add a class to represent Transition-based Alternating Automata (TAA).
* misc/Makefile.am, misc/bbop.cc, misc/bddop.hh: Factorize some
code on BDDs to compute all_acceptance_conditions from
neg_acceptance_condition.
* src/tgba/Makefile.am, src/tgbatest/Makefile.am: Adjust.
* src/tgba/taa.cc, src/tgba/taa.hh: The TAA class.
* src/tgba/tgbaexplicit.hh: Use the factorized code in bddop.hh.
* src/tgbatest/taa.cc, src/tgbatest/taa.test: Some test cases.
2009-10-16 17:03:58 +02:00
Guillaume SADEGH
1d58493be3 Update to compile with the Intel compiler. 2008-12-18 23:41:10 +01:00
Alexandre Duret-Lutz
323e326c7d Second thinko in #if/#else. 2008-03-25 16:26:50 +01:00
Alexandre Duret-Lutz
07fd0377e6 Thinko in #if/#else. 2008-03-25 15:43:51 +01:00
Damien Lefortier
b71360ae44 Avoid <iostream> in headers, better use <iosfwd>. 2008-03-21 21:59:34 +01:00
Alexandre Duret-Lutz
c764b2021d * src/tgbatest/ltl2tgba.cc, src/misc/hash.hh: Reformat the header
using 80 columns.
2008-03-21 17:02:57 +01:00
Alexandre Duret-Lutz
d3b702a97c Make sure Spot compiles with g++-4.3.
* src/ltlast/formula.hh (hash): Remove const from return type.
This kills a g++-4.3 warning.
* src/misc/hash.hh: Adjust to use unordered_set and unordered_map
from TR1 when g++-4.3 is used.
* src/evtgba/product.cc, src/ltltest/randltl.cc,
src/ltlvisit/randomltl.cc, src/ltlvisit/tostring.cc,
src/misc/freelist.hh, src/misc/optionmap.cc,
src/tgba/tgbareduc.hh, src/tgbaalgos/gv04.cc,
src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/randomgraph.cc,
src/tgbatest/ltl2tgba.cc, src/tgbatest/randtgba.cc,
src/ltltest/equals.cc, src/ltltest/readltl.cc,
src/ltltest/reduc.cc, src/ltltest/syntimpl.cc,
src/ltltest/tostring.cc, src/tgbatest/ltlprod.cc,
src/tgbatest/powerset.cc, src/tgbatest/explprod.cc,
src/tgbatest/mixprod.cc, src/tgbatest/readsave.cc,
src/tgbatest/reductgba.cc, src/tgbatest/tgbaread.cc,
src/tgbatest/tripprod.cc, src/evtgbatest/product.cc,
src/evtgbatest/readsave.cc, src/evtgbatest/ltl2evtgba.cc,
src/evtgbatest/readsave.cc: Add missing includes.
* src/tgbatest/explicit.test, src/tgbatest/explprod.test,
src/tgbatest/explpro2.test, src/tgbatest/troprod.test,
src/tgbatest/emptchk.test: Cope with different outputs.
2008-03-14 22:45:37 +01:00
Alexandre Duret-Lutz
5ef7084b61 Add .gitignore files 2008-03-14 16:59:32 +01:00
Alexandre Duret-Lutz
089c315c28 * src/misc/bddalloc.cc (bdd_allocator::initialize):
Disable the default GC handler.  Reported by
Kristin Yvonne Rozier <kyrozier@cs.rice.edu>.
2008-02-25 14:37:54 +01:00
Alexandre Duret-Lutz
21e2439d06 * src/misc/bddalloc.cc (bdd_allocator::initialize): Call
bdd_isrunning() and don't run bdd_init() if it has already been
called.
2008-02-25 14:36:59 +01:00
Alexandre Duret-Lutz
c2bc76816b * src/misc/memusage.cc, src/misc/memusage.hh: New files.
* src/misc/Makefile.am: Add them.
* src/tgbaalgos/gtec/gtec.cc,
src/tgbaalgos/gtec/gtec.hh: Add a "vmsize" statistic.
2008-02-25 14:36:58 +01:00
Alexandre Duret-Lutz
9e97543e33 * src/tgba/bdddict.cc, src/tgba/bdddict.hh (free_annonymous_list_of):
Rename as ...
(free_anonymous_list_of): ... this, and correct their update on
release.  Also correct yesterday's the correction (ahem!).
(dump): Improve verbosity.
* src/misc/freelist.cc (free_list::remove, free_list::insert): Fix
longstanding thinkos.
(free_list::free_count): New function.
2008-02-25 14:36:58 +01:00
Alexandre Duret-Lutz
064319b3e4 Merge this fix from proviso-branch:
2006-05-22  Alexandre Duret-Lutz  <adl@src.lip6.fr>
* src/misc/bddalloc.cc (bdd_allocator::bdd_allocator): Count the
2008-02-25 14:36:58 +01:00
Alexandre Duret-Lutz
048a5825de * src/ltlast/visitor.hh (visitor, const_visitor): Add empty
virtual destructors.
* src/tgba/tgbabddfactory.hh (tgba_bdd_factory): Likewise.
* src/misc/hash.hh: Use the std namespace only with GCC 3.0,
not with all compiler versions with minor version 0.
* src/tgba/tgbatba.cc (tgba_tba_proxy_succ_iterator): Fix
friend declaration of ::spot::tgba_tba_proxy.
2008-02-25 14:36:55 +01:00
Alexandre Duret-Lutz
814ec7c2d0 * src/misc/hashfunc.hh (knuth32_hash): New function.
* src/misc/hash.hh (ptr_hash): Use knuth32_hash.
* src/tgba/tgbabddconcretefactory.hh (tgba_bdd_concrete_factory): Use
ltl::formula_ptr_hash for acc_map_.
2005-05-04 16:09:41 +00:00
Alexandre Duret-Lutz
6314b682ba * src/tgbatest/randtgba.cc: Remplace the -O option by -A, reading
all algorithms from a file.  Use the emptiness_check_instantiator
syntax as name in the output.
* bench/emptchk/defs.in: DEfine ALGORITHMS here.
* bench/emptchk/ltl-human.sh, bench/emptchk/ltl-random.sh,
bench/emptchk/pml-clserv.sh, bench/emptchk/pml-clserv.sh: Use
$ALGORITHMS.
* src/misc/timer.cc: Truncate long keys in display.
2005-02-18 12:28:42 +00:00
Alexandre Duret-Lutz
4e1916ec50 * src/tgbaalgos/emptiness.hh, src/tgbaalgos/emptiness.cc
(emptiness_check_instantiator): New class.
* src/misc/optionmap.hh (set (const option_map&)): New method.
* src/tgbatest/randtgba.cc: Create every emptiness check via
emptiness_check_instantiator.
2005-02-17 19:14:03 +00:00
Alexandre Duret-Lutz
fed4b6f05c * src/misc/optionmap.hh, src/misc/optionmap.cc
(option_map::parse_options): Rewrite.  Do not modify the input
string, allow !foo as a shorthand for foo=0, and support K and
M suffixes for values.
* src/tgbatest/randtgba.cc (cons_emptiness_check): Simplify.
* wrap/python/spot.i: Process optionmap.hh.
* wrap/python/tests/optionmap.py: New file.
* wrap/python/tests/Makefile.am (TESTS): Add it.
2005-02-17 15:01:51 +00:00
Alexandre Duret-Lutz
f3effb9da0 * src/misc/optionmap.cc, src/misc/optionmap.hh (option_map::get,
option_map::set): Handle default values.
(anonymous::to_int): Do not print anything.
* src/tgbaalgos/gv04.cc, src/tgbaalgos/gv04.hh,
src/tgbaalgos/tau03.cc, src/tgbaalgos/tau03.hh,
src/tgbaalgos/tau03opt.cc, src/tgbaalgos/tau03opt.hh,
src/tgbaalgos/ce.cc, src/tgbaalgos/ce.hh: Take an option_map in
the constructor.
* src/tgbaalgos/gtec.cc, src/tgbaalgos/gtec.hh: Likewise.  Handle
the "poprem", "group", and "shy" options via the option_map.
Supply a couvreur99() wrapper to the shy/non-shy variant.
* src/tgbatest/ltl2tgba.cc, src/tgbatest/randtgba.cc,
iface/gspn/ssp.cc: Adjust.
2005-02-16 18:53:18 +00:00
Denis Poitrenaud
b10727f139 * src/misc/optionmap.cc, src/misc/optionmap.hh: Typo (Hummm). 2005-02-07 15:47:36 +00:00
Denis Poitrenaud
661dee8633 * src/misc/optionmap.cc, src/misc/optionmap.hh (option_map): New class.
* src/misc/Makefile.am: Add it.
* src/tgbaalgos/emptiness.cc, src/tgbaalgos/emptiness.hh: Add option
facilities to the classes emptiness_check and emptiness_result
* src/tgbaalgos/magic.cc, src/tgbaalgos/magic.hh,
src/tgbaalgos/se05.cc, src/tgbaalgos/se05.hh: Compute optionnaly
accepting runs from stack.
* src/tgbatest/randtgba.cc: Make this option public.
2005-02-07 15:18:41 +00:00
Alexandre Duret-Lutz
e812e1926f * src/misc/ltstr.hh: Include <functional> 2005-02-05 10:18:31 +00:00
Alexandre Duret-Lutz
117aaf6772 * src/misc/ltstr.hh: New file.
* src/misc/Makefile.am (misc_HEADERS): Add it.
2005-02-04 15:27:24 +00:00
Alexandre Duret-Lutz
000c041a95 * src/evtgba/evtgbaiter.hh, src/ltlast/formula.hh,
src/ltlast/refformula.hh, src/ltlenv/defaultenv.hh,
src/misc/bareword.hh, src/tgba/succiter.hh,
src/tgba/tgbabddfactory.hh, src/tgba/tgbareduc.hh,
src/tgbaalgos/dupexp.hh, src/tgbaalgos/emptiness_stats.hh,
src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/ltl2tgba_lacim.hh,
src/tgbaalgos/reductgba_sim.hh, src/tgbaalgos/tau03opt.hh: Add
or fix include guards.
* src/sanity/includes.test: Check the presence of the include
guard.
2005-01-03 10:20:26 +00:00
Denis Poitrenaud
0222c5e186 * src/misc/timer.cc, src/tgbatest/randtgba.cc: Format the statistics. 2004-12-10 18:15:20 +00:00
Alexandre Duret-Lutz
7917841fbe * src/misc/random.hh: Add include guard. 2004-12-08 08:28:51 +00:00
Alexandre Duret-Lutz
541705a36a * src/misc/random.hh (nrand, bmrand, prand): New functions.
(barand): New class.
* src/misc/random.cc (nrand, bmrand, prand): New functions.
* wrap/python/spot.i: Process src/misc/random.hh.
2004-12-07 18:52:10 +00:00
Alexandre Duret-Lutz
d771a3a019 * src/misc/timer.cc: Do not include cassert, then. 2004-12-07 18:05:19 +00:00
Denis Poitrenaud
acfcade04a * src/tgbaalgos/tau03opt.cc: Fix a memory leak in the computation of
accepting runs

* src/misc/timer.hh: Include cassert.
2004-12-07 17:58:16 +00:00
Alexandre Duret-Lutz
e9b260c081 * src/misc/timer.cc: Include cassert. 2004-12-06 09:04:59 +00:00
Alexandre Duret-Lutz
668666d246 * src/misc/timer.hh, src/misc/timer.cc: New files.
* src/misc/Makefile.am (misc_HEADERS, libmisc_la_SOURCES): Add them.
* src/tgbatest/randtgba.cc: Use time_map to measure the algorithms.
Add the -R option.
* src/sanity/style.sh: Let me use `for (.*;;)'.
2004-11-29 16:50:49 +00:00
Alexandre Duret-Lutz
2a3d638a50 * src/misc/bareword.hh, src/misc/bddalloc.hh, src/misc/bddlt.hh,
src/misc/escape.hh, src/misc/freelist.hh, src/misc/hash.hh,
src/misc/hashfunc.hh, src/misc/minato.hh, src/misc/modgray.hh,
src/misc/random.hh, src/misc/version.hh, src/tgba/state.hh: More
Doxygen groups.
2004-11-17 17:20:44 +00:00
Alexandre Duret-Lutz
8c6dff00b6 * src/misc/hashfunc.hh: Include cstddef to define size_t, and guard
the file for multiple inclusions.
2004-11-17 00:56:26 +00:00
Alexandre Duret-Lutz
dfb832cf20 * src/misc/hashfunc.hh (wang32_hash): New file and function,
extracted from...
* src/evtgba/product.cc (evtgba_product_state::hash): ... here.
* src/misc/Makefile.am (misc_HEADERS): Add hashfunc.hh.
2004-11-16 14:59:49 +00:00
Alexandre Duret-Lutz
4a7486bbff * configure.ac: Check for srand48 and drand48.
* src/misc/random.cc (srand, drand): Use srand48 and drand48 if
available.
2004-11-12 18:27:09 +00:00
Alexandre Duret-Lutz
e54ddd46ed * misc/random.cc, misc/random.hh: New files.
* src/misc/Makefile.am (misc_HEADERS, libmisc_la_SOURCES): Add them.
2004-11-12 16:27:39 +00:00
Alexandre Duret-Lutz
7fce2b2a95 * src/misc/version.cc: Fix trailing whitespace.
* src/sanity/style.test: Diagnose trailing whitespace.
2004-10-29 12:41:56 +00:00
Alexandre Duret-Lutz
d9b29a0590 * src/misc/bareword.hh, src/misc/bareword.cc (quote_unless_bare_word):
New function.
2004-10-22 16:06:55 +00:00
Alexandre Duret-Lutz
55b84b1a48 * src/misc/modgray.hh (loopless_modular_mixed_radix_gray_code::done,
loopless_modular_mixed_radix_gray_code::last): Declare as const.
2004-10-20 16:04:06 +00:00
Alexandre Duret-Lutz
4defec66b4 * src/misc/bareword.hh, src/misc/bareword.cc: New files.
* src/misc/Makefile.am (libmisc_la_SOURCES, misc_HEADERS): Add them.
2004-10-20 15:50:52 +00:00
Alexandre Duret-Lutz
094ddca665 * src/misc/modgray.hh, src/misc/modgray.cc: New files.
* src/misc/Makefile.am (libmisc_la_SOURCES, misc_HEADERS): Add them.
* wrap/python/spot.i: Activate directors, and interface modgray.hh.
* wrap/python/tests/modgray.py: New file.
* wrap/python/tests/Makefile.am (TESTS): Add it.
2004-10-20 15:46:56 +00:00
Alexandre Duret-Lutz
c30823f7be * src/sanity/style.test: Warn about places where size() is used
instead of empty().
* src/misc/bddalloc.cc (bdd_allocator::extend): Use empty() rather
than size() when checking emptiness of lists.
* src/tgbaalgos/reductgba_sim_del.cc, src/tgbaalgos/minimalce.cc,
src/ltlvisit/basicreduce.cc, src/ltlvisit/reduce.cc,
src/tgbaalgos/gtec/ce.cc, src/tgbaalgos/ltl2tgba_fm.cc,
src/misc/minato.cc: Likewise.
* src/ltlast/multop.cc (multop::instance): Call ->size() only once.
2004-09-21 13:01:27 +00:00
Alexandre Duret-Lutz
ad96e8fbad * iface/gspn/common.cc, iface/gspn/common.hh,
src/ltlast/atomic_prop.cc, src/ltlast/atomic_prop.hh,
src/ltlparse/fmterror.cc, src/ltlparse/public.hh,
src/ltlvisit/dotty.cc, src/ltlvisit/dotty.hh,
src/ltlvisit/dump.cc, src/ltlvisit/dump.hh,
src/ltlvisit/tostring.cc, src/ltlvisit/tostring.hh,
src/misc/escape.cc, src/misc/escape.hh, src/tgba/bdddict.cc,
src/tgba/bdddict.hh, src/tgba/bddprint.cc, src/tgba/bddprint.hh,
src/tgbaalgos/dotty.cc, src/tgbaalgos/dotty.hh,
src/tgbaalgos/lbtt.cc, src/tgbaalgos/lbtt.hh,
src/tgbaalgos/neverclaim.cc, src/tgbaalgos/neverclaim.hh,
src/tgbaalgos/save.cc, src/tgbaalgos/save.hh,
src/tgbaalgos/gtec/status.cc, src/tgbaalgos/gtec/status.hh,
src/tgbaparse/fmterror.cc, src/tgbaparse/public.hh: Include <iosfwd>
in headers, and prefer <ostream> in the body whenever possible.
* src/sanity/style.test, HACKING: Check and document this.
2004-08-09 16:32:25 +00:00
Alexandre Duret-Lutz
7f1d5f597c * src/misc/bddalloc.cc (bdd_allocator::varnum): Suppress.
(bdd_allocator::bdd_allocator): Adjust.
(bdd_allocator::extvarnum): Always call bdd_varnum(), so that
it doesn't matter if the number of variable has been augmented
externally.
* src/misc/bddalloc.hh (bdd_allocator::varnum): Suppress.
2004-05-17 13:17:13 +00:00
Alexandre Duret-Lutz
cf1ab2946f * src/tgbaalgos/gtec/ce.hh, src/misc/freelist.hh,
src/tgba/bddprint.hh: Fix Doxygen comments.
2004-04-21 20:14:40 +00:00
Alexandre Duret-Lutz
3c3b23bfa4 * src/misc/freelist.cc (free_list::remove): Work around
invalidated iterators.
* tgba/bdddict.cc (unregister_variable): New methods,
extracted from ...
(bdd_dict::unregister_all_my_variables): ... here.
* tgba/bdddict.hh (unregister_variable): Declare them.
2004-03-25 15:02:57 +00:00
Alexandre Duret-Lutz
784ccafb1b * src/misc/freelist.hh (free_list::remove, free_list::insert): New
methods.
* src/misc/freelist.cc (free_list::register_n,
free_list::releases_n): Rewrite using free_list::remove and
free_list::insert.
(free_list::remove, free_list::insert): New methods.
* src/tgba/bdddict.hh (bdd_dict::register_anonymous_variables):
New method.
(bdd_dict::annon_free_list): New subclass.
(bdd_dict::free_annonymous_list_of_type_of): New attribute.
* src/tgba/bdddict.cc (bdd_dict::register_all_variables_of,
bdd_dict::unregister_all_my_variables): Handle anonymous variables
too.
(bdd_dict::register_anonymous_variables,
bdd_dict::annon_free_list::annon_free_list,
bdd_dict::annon_free_list::extend): New methods.
2004-03-23 09:39:38 +00:00