addbddnode(3)
adds a new bdd node in the bdd system.
SYNOPSYS
#include "bdd101.h"
bddnode *addbddnode( BddSystem, Index, High, Low )
bddsystem *BddSystem;
bddindex Index;
bddnode *High;
bddnode *Low;
PARAMETERS
- BddSystem
-
The bdd system.
- Index
-
The bdd index.
- High
-
The bdd high pointer.
- Low
-
The bdd low pointer.
DESCRIPTION
addbddnode adds a new node with the index Index,
High as HIGH pointer, and Low as LOW pointer
in the bdd system BddSystem. If the bdd node exist
already addbddnode return its pointer.
If a null pointer is given, the default bdd system is used.
RETURN VALUE
addbddnode returns a pointer to the resulting bdd node
with its number of external reference incremented.
ERRORS
"index xxx out of range"
-
The Index parameter must be a valid index.
EXAMPLE
#include "bdd101.h"
bddsystem *BddSystem;
bddcircuit *BddCircuit;
bddnode *BddNode;
chain_list *Expr;
BddSystem = createbddsystem( 100, 1000, 100, 50000 );
BddCircuit = createbddcircuit( "hello_world", 10, 10, BddSystem );
BddNode = addbddcircuitin( (bddcircuit *)0, "i0", 0, BDD_IN_MODE_FIRST );
BddNode = addbddnode( (bddsystem *)0, BddNode->INDEX, BddNode->LOW, BddNode->HIGH );
Expr = convertbddcircuitabl( (bddcircuit *)0, BddNode );
/* displays (not i0) */
viewablexpr( Expr, ABL_VIEW_VHDL );
freeablexpr( Expr );
destroybddsystem( (bddsystem *)0 );
destroybddcircuit( (bddcircuit *)0 );