CONSTRAINTCCT(3)

NAME
constraintCct - restricts all the outputs within a circuit with a BDD constraint

SYNOPSYS
#include "logmmm.h"
void constraintCct(pC,pBdd)
pCircuit pC;
pNode pBdd;

PARAMETERS

pC  Circuit in which is made the restriction

pBdd
    BDD constraint

DESCRIPTION
constraintCct() restricts the boolean space to the sub-space corresponding to the on-set of pBdd. This function can be called when a primary input is stuck at 0 or 1.

EXAMPLE
#include "mutnnn.h"		/* mbk utilities */
#include "logmmm.h"
chain_list *expr;
pNode res;
pCircuit pC;
initializeBdd(SMALL_BDD);
pC = initializeCct("circuit 1",10,10);
addInputCct(pC,"a");
addInputCct(pC,"b");
addOutputCct(pC,"s",applyBinBdd(XOR,
                        createNodeTermBdd(searchInputCct(pC,"a")),
                        createNodeTermBdd(searchInputCct(pC,"b"))));
	/* b is stuck at 1 */
constraintCct(pC,createNodeTermBdd(searchInputCct(pC,"b")));
displayCct(pC,1);
/* it will display
************* DISPLAY circuit 1 *********
INPUT = a	INDEX = 2
INPUT = b	INDEX = 3
----------- NUMBER OF INPUTS = 2
OUTPUT = s	s = (NOT a)
----------- NUMBER OF OUTPUTS = 1
*****************************************
*/
destroyCct(pC);
destroyBdd(1);

SEE ALSO
log(1), bdd(1), abl(1), upVarCct(3), composeCct(3).