pyeda.boolalg.minimization
— Logic Minimization¶
The pyeda.boolalg.minimization
module contains interface functions for
two-level logic minimization.
Interface Functions:
Interface Functions¶
-
pyeda.boolalg.minimization.
espresso_exprs
(*exprs)[source]¶ Return a tuple of expressions optimized using Espresso.
The variadic exprs argument is a sequence of expressions.
For example:
>>> from pyeda.boolalg.expr import exprvar >>> a, b, c = map(exprvar, 'abc') >>> f1 = Or(And(~a, ~b, ~c), And(~a, ~b, c), And(a, ~b, c), And(a, b, c), And(a, b, ~c)) >>> f2 = Or(And(~a, ~b, c), And(a, ~b, c)) >>> f1m, f2m = espresso_exprs(f1, f2) >>> f1.size, f1m.size (21, 10) >>> f1m.equivalent(f1) True >>> f2.size, f2m.size (9, 3) >>> f2m.equivalent(f2) True
-
pyeda.boolalg.minimization.
espresso_tts
(*tts)[source]¶ Return a tuple of expressions optimized using Espresso.
The variadic tts argument is a sequence of truth tables.
For example:
>>> from pyeda.boolalg.bfarray import exprvars >>> from pyeda.boolalg.table import truthtable >>> X = exprvars('x', 4) >>> f1 = truthtable(X, "0000011111------") >>> f2 = truthtable(X, "0001111100------") >>> f1m, f2m = espresso_tts(f1, f2) >>> f1m.equivalent(X[3] | X[0] & X[2] | X[1] & X[2]) True >>> f2m.equivalent(X[2] | X[0] & X[1]) True