DSP_bitrev_cplx

int

nbits, nbot, ntop, ndiff, n2, halfn;

short

*xs = (short *) x;

nbits = 0;

i = nx;

while (i > 1){

i = i >> 1;

nbits++;}

nbot

= nbits >> 1;

ndiff

= nbits & 1;

ntop

= nbot + ndiff;

n2

= 1 << ntop;

mask

= n2 − 1;

halfn

= nx >> 1;

for (i0 = 0; i0 < halfn; i0 += 2) {

b= i0 & mask; a = i0 >> nbot;

if

(!b) ia

= index[a];

ib

= index[b];

ibs = ib << nbot;

j0 = ibs + ia;

t= i0 < j0; xi0 = x[i0]; xj0 = x[j0];

if (t){x[i0] = xj0; x[j0] = xi0;}

i1 = i0 + 1;

j1 = j0 + halfn; xi1 = x[i1]; xj1 = x[j1]; x[i1] = xj1; x[j1] = xi1;

i3 = i1 + halfn;

j3 = j1 + 1; xi3 = x[i3]; xj3 = x[j3];

C64x+ DSPLIB Reference

4-91

Page 119
Image 119
Texas Instruments TMS320C64X manual DSPbitrevcplx