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

FreeBSD Manual Pages

  
 
  

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 BddSys-
	      tem->NUMBER_VAR field.
       "index xxx out of range,	error !"
	      The BddSubst parameter must have its  index  less	 than  BDD_IN-
	      DEX_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.0>

home | help