DOKK / manpages / debian 10 / alliance / cofactorbddnode.3.en
COFACTORBDDNODE(3) BDD FUNCTIONS COFACTORBDDNODE(3)

cofactorbddnode - computes the generalized cofactor.

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

#include "bdd101.h"
bddnode ∗cofactorbddnode( BddSystem, BddNode1, BddNode2 )

bddsystem ∗BddSystem;
bddnode ∗BddNode1;
bddnode ∗BddNode2;

The bdd system.
The first bdd node.
The second bdd node.

cofactorbddnode computes the generalized cofactor of BddNode1 by BddNode2, in the bdd system BddSystem. If a null pointer is given, the default bdd system is used.

cofactorbddnode returns the resulting bdd node.

"index xxx out of range"

The BddNode2 parameter must be different to the zero bdd node.

#include "bdd101.h"

bddsystem ∗BddSystem;
bddcircuit ∗BddCircuit;
bddnode ∗BddNode1;
bddnode ∗BddNode2;
bddnode ∗BddNode;
chain_list ∗Expr;
BddSystem = createbddsystem( 100, 1000, 100, 50000 );
BddCircuit = createbddcircuit( "hello_world", 10, 10, BddSystem );
Expr = createablbinexpr( ABL_OR,
createablatom( "i0" ),
createablatom( "i1" ) );
BddNode1 = addbddcircuitabl( BddCircuit, Expr );
freeablexpr( Expr );
Expr = createablbinexpr( ABL_AND,
createablatom( "i0" ),
createablatom( "i1" ) );
BddNode2 = addbddcircuitabl( BddCircuit, Expr );
freeablexpr( Expr );
BddNode = cofactorbddnode( (bddsystem ∗)0, BddNode1, BddNode2 );
Expr = convertbddcircuitabl( BddCircuit, BddNode );
/* displays '1' */
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