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

  Synopsis    [Moves one variable up.]

  Description [Takes a variable from position x and sifts it up to
  position xLow;  xLow should be less than or equal to x.
  Returns 1 if successful; 0 otherwise]

  SideEffects [None]

  SeeAlso     []

******************************************************************************/
Function
Synopsis    [Moves one variable up.]

Description [Takes a variable from position x and sifts it up to
position xLow;  xLow should be less than or equal to x.
Returns 1 if successful; 0 otherwise]




Function Synopsis [ Moves one variable up . ] Description [ Takes a variable from position x and sifts it up to position xLow ; xLow should be less than or equal to x . Returns 1 if successful ; 0 otherwise ]
static int
ddSiftUp(
  DdManager * table,
  int  x,
  int  xLow)
{
    int        y;
    int        size;
    y = cuddNextLow(table,x);
    while (y >= xLow) {
        size = cuddSwapInPlace(table,y,x);
        if (size == 0) {
            return(0);
        }
        x = y;
        y = cuddNextLow(table,x);
    }
    return(1);
}
static int ddSiftUp ( DdManager * table , int x , int xLow ) { int y ; int size ; y = cuddNextLow ( table , x ) ; while ( y >= xLow ) { size = cuddSwapInPlace ( table , y , x ) ; if ( size == 0 ) { return ( 0 ) ; } x = y ; y = cuddNextLow ( table , x ) ; } return ( 1 ) ; }
Function
Synopsis    [Moves one variable up.]
Function Synopsis [ Moves one variable up . ]