[buddy] Add a function bdd_implies to decide implications between BDDs.
* src/bdd.h (bdd_implies): New function. * src/bddop.c (bdd_implies): Implement it. (CACHEID_IMPLIES, IMPLIES_HASH): New helper macros.
This commit is contained in:
parent
e7a46e10e2
commit
a814b97543
3 changed files with 69 additions and 0 deletions
|
|
@ -302,6 +302,7 @@ extern BDD bdd_xor(BDD, BDD);
|
|||
extern BDD bdd_imp(BDD, BDD);
|
||||
extern BDD bdd_biimp(BDD, BDD);
|
||||
extern BDD bdd_setxor(BDD, BDD);
|
||||
extern int bdd_implies(BDD, BDD);
|
||||
extern BDD bdd_ite(BDD, BDD, BDD);
|
||||
extern BDD bdd_restrict(BDD, BDD);
|
||||
extern BDD bdd_constrain(BDD, BDD);
|
||||
|
|
@ -510,6 +511,7 @@ private:
|
|||
friend bdd bdd_imp(const bdd &, const bdd &);
|
||||
friend bdd bdd_biimp(const bdd &, const bdd &);
|
||||
friend bdd bdd_setxor(const bdd &, const bdd &);
|
||||
friend int bdd_implies(const bdd &, const bdd &);
|
||||
friend bdd bdd_ite(const bdd &, const bdd &, const bdd &);
|
||||
friend bdd bdd_restrict(const bdd &, const bdd &);
|
||||
friend bdd bdd_constrain(const bdd &, const bdd &);
|
||||
|
|
@ -670,6 +672,9 @@ inline bdd bdd_biimp(const bdd &l, const bdd &r)
|
|||
inline bdd bdd_setxor(const bdd &l, const bdd &r)
|
||||
{ return bdd_setxor(l.root, r.root); }
|
||||
|
||||
inline int bdd_implies(const bdd &l, const bdd &r)
|
||||
{ return bdd_implies(l.root, r.root); }
|
||||
|
||||
inline bdd bdd_ite(const bdd &f, const bdd &g, const bdd &h)
|
||||
{ return bdd_ite(f.root, g.root, h.root); }
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue