Contains tgba_bdd, a BDD-encoded TGBA, and ltl_to_tgba, a LTL-to-TGBA translator using Couvreur's algorithm. * src/Makefile.am (SUBDIRS): Add tgba. (libspot_la_LIBADD): Add tgba/libtgba.la. * src/tgba/Makefile.am, src/tgba/bddfactory.cc, src/tgba/bddfactory.hh, src/tgba/dictunion.cc, src/tgba/dictunion.hh, src/tgba/ltl2tgba.cc, src/tgba/ltl2tgba.hh, src/tgba/state.hh, src/tgba/statebdd.cc, src/tgba/statebdd.hh, src/tgba/succiter.hh, src/tgba/succiterconcrete.cc, src/tgba/succiterconcrete.hh, src/tgba/succlist.hh, src/tgba/tgba.hh, src/tgba/tgbabddconcrete.cc, src/tgba/tgbabddconcrete.hh, src/tgba/tgbabddconcretefactory.cc, src/tgba/tgbabddconcretefactory.hh, src/tgba/tgbabddconcreteproduct.cc, src/tgba/tgbabddconcreteproduct.hh, src/tgba/tgbabddcoredata.cc, src/tgba/tgbabddcoredata.hh, src/tgba/tgbabdddict.cc, src/tgba/tgbabdddict.hh, src/tgba/tgbabddfactory.hh, src/tgba/tgbabddtranslatefactory.cc, src/tgba/tgbabddtranslatefactory.hh: New files.
48 lines
717 B
C++
48 lines
717 B
C++
#include "bddfactory.hh"
|
|
|
|
namespace spot
|
|
{
|
|
bdd_factory::bdd_factory()
|
|
: varused(0)
|
|
{
|
|
initialize();
|
|
}
|
|
|
|
int
|
|
bdd_factory::create_node()
|
|
{
|
|
return create_nodes(1);
|
|
}
|
|
|
|
int
|
|
bdd_factory::create_pair()
|
|
{
|
|
return create_nodes(2);
|
|
}
|
|
|
|
int
|
|
bdd_factory::create_nodes(int i)
|
|
{
|
|
int res = varused;
|
|
varused += i;
|
|
if (varnum < varused)
|
|
{
|
|
bdd_extvarnum(varused - varnum);
|
|
varnum = varused;
|
|
}
|
|
return res;
|
|
}
|
|
|
|
void
|
|
bdd_factory::initialize()
|
|
{
|
|
if (initialized)
|
|
return;
|
|
initialized = true;
|
|
bdd_init(50000, 5000);
|
|
bdd_setvarnum(varnum);
|
|
}
|
|
|
|
bool bdd_factory::initialized = false;
|
|
int bdd_factory::varnum = 2;
|
|
}
|