DOKK / manpages / debian 10 / alliance / applybddnodeite.3.en
APPLYBDDNODEITE(3) BDD FUNCTIONS APPLYBDDNODEITE(3)

applybddnodeite - computes the IF-THEN-ELSE logical operation.

See the file buster/alliance/alc_origin.1.en.gz.

#include "bdd101.h"
bddnode ∗applybddnodeite( BddSystem, BddIf, BddThen, BddElse )

bddnode ∗BddSystem;
bddnode ∗BddIf;
bddnode ∗BddThen;
bddnode ∗BddElse;

The bdd system.
The IF bdd node.
The THEN bdd node.
The ELSE bdd node.

applybddnodeite computes the following logical function (BddIf AND BddThen) OR ((NOT BddIf) AND BddElse) in the bdd system BddSystem. If a null pointer is given, the default bdd system is used.

applybddnodeite returns a pointer to the resulting bdd node with its number of external reference incremented.

#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 );
addbddcircuitin( (bddcircuit ∗)0, "i1", 0, BDD_IN_MODE_FIRST );
addbddcircuitin( (bddcircuit ∗)0, "i2", 0, BDD_IN_MODE_FIRST );
BddNode = applybddnodeite( (bddsystem ∗)0,
searchbddcircuitin( (bddcircuit ∗)0, "i0" ),
searchbddcircuitin( (bddcircuit ∗)0, "i1" ),
searchbddcircuitin( (bddcircuit ∗)0, "i2" ) );
Expr = convertbddcircuitabl( (bddcircuit ∗)0, BddNode );
/* displays ((i0 and i1) or ((not i0) and i2) */
viewablexpr( Expr, ABL_VIEW_VHDL );
freeablexpr( Expr );
destroybddsystem( (bddsystem ∗)0 );
destroybddcircuit( (bddcircuit ∗)0 );

bdd(1)

See the file buster/alliance/alc_bug_report.1.en.gz.

October 1, 1997 ASIM/LIP6