abc/src/bool/lucky/luckyFast16.c
// It rearranges InOut (swaps and flips through rearrangement of quoters)
// It updates Info at the end
It rearranges InOut (swaps and flips through rearrangement of quoters)
It updates Info at the end
It rearranges InOut ( swaps and flips through rearrangement of quoters ) It updates Info at the end
void arrangeQuoters_superFast_iVar5(unsigned* pInOut, unsigned* temp, int start,  int iQ, int jQ, int kQ, int lQ, char * pCanonPerm, unsigned* pCanonPhase)
{
    int i,blockSize,shiftSize;
    unsigned* tempPtr = temp+start;
    if(iQ == 0 && jQ == 1)
        return; 
    blockSize = sizeof(unsigned);
    shiftSize = 4;
    for(i=start-1;i>0;i-=shiftSize)
    {       
        tempPtr -= 1;       
        memcpy(tempPtr, pInOut+i-iQ, blockSize);
        tempPtr -= 1;
        memcpy(tempPtr, pInOut+i-jQ, blockSize);
        tempPtr -= 1;
        memcpy(tempPtr, pInOut+i-kQ, blockSize);
        tempPtr -= 1;
        memcpy(tempPtr, pInOut+i-lQ, blockSize);        
    }   
    memcpy(pInOut, temp, start*sizeof(unsigned));
    updataInfo(iQ, jQ, 5, pCanonPerm, pCanonPhase);
}
void arrangeQuoters_superFast_iVar5 ( unsigned * pInOut , unsigned * temp , int start , int iQ , int jQ , int kQ , int lQ , char * pCanonPerm , unsigned * pCanonPhase ) { int i , blockSize , shiftSize ; unsigned * tempPtr = temp + start ; if ( iQ == 0 && jQ == 1 ) return ; blockSize = sizeof ( unsigned ) ; shiftSize = 4 ; for ( i = start - 1 ; i > 0 ; i -= shiftSize ) { tempPtr -= 1 ; memcpy ( tempPtr , pInOut + i - iQ , blockSize ) ; tempPtr -= 1 ; memcpy ( tempPtr , pInOut + i - jQ , blockSize ) ; tempPtr -= 1 ; memcpy ( tempPtr , pInOut + i - kQ , blockSize ) ; tempPtr -= 1 ; memcpy ( tempPtr , pInOut + i - lQ , blockSize ) ; } memcpy ( pInOut , temp , start * sizeof ( unsigned ) ) ; updataInfo ( iQ , jQ , 5 , pCanonPerm , pCanonPhase ) ; }
It rearranges InOut (swaps and flips through rearrangement of quoters)
It updates Info at the end
It rearranges InOut ( swaps and flips through rearrangement of quoters ) It updates Info at the end
//     printf("in arrangeQuoters_superFast_iVar5\n");