abc/src/bool/lucky/luckyFast16.c
//It compares 1Q and 2Q and returns 1 if 1Q is smaller then 2Q ( comparison starts at highest bit) and visa versa
// DifStart contains the information about the first different bit in 1Q and 2Q
It compares 1Q and 2Q and returns 1 if 1Q is smaller then 2Q ( comparison starts at highest bit) and visa versa
DifStart contains the information about the first different bit in 1Q and 2Q
It compares 1Q and 2Q and returns 1 if 1Q is smaller then 2Q ( comparison starts at highest bit ) and visa versa DifStart contains the information about the first different bit in 1Q and 2Q
int minTemp1_fast(word* pInOut, int iVar, int nWords, int* pDifStart)
{
    int i, blockSize = 1<<iVar;
    word temp;
    for(i=nWords - 1; i>=0; i--)
    {
        assert( 2*blockSize < 64 );
        temp = ((pInOut[i] & SFmask[iVar][1])<<(blockSize)) ^ ((pInOut[i] & SFmask[iVar][2])<<(2*blockSize));
        if( temp == 0)
            continue;
        else
        {
            *pDifStart = i*100 + 20 - firstShiftWithOneBit(temp, blockSize);
            if( ((pInOut[i] & SFmask[iVar][1])<<(blockSize)) < ((pInOut[i] & SFmask[iVar][2])<<(2*blockSize)) )
                return 1;
            else
                return 2;
        }
    }
    *pDifStart=0;
    return 1;
}
int minTemp1_fast ( word * pInOut , int iVar , int nWords , int * pDifStart ) { int i , blockSize = 1 << iVar ; word temp ; for ( i = nWords - 1 ; i >= 0 ; i -- ) { assert ( 2 * blockSize < 64 ) ; temp = ( ( pInOut [ i ] & SFmask [ iVar ] [ 1 ] ) << ( blockSize ) ) ^ ( ( pInOut [ i ] & SFmask [ iVar ] [ 2 ] ) << ( 2 * blockSize ) ) ; if ( temp == 0 ) continue ; else { * pDifStart = i * 100 + 20 - firstShiftWithOneBit ( temp , blockSize ) ; if ( ( ( pInOut [ i ] & SFmask [ iVar ] [ 1 ] ) << ( blockSize ) ) < ( ( pInOut [ i ] & SFmask [ iVar ] [ 2 ] ) << ( 2 * blockSize ) ) ) return 1 ; else return 2 ; } } * pDifStart = 0 ; return 1 ; }
It compares 1Q and 2Q and returns 1 if 1Q is smaller then 2Q ( comparison starts at highest bit) and visa versa
DifStart contains the information about the first different bit in 1Q and 2Q
It compares 1Q and 2Q and returns 1 if 1Q is smaller then 2Q ( comparison starts at highest bit ) and visa versa DifStart contains the information about the first different bit in 1Q and 2Q