existbddnodeassocoff(3) computes an existantial quantification.

SYNOPSYS

#include "bdd101.h"
bddnode *existbddnodeassocoff( BddSystem, BddNode, BddAssoc )
  bddsystem *BddSystem;
  bddnode   *BddNode;
  bddassoc  *BddAssoc;

PARAMETERS

BddSystem
The bdd system.
BddNode
The bdd node to treat.
BddAssoc
The variable association.

DESCRIPTION

existbddnodeassocoff suppress in the bdd node BddNode complemented, all the variables associated with something in the variable association BddAssoc, in the bdd system BddSystem. If a null pointer is given, the default bdd system is used.

RETURN VALUE

existbddnodeassocoff returns the computed bdd node.

ERRORS

"bad variable association xxx, error !"
The BddAssoc parameter must a valid variable association.

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_NAND,
                            createablatom( "i0" ),
                            createablatom( "i1" ) );
   BddNode = 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, BddSystem->ONE );
   BddNode = existbddnodeassocoff( (bddsystem *)0, BddNode, Assoc );
   Expr = convertbddcircuitabl( BddCircuit, BddNode );
   /* displays (not i1) */
   viewablexpr( Expr, ABL_VIEW_VHDL );
   freeablexpr( Expr );
   destroybddassoc( (bddsystem *)0 );
   destroybddsystem( (bddsystem *)0 );
   destroybddcircuit( (bddcircuit *)0 );