cofactorbddnode.3alc man page

cofactorbddnode — computes the generalized cofactor.

Synopsis

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

Parameters

BddSystem

The bdd system.

BddNode1

The first bdd node.

BddNode2

The second bdd node.

Description

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.

Return Value

cofactorbddnode returns the resulting bdd node.

Errors

"index xxx out of range"

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

Example

#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 );

See Also

bdd(1)

Info

October 1, 1997 ASIM/LIP6 BDD FUNCTIONS