_LETTERS_ Example 1: (a) and (b) by Ken Allen; (c) by Mike Dunlavey; (d) and (e) by Harlan W. Stockman (a) static unsigned int MaskTable08[] = { 0x81, /* 10000001 */ 0x42, /* 01000010 */ 0x24, /* 00100100 */ 0x18, /* 00011000 */ 0x00 /*end of table*/ }; static unsigned int MaskTable09[] = { 0x101, /* 100000001 */ 0x082, /* 010000010 */ 0x044, /* 001000100 */ 0x028, /* 000101000 */ 0x00 /*end of table*/ }; (b) unsigned int rbi(unsigned int fbi, unsigned int * pTable) { unsigned int result, mask, temp; result = fbi; for(mask = *pTable; mask; mask = *(++pTable)) { temp = fbi & mask; /* isolate symetric bits pair */ if (temp == 0 || temp == mask) /* are the symetric bits the same ? */ continue; /* if so, then don't need to change */ result ^= mask; /* bits differ, so flip them */ } return(result); } (c) float real[1024], imag[1024], temp; #define SWAP(a,i,j)(temp=a[i], a[i]=a[j], a[j]=temp) int i=0, j=0, i0,i1,i2,i3,i4,i5,i6,i7,i8,i9; #define TWICE(k) for(i##k = 2; -- i##k >= 0; j ^= (1< i){ SWAP(real,i,j); SWAP(imag,i,j); } i++; } (d) struct cmplx {float Re; float Im;} xc[SIZE], *cp; (e) (e) tempr = Qr * (cp+index2)->Re - Qi * (cp+index2)->Im; tempi = Qr * (cp+index2)->Im + Qi * (cp+index2)->Re; (cp+index2)->Re = (cp+index1)->Re - tempr; /* For Re-part */ (cp+index1)->Re = (cp+index1)->Re + tempr; (cp+index2)->Im = (cp+index1)->Im - tempi; /* For Im-part */ (cp+index1)->Im = (cp+index1)->Im + tempi;