Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
SUBSTBDDNODEASSOC(3)		  BDD FUNCTIONS 	    SUBSTBDDNODEASSOC(3)

NAME
     substbddnodeassoc - substitutes a set of variables with a set of bdd node.

SYNOPSIS
     #include "bdd101.h"
     bddnode *substbddnodeassoc( BddSystem, BddNode, BddAssoc )
       bddsystem *BddSystem;
       bddnode	 *BddNode;
       bddassoc  *BddAssoc;

PARAMETERS
     BddSystem		 The bdd system.

     BddNode		 The bdd node to treat.

     BddAssoc		 The variable association.

DESCRIPTION
     substbddnodeassoc substitutes in the bdd node BddNode all the variables as-
     sociated to something in the variable association BddAssoc, with the corre-
     sponding  bdd  node,  in  the  bdd  system BddSystem.  If a null pointer is
     given, the default bdd system is used.

RETURN VALUE
     substbddnodeassoc returns the computed bdd node.

ERRORS
     "variable xxx out of range, error !"
	    The Variable parameter must be less or equal to the  BddSystem->NUM-
	    BER_VAR field.
     "bad variable association xxx, error !"
	    The BddAssoc parameter must a valid variable association.

EXAMPLE
     #include "bdd101.h"
	bddsystem  *BddSystem;
	bddcircuit *BddCircuit;
	bddnode    *BddNode;
	bddnode    *BddSubst;
	bddnode    *BddVariable;
	bddassoc   *Assoc;
	chain_list *Expr;
	bddvar	       Variable;
	BddSystem  = createbddsystem( 100, 1000, 100, 50000 );
	BddCircuit = createbddcircuit( "hello_world", 10, 10, BddSystem );
	Expr = createablbinexpr( ABL_AND,
				 createablatom( "i0" ),
				 createablatom( "i1" ) );
	BddNode = addbddcircuitabl( BddCircuit, Expr );
	freeablexpr( Expr );
	Expr = createablbinexpr( ABL_OR,
				 createablatom( "i2" ),
				 createablatom( "i3" ) );
	BddSubst = addbddcircuitabl( BddCircuit, Expr );
	freeablexpr( Expr );
	BddVariable = searchbddcircuitin( (bddcircuit *)0, "i0" );
	Variable = getbddvarbyindex( (bddsystem *)0, BddVariable->INDEX );
	Assoc = addbddassoc( (bddsystem *)0 );
	addbddnodeassoc( (bddsystem *)0, Assoc, Variable, BddSubst );
	BddNode = substbddnodeassoc( (bddsystem *)0, BddSubst, Assoc );
	Expr = convertbddcircuitabl( BddCircuit, BddNode );
	/* displays ((i3 or i2) and i1) */
	viewablexpr( Expr, ABL_VIEW_VHDL );
	freeablexpr( Expr );
	destroybddassoc( (bddsystem *)0 );
	destroybddsystem( (bddsystem *)0 );
	destroybddcircuit( (bddcircuit *)0 );

SEE ALSO
     bdd(1)

ASIM/LIP6			 October 1, 1997	    SUBSTBDDNODEASSOC(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=substbddnodeassoc&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help