abc/src/bdd/cudd/cuddBddAbs.c
DdNode *
Cudd_bddUnivAbstract(
  DdManager * manager,
  DdNode * f,
  DdNode * cube)
{
    DdNode      *res;

    if (bddCheckPositiveCube(manager, cube) == 0) {
        (void) fprintf(manager->err,
                       "Error: Can only abstract positive cubes\n");
        manager->errorCode = CUDD_INVALID_ARG;
        return(NULL);
    }

    do {
        manager->reordered = 0;
        res = cuddBddExistAbstractRecur(manager, Cudd_Not(f), cube);
    } while (manager->reordered == 1);
    if (res != NULL) res = Cudd_Not(res);

    return(res);

}
/**Function********************************************************************

  Synopsis    [Universally abstracts all the variables in cube from f.]

  Description [Universally abstracts all the variables in cube from f.
  Returns the abstracted BDD if successful; NULL otherwise.]

  SideEffects [None]

  SeeAlso     [Cudd_bddExistAbstract Cudd_addUnivAbstract]

******************************************************************************/
Function
Synopsis    [Universally abstracts all the variables in cube from f.]

Description [Universally abstracts all the variables in cube from f.
Returns the abstracted BDD if successful; NULL otherwise.]




Function Synopsis [ Universally abstracts all the variables in cube from f . ] Description [ Universally abstracts all the variables in cube from f . Returns the abstracted BDD if successful ; NULL otherwise . ]
DdNode *
Cudd_bddUnivAbstract(
  DdManager * manager,
  DdNode * f,
  DdNode * cube)
{
    DdNode      *res;
    if (bddCheckPositiveCube(manager, cube) == 0) {
        (void) fprintf(manager->err,
                       "Error: Can only abstract positive cubes\n");
        manager->errorCode = CUDD_INVALID_ARG;
        return(NULL);
    }
    do {
        manager->reordered = 0;
        res = cuddBddExistAbstractRecur(manager, Cudd_Not(f), cube);
    } while (manager->reordered == 1);
    if (res != NULL) res = Cudd_Not(res);
    return(res);
}
DdNode * Cudd_bddUnivAbstract ( DdManager * manager , DdNode * f , DdNode * cube ) { DdNode * res ; if ( bddCheckPositiveCube ( manager , cube ) == 0 ) { ( void ) fprintf ( manager -> err , " \n " ) ; manager -> errorCode = CUDD_INVALID_ARG ; return ( NULL ) ; } do { manager -> reordered = 0 ; res = cuddBddExistAbstractRecur ( manager , Cudd_Not ( f ) , cube ) ; } while ( manager -> reordered == 1 ) ; if ( res != NULL ) res = Cudd_Not ( res ) ; return ( res ) ; }
Function
Synopsis    [Universally abstracts all the variables in cube from f.]
Function Synopsis [ Universally abstracts all the variables in cube from f . ]