applybddnodeterm(3)
applies an operator on two bdd nodes.
SYNOPSYS
#include "bdd101.h"
bddnode *applybddnodeterm( BddSystem, Oper, Index, BddNode )
bddsystem *BddSystem;
long Oper;
bddindex Index;
bddnode *BddNode;
PARAMETERS
- BddSystem
-
The bdd system.
- Oper
-
The binary operator.
- Index
-
The index of the terminal bdd node.
- BddNode
-
The bdd node.
DESCRIPTION
applybddnodeterm computes the boolean function BddNode
Oper and the terminal node corresponding to Index
in the bdd system BddSystem. The Index parameter
can take only the two following values BDD_INDEX_ONE and BDD_INDEX_ZERO.
If a null pointer is given, the default bdd system is used.
RETURN VALUE
applybddnodeterm returns a pointer to the resulting bdd node
with its number of external reference incremented.
ERRORS
"bad operator xxx error !"
-
The Oper parameter must be a valid binary operator.
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 );
addbddcircuitin( (bddcircuit *)0, "i0", 0, BDD_IN_MODE_FIRST );
BddNode = applybddnodeterm( (bddsystem *)0,
ABL_XOR, BDD_INDEX_ONE,
searchbddcircuitin( (bddcircuit *)0, "i0" ) );
Expr = convertbddcircuitabl( (bddcircuit *)0, BddNode );
/* displays (not i0) */
viewablexpr( Expr, ABL_VIEW_VHDL );
freeablexpr( Expr );
destroybddsystem( (bddsystem *)0 );
destroybddcircuit( (bddcircuit *)0 );