next up previous contents
Next: CNF format Up: Canonical form Previous: Manipulators   Contents


Directives

The syntax of a directive is


<command> ( <arg> ... )


where <arg> are Boolean functions or manipulators or variables. The following are commands and a description of how they apply their arguments.

INITIAL_BRANCH


$\textstyle \parbox{110mm}{
The directive {\tt INITIAL\_BRANCH} may be invoked ...
...search order has been revealed. An example of this directive is
the following:}$


   initial_branch (x1, x39, x5, x4, x24, x3)


$\textstyle \parbox{110mm}{ This marks
variables $x_1$, $x_{39}$, $x_5$, $x_4$, ...
...means branch on all variables
beginning with {\tt x3} and ending with {\tt 3}.}$

$\textstyle \parbox{110mm}{
The order in which wild card variables are searched ...
... {\tt initial\_branch} directives in
one. An example of this is the following:}$


   initial_branch (#1, x1, x39%20.5, x5)
   initial_branch (#2, x4, x24, x3%80.25)


$\textstyle \parbox{110mm}{
This marks variables $x_1$, $x_{39}$, and $x_5$, to ...
... {\em False}, likewise $x_3$\ is more likely be
assigned the value {\em True}.}$

#DEFINE


$\textstyle \parbox{110mm}{
A rudimentary macro facility. The
syntax is the following:}$


#define <pattern> # <Boolean-function>


$\textstyle \parbox{110mm}{
where {\tt <pattern>} is a {\tt <function-identifier...
...{\tt <function-specifier>} must be arguments in
{\tt <pattern>}. For example,}$


#define slide(x1, x17, x15, x33, x40)
#       equ(xor(x1, and(-x17, x33),ite(x15, or(x33, -x40), -x33)))


% latex2html id marker 10341
$\textstyle \parbox{110mm}{
substitutes the {\tt e...
...ile. Built-in functions may not be
redefined using {\tt \char93 define}.
Thus,}$


#define and(x, y, z) # or(x, y, z)


$\textstyle \parbox{110mm}{
causes an error message to occur}$
.

PRINT_TREE


$\textstyle \parbox{110mm}{
The PRINT\_TREE function takes one Boolean function,...
...anch is the $T$\ branch and the right branch is the
$F$\ branch. For example,}$


print_tree(or(4, 5, -6))


$\textstyle \parbox{110mm}{
prints the following to standard output:
\par
-{}-{}...
...}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-
}$

ORDER


$\textstyle \parbox{110mm}{
It is possible to control the variable ordering of t...
...he ordering can be controlled by using the {\tt order} directive,
for example:}$


order(a, b, c, d)


$\textstyle \parbox{110mm}{
assuming that $a$, $b$, $c$, and $d$\ have not previ...
...of printed trees, and $d$
to occur as or near the root.
For example, the lines}$


order(b, a, d, c)
print_tree(minmax(1, 3, a, b, c, d))


$\textstyle \parbox{110mm}{
prints the following to standard output (assuming $a...
...}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-
}$

PPRINT_TREE


$\textstyle \parbox{110mm}{
Does the same thing as {\tt PRINT\_TREE} except the ...
...ical form with {\tt ite} used to indicate $T$\ and
$F$\ branches. For example,}$


pprint_tree(or(4, 5, -6))


$\textstyle \parbox{110mm}{
prints to standard output:
\par
-{}-{}-{}-{}-{}-{}-{...
...}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-~}$

PPRINT_XDD


$\textstyle \parbox{110mm}{
Does a similar thing to {\tt PRINT\_TREE} except the output is shown in terms
of nested ANDs and XORs. For example,}$


print_xdd(or(4, 5, -6))


$\textstyle \parbox{110mm}{
prints to standard output:
\par
-{}-{}-{}-{}-{}-{}-{...
...}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-~}$

PPRINT_FLAT_XDD


$\textstyle \parbox{110mm}{
Does the same thing as {\tt PRINT\_XDD} except the function is displayed in
its unnested form. For example,}$


print_flat_xdd(or(4, 5, -6))


$\textstyle \parbox{110mm}{
prints to standard output:
\par
-{}-{}-{}-{}-{}-{}-{...
...}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-~}$



John Franco 2011-09-15