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

FreeBSD Manual Pages

  
 
  

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

NAME
       composebddnode -	substitutes a variable by a bdd	in another bdd.

SYNOPSYS
       #include	"bdd101.h"
       bddnode *composebddnode(	BddSystem, BddNode, Variable, BddSubst )
	 bddsystem *BddSystem;
	 bddnode   *BddNode;
	 bddvar	    Variable;
	 bddnode   *BddSubst;

PARAMETERS
       BddSystem	   The bdd system.

       BddNode		   The bdd node.

       Variable		   The variable	to find.

       BddSubst		   The bdd to substitute with.

DESCRIPTION
       composebddnode  substitutes  all	the occurency of the variable Variable
       in the bdd node BddNode by the bdd node BddSubst,  in  the  bdd	system
       BddSystem.  If a	null pointer is	given, the default bdd system is used.

RETURN VALUE
       composebddnode returns the resulting bdd	node.

ERRORS
       "variable xxx out of range, error !"
	      The Variable parameter must be less  or  equal  to  the  BddSys-
	      tem-_NUMBER_VAR field.

EXAMPLE
       #include	"bdd101.h"
	  bddsystem  *BddSystem;
	  bddcircuit *BddCircuit;
	  bddnode    *BddVariable;
	  bddnode    *BddNode;
	  bddnode    *BddSubst;
	  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 );
	  BddNode = composebddnode( (bddsystem *)0, BddNode, Variable, BddSubst	);
	  Expr = convertbddcircuitabl( BddCircuit, BddNode );
	  /* displays (i1 and (i2 or i3)) */
	  viewablexpr( Expr, ABL_VIEW_VHDL );
	  freeablexpr( Expr );
	  destroybddsystem( (bddsystem *)0 );
	  destroybddcircuit( (bddcircuit *)0 );

SEE ALSO
       bdd(1)

ASIM/LIP6			October	1, 1997		     COMPOSEBDDNODE(3)

NAME | SYNOPSYS | PARAMETERS | DESCRIPTION | RETURN VALUE | ERRORS | EXAMPLE | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=composebddnode&sektion=3&manpath=FreeBSD+11.1-RELEASE+and+Ports>

home | help