abc/src/bdd/cudd/cuddGenCof.c
/**Function********************************************************************

  Synopsis    [Computes f non-polluting-and g.]

  Description [Computes f non-polluting-and g.  The non-polluting AND
  of f and g is a hybrid of AND and Restrict.  From Restrict, this
  operation takes the idea of existentially quantifying the top
  variable of the second operand if it does not appear in the first.
  Therefore, the variables that appear in the result also appear in f.
  For the rest, the function behaves like AND.  Since the two operands
  play different roles, non-polluting AND is not commutative.

  Returns a pointer to the result if successful; NULL otherwise.]

  SideEffects [None]

  SeeAlso     [Cudd_bddConstrain Cudd_bddRestrict]

******************************************************************************/
Function
Synopsis    [Computes f non-polluting-and g.]

Description [Computes f non-polluting-and g.  The non-polluting AND
of f and g is a hybrid of AND and Restrict.  From Restrict, this
operation takes the idea of existentially quantifying the top
variable of the second operand if it does not appear in the first.
Therefore, the variables that appear in the result also appear in f.
For the rest, the function behaves like AND.  Since the two operands
play different roles, non-polluting AND is not commutative.

Returns a pointer to the result if successful; NULL otherwise.]




Function Synopsis [ Computes f non - polluting - and g . ] Description [ Computes f non - polluting - and g . The non - polluting AND of f and g is a hybrid of AND and Restrict . From Restrict this operation takes the idea of existentially quantifying the top variable of the second operand if it does not appear in the first . Therefore the variables that appear in the result also appear in f . For the rest the function behaves like AND . Since the two operands play different roles non - polluting AND is not commutative . Returns a pointer to the result if successful ; NULL otherwise . ]
DdNode *
Cudd_bddNPAnd(
  DdManager * dd,
  DdNode * f,
  DdNode * g)
{
    DdNode *res;
    do {
        dd->reordered = 0;
        res = cuddBddNPAndRecur(dd,f,g);
    } while (dd->reordered == 1);
    return(res);
}
DdNode * Cudd_bddNPAnd ( DdManager * dd , DdNode * f , DdNode * g ) { DdNode * res ; do { dd -> reordered = 0 ; res = cuddBddNPAndRecur ( dd , f , g ) ; } while ( dd -> reordered == 1 ) ; return ( res ) ; }
Function
Synopsis    [Computes f non-polluting-and g.]
Function Synopsis [ Computes f non - polluting - and g . ]