43 lines
1.1 KiB
C++
43 lines
1.1 KiB
C++
#ifndef SPOT_TGBA_TGBABDDTRANSLATEFACTORY_HH
|
|
# define SPOT_TGBA_TGBABDDTRANSLATEFACTORY_HH
|
|
|
|
#include "tgbabddfactory.hh"
|
|
#include "tgbabddconcrete.hh"
|
|
|
|
namespace spot
|
|
{
|
|
|
|
/// A spot::tgba_bdd_factory than renumber BDD variables.
|
|
class tgba_bdd_translate_factory: public tgba_bdd_factory
|
|
{
|
|
public:
|
|
///\brief Construct a spot::tgba_bdd_translate_factory
|
|
///
|
|
/// \param from The Automata to copy.
|
|
/// \param to The dictionary of variable number to use.
|
|
tgba_bdd_translate_factory(const tgba_bdd_concrete& from,
|
|
const tgba_bdd_dict& to);
|
|
|
|
virtual ~tgba_bdd_translate_factory();
|
|
|
|
const tgba_bdd_core_data& get_core_data() const;
|
|
const tgba_bdd_dict& get_dict() const;
|
|
|
|
/// Get the new initial state.
|
|
bdd get_init_state() const;
|
|
|
|
protected:
|
|
/// Compute renaming pairs.
|
|
bddPair* compute_pairs(const tgba_bdd_dict& from);
|
|
|
|
private:
|
|
tgba_bdd_core_data data_;
|
|
tgba_bdd_dict dict_;
|
|
bdd init_;
|
|
};
|
|
|
|
/// Reorder the variables of an automata.
|
|
tgba_bdd_concrete defrag(const tgba_bdd_concrete& a);
|
|
}
|
|
|
|
#endif // SPOT_TGBA_TGBABDDTRANSLATEFACTORY_HH
|