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

  Synopsis [Takes the exclusive OR of two BDDs and simultaneously abstracts the
  variables in cube.]

  Description [Takes the exclusive OR of two BDDs and simultaneously abstracts
  the variables in cube. The variables are existentially abstracted.  Returns a
  pointer to the result is successful; NULL otherwise.]

  SideEffects [None]

  SeeAlso     [Cudd_bddUnivAbstract Cudd_bddExistAbstract Cudd_bddAndAbstract]

******************************************************************************/
Function
Synopsis [Takes the exclusive OR of two BDDs and simultaneously abstracts the
variables in cube.]

Description [Takes the exclusive OR of two BDDs and simultaneously abstracts
the variables in cube. The variables are existentially abstracted.  Returns a
pointer to the result is successful; NULL otherwise.]




Function Synopsis [ Takes the exclusive OR of two BDDs and simultaneously abstracts the variables in cube . ] Description [ Takes the exclusive OR of two BDDs and simultaneously abstracts the variables in cube . The variables are existentially abstracted . Returns a pointer to the result is successful ; NULL otherwise . ]
DdNode *
Cudd_bddXorExistAbstract(
  DdManager * manager,
  DdNode * f,
  DdNode * g,
  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 = cuddBddXorExistAbstractRecur(manager, f, g, cube);
    } while (manager->reordered == 1);
    return(res);
}
DdNode * Cudd_bddXorExistAbstract ( DdManager * manager , DdNode * f , DdNode * g , 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 = cuddBddXorExistAbstractRecur ( manager , f , g , cube ) ; } while ( manager -> reordered == 1 ) ; return ( res ) ; }
Function
Synopsis [Takes the exclusive OR of two BDDs and simultaneously abstracts the
variables in cube.]
Function Synopsis [ Takes the exclusive OR of two BDDs and simultaneously abstracts the variables in cube . ]