delbddnodeassoc.3alc man page

delbddnodeassoc — deletes a bdd node in a variable association.

Synopsis

#include "bdd101.h"
int delbddnodeassoc( BddSystem, BddAssoc, Variable )
  bddsystem  ∗BddSystem;
  bddassoc   ∗BddAssoc;
  bddvar      Variable;

Parameters

BddSystem

The bdd system.

BddAssoc

The variable association.

Variable

The variable number.

Description

delbddnodeassoc deletes the bdd node associated to the variable number 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 the associated bdd node is incremented.

Return Value

delbddnodeassoc returns 1 if the variable is found, 0 otherwise.

Errors

"variable xxx out of range, error !"

The Variable parameter must be less or equal to the BddSystem->NUMBER_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 );
   delbddnodeassoc( (bddsystem ∗)0, Assoc, Variable );
   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)

Info

October 1, 1997 ASIM/LIP6 BDD FUNCTIONS