A method of constructing a circuit for a Boolean function includes receiving
as
input a Boolean function of a number n of input variables wherein the number n
of input variables may be varied over a range; generating at least two intermediate
functions comprising sub-functions of the Boolean function wherein zero or one
is substituted for all but two of the number n of input variables; and generating
a selected output of the Boolean function of the number n of input variables from
only two of the intermediate functions.