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

  
 
  

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

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

SYNOPSIS
     #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  BddSystem->NUM-
	    BER_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)

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

home | help