Beispiel #1
0
/**Function********************************************************************

  Synopsis    [Approximates the conjunction of two BDDs f and g and
  simultaneously abstracts the variables in cube.]

  Description [Approximates the conjunction of two BDDs f and g and
  simultaneously abstracts the variables in cube. The variables are
  existentially abstracted. Returns a pointer to the resulting BDD if
  successful; NULL if the intermediate result blows up.]

  SideEffects [None]

  SeeAlso     [Cudd_bddAndAbstract Cudd_bddClippingAnd]

******************************************************************************/
DdNode *
Cudd_bddClippingAndAbstract(
  DdManager * dd /* manager */,
  DdNode * f /* first conjunct */,
  DdNode * g /* second conjunct */,
  DdNode * cube /* cube of variables to be abstracted */,
  int  maxDepth /* maximum recursion depth */,
  int  direction /* under (0) or over (1) approximation */)
{
    DdNode *res;

    do {
	dd->reordered = 0;
	res = cuddBddClippingAndAbstract(dd,f,g,cube,maxDepth,direction);
    } while (dd->reordered == 1);
    return(res);

} /* end of Cudd_bddClippingAndAbstract */
Beispiel #2
0
/**
  @brief Approximates the conjunction of two BDDs f and g and
  simultaneously abstracts the variables in cube.

  @details The variables are existentially abstracted.

  @return a pointer to the resulting %BDD if successful; NULL if the
  intermediate result blows up.

  @sideeffect None

  @see Cudd_bddAndAbstract Cudd_bddClippingAnd

*/
DdNode *
Cudd_bddClippingAndAbstract(
  DdManager * dd /**< manager */,
  DdNode * f /**< first conjunct */,
  DdNode * g /**< second conjunct */,
  DdNode * cube /**< cube of variables to be abstracted */,
  int  maxDepth /**< maximum recursion depth */,
  int  direction /**< under (0) or over (1) approximation */)
{
    DdNode *res;

    do {
	dd->reordered = 0;
	res = cuddBddClippingAndAbstract(dd,f,g,cube,maxDepth,direction);
    } while (dd->reordered == 1);
    if (dd->errorCode == CUDD_TIMEOUT_EXPIRED && dd->timeoutHandler) {
        dd->timeoutHandler(dd, dd->tohArg);
    }
    return(res);

} /* end of Cudd_bddClippingAndAbstract */