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

  Synopsis    [Updates the upper bound and saves the best order seen so far.]

  Description [Updates the upper bound and saves the best order seen so far.
  Returns the current value of the upper bound.]

  SideEffects [None]

  SeeAlso     []

******************************************************************************/
Function
Synopsis    [Updates the upper bound and saves the best order seen so far.]

Description [Updates the upper bound and saves the best order seen so far.
Returns the current value of the upper bound.]




Function Synopsis [ Updates the upper bound and saves the best order seen so far . ] Description [ Updates the upper bound and saves the best order seen so far . Returns the current value of the upper bound . ]
static int
updateUB(
  DdManager * table,
  int  oldBound,
  DdHalfWord * bestOrder,
  int  lower,
  int  upper)
{
    int i;
    int newBound = table->keys - table->isolated;
    if (newBound < oldBound) {
#ifdef DD_STATS
        (void) fprintf(table->out,"New upper bound = %d\n", newBound);
        fflush(table->out);
#endif
        for (i = lower; i <= upper; i++)
            bestOrder[i-lower] = (DdHalfWord) table->invperm[i];
        return(newBound);
    } else {
        return(oldBound);
    }
}
static int updateUB ( DdManager * table , int oldBound , DdHalfWord * bestOrder , int lower , int upper ) { int i ; int newBound = table -> keys - table -> isolated ; if ( newBound < oldBound ) { #ifdef DD_STATS ( void ) fprintf ( table -> out , " \n " , newBound ) ; fflush ( table -> out ) ; #endif for ( i = lower ; i <= upper ; i ++ ) bestOrder [ i - lower ] = ( DdHalfWord ) table -> invperm [ i ] ; return ( newBound ) ; } else { return ( oldBound ) ; } }
Function
Synopsis    [Updates the upper bound and saves the best order seen so far.]
Function Synopsis [ Updates the upper bound and saves the best order seen so far . ]