DSP_fft16x16t
4-111 C64x+ DSPLIB Reference
/*−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−*/
co10 = w[j+1]; si10 = w[j+0];
co11 = w[j+3]; si11 = w[j+2];
co20 = w[j+5]; si20 = w[j+4];
co21 = w[j+7]; si21 = w[j+6];
co30 = w[j+9]; si30 = w[j+8];
co31 = w[j+11]; si31 = w[j+10];
/*−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−*/
/* Read in the first complex input for the butterflies. */
/* 1st complex input to 1st butterfly: x[0] + jx[1] */
/* 1st complex input to 2nd butterfly: x[2] + jx[3] */
/*−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−*/
x_0 = x[0]; x_1 = x[1];
x_2 = x[2]; x_3 = x[3];
/*−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−*/
/* Read in the complex inputs for the butterflies. Each of the*/
/* successive complex inputs of the butterfly are seperated */
/* by a fixed amount known as stride. The stride starts out */
/* at N/4, and quarters with every stage. */
/*−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−*/
x_l1_0 = x[l1 ]; x_l1_1 = x[l1+1];
x_l1_2 = x[l1+2]; x_l1_3 = x[l1+3];
x_l2_0 = x[l2 ]; x_l2_1 = x[l2+1];
x_l2_2 = x[l2+2]; x_l2_3 = x[l2+3];
x_h2_0 = x[h2 ]; x_h2_1 = x[h2+1];
x_h2_2 = x[h2+2]; x_h2_3 = x[h2+3];
/*−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−*/
/* Two butterflies are evaluated in parallel. The following */
/* results will be shown for one butterfly only, although */
/* both are being evaluated in parallel. */
/* */
/* Perform DSP_radix2 style DIF butterflies. */
/*−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−*/
xh0_0 = x_0 + x_l1_0; xh1_0 = x_1 + x_l1_1;
xh0_1 = x_2 + x_l1_2; xh1_1 = x_3 + x_l1_3;
xl0_0 = x_0 − x_l1_0; xl1_0 = x_1 − x_l1_1;