this.add(new FFT3Kernel(N, logN, W_re, W_im));
this.add(new FFT3Kernel(N, logN, W_re1, W_im1));
  public void init()   {     /* Make sure N is a power_of_2, N >= 4 and 2^logN = N */      final int N =  32; //16;     final int logN = 5; //4;       float W_re[];     float W_im[];     /* Initialize roots of unity array W[].        * W[] is bit-reversal permuted for easier access later -        * see the comment inside 'class ComputeStage'      */     W_re = new float[N/2];     W_im = new float[N/2];     for (int i=0; i<(N/2); i++)     {	//int br = bitrev(i, logN-1);  	//inlined bitrev to help constant propagation 	int br=0;	int j, temp;	temp=i;	for (j=0; j < (logN-1); j++)	{		br = (br << 1) | (temp & 1);		temp >>= 1;	}	W_re[br] = (float) Math.cos(((double)i*2.0*Math.PI)/((double)N)); 	W_im[br] = (float) Math.sin(((double)i*2.0*Math.PI)/((double)N));     }      //for (int i=0; i<(N/2); i++)     //  System.out.println("WW "+W_re[i]+" "+W_im[i]);         /* the tapes contain real followed by imag parts of each complex point */     this.add(new ComplexSource(N));     this.add(new FFT3Kernel(N, logN, W_re, W_im));     this.add(new ComplexPrinter());   } 