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

  
 
  

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

NAME
     restrictbddnode - substitutes a variable by a zero or one, in a bdd.

SYNOPSIS
     #include "bdd101.h"
     bddnode *restrictbddnode( 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
     restrictbddnode  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.   The	BddSubst
     must be a the node BddSystem->ONE or BddSystem->ZERO.

RETURN VALUE
     restrictbddnode 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.
     "index xxx out of range, error !"
	    The BddSubst parameter must have its index less than BDD_INDEX_MIN.

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_OR,
				 createablatom( "i0" ),
				 createablatom( "i1" ) );
	BddNode = addbddcircuitabl( BddCircuit, Expr );
	freeablexpr( Expr );
	BddSubst = BddSystem->ONE;
	BddVariable = searchbddcircuitin( (bddcircuit *)0, "i0" );
	Variable = getbddvarbyindex( (bddsystem *)0, BddVariable->INDEX );
	BddNode = restrictbddnode( (bddsystem *)0, BddNode, Variable, BddSubst );
	Expr = convertbddcircuitabl( BddCircuit, BddNode );
	/* displays '1' */
	viewablexpr( Expr, ABL_VIEW_VHDL );
	freeablexpr( Expr );
	destroybddsystem( (bddsystem *)0 );
	destroybddcircuit( (bddcircuit *)0 );

SEE ALSO
     bdd(1)

ASIM/LIP6			 October 1, 1997	      RESTRICTBDDNODE(3)

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

home | help