/**Function******************************************************************** Synopsis [Approximates the conjunction of two BDDs f and g.] Description [Approximates the conjunction of two BDDs f and g. Returns a pointer to the resulting BDD if successful; NULL if the intermediate result blows up.] SideEffects [None] SeeAlso [Cudd_bddAnd] ******************************************************************************/ DdNode * Cudd_bddClippingAnd( DdManager * dd /* manager */, DdNode * f /* first conjunct */, DdNode * g /* second conjunct */, int maxDepth /* maximum recursion depth */, int direction /* under (0) or over (1) approximation */) { DdNode *res; do { dd->reordered = 0; res = cuddBddClippingAnd(dd,f,g,maxDepth,direction); } while (dd->reordered == 1); return(res); } /* end of Cudd_bddClippingAnd */
/** @brief Approximates the conjunction of two BDDs f and g. @return a pointer to the resulting %BDD if successful; NULL if the intermediate result blows up. @sideeffect None @see Cudd_bddAnd */ DdNode * Cudd_bddClippingAnd( DdManager * dd /**< manager */, DdNode * f /**< first conjunct */, DdNode * g /**< second conjunct */, int maxDepth /**< maximum recursion depth */, int direction /**< under (0) or over (1) approximation */) { DdNode *res; do { dd->reordered = 0; res = cuddBddClippingAnd(dd,f,g,maxDepth,direction); } while (dd->reordered == 1); if (dd->errorCode == CUDD_TIMEOUT_EXPIRED && dd->timeoutHandler) { dd->timeoutHandler(dd, dd->tohArg); } return(res); } /* end of Cudd_bddClippingAnd */