a modern C++ library for the manipulation of Boolean functions
a modern C++ library for the manipulation of Boolean functions
a modern C++ library for the manipulation of Boolean functions
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Require: a variable v and a set <strong>of</strong> variables V<br />
function iff_conj(v, V )<br />
G = x ∈ V . v ≺ x <br />
tv = and_vs_true(1, G)<br />
fcurr = fprev = 0<br />
while G = ∅ do<br />
m = max(G)<br />
fcurr = make_node m, fprev, 1 <br />
fprev = fcurr<br />
G = G \ m <br />
nv = make_node <br />
v, tv, fcurr<br />
S = x ∈ V . x ≺ v <br />
if S = ∅ <strong>the</strong>n<br />
return nv<br />
else<br />
fv = make_node v, 0, 1 <br />
curr = prev = nv<br />
while S = ∅ do<br />
m = max(S)<br />
curr = make_node <br />
m, prev, fv<br />
prev = curr<br />
S = S \ m <br />
return curr<br />
Algorithm 20: The iff_conj function.<br />
3.2 ROBDD algorithms 31