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

  
 
  

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

NAME
     addbddnodeassoc - adds a bdd node in  a variable association.

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

PARAMETERS
     BddSystem		 The bdd system.

     BddAssoc		 The variable association.

     Variable		 The variable number.

     BddNode		 The bdd node to add.

DESCRIPTION
     addbddnodeassoc  adds the bdd node BddNode, associated to the variable num-
     ber Variable, in the variable  association  BddAssoc,  in	the  bdd  system
     BddSystem.   If  a  null  pointer is given, the default bdd system is used.
     The number of external reference of BddNode is incremented.

RETURN VALUE
     addbddnodeassoc returns a pointer to the variable association.

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    *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	      ADDBDDNODEASSOC(3)

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

home | help