// ************************************************************************** //
//                                                                            //
//    eses                   eses                                             //
//   eses                     eses                                            //
//  eses    eseses  esesese    eses   Embedded Systems Group                  //
//  ese    ese  ese ese         ese                                           //
//  ese    eseseses eseseses    ese   Department of Computer Science          //
//  eses   eses          ese   eses                                           //
//   eses   eseses  eseseses  eses    University of Kaiserslautern            //
//    eses                   eses                                             //
//                                                                            //
// ************************************************************************** //


[8]int w;
[8]int x;
[8]int y;
thread FastFourierTransform {
    int t_1,t_2,t_3,t_4,t_5,t_6,t_7,t_8,t_9,t_10,t_11,t_12,t_13,t_14,t_15,t_16,t_17,t_18,t_19,t_20,t_21,t_22,t_23,t_24,t_25,t_26,t_27,t_28,t_29,t_30,t_31,t_32,t_33,t_34,t_35,t_36,t_37,t_38,t_39,t_40;
    t_1 = x[0];
    t_2 = x[1];
    t_3 = x[2];
    t_4 = x[3];
    t_5 = x[4];
    t_6 = x[5];
    t_7 = x[6];
    t_8 = x[7];
    t_9 = w[0];
    t_10 = w[1];
    t_11 = w[2];
    t_12 = w[3];
    t_13 = w[4];
    t_14 = w[5];
    t_15 = w[6];
    t_16 = w[7];
    t_17 = t_1 + t_5;
    t_18 = t_2 + t_6;
    t_19 = t_3 + t_7;
    t_20 = t_4 + t_8;
    t_21 = t_1 - t_5;
    t_22 = t_10 * (t_2 - t_6);
    t_23 = t_11 * (t_3 - t_7);
    t_24 = t_12 * (t_4 - t_8);
    t_25 = t_17 + t_19;
    t_26 = t_18 + t_20;
    t_27 = t_17 - t_19;
    t_28 = t_11 * (t_18 - t_20);
    t_29 = t_25 + t_26;
    t_30 = t_25 - t_26;
    t_31 = t_27 + t_28;
    t_32 = t_27 - t_28;
    t_33 = t_21 + t_23;
    t_34 = t_22 + t_24;
    t_35 = t_21 - t_23;
    t_36 = t_11 * (t_22 - t_24);
    t_37 = t_33 + t_34;
    t_38 = t_33 - t_34;
    t_39 = t_35 + t_36;
    t_40 = t_35 - t_36;
    y[0] = t_29;
    y[1] = t_37;
    y[2] = t_31;
    y[3] = t_39;
    y[4] = t_30;
    y[5] = t_38;
    y[6] = t_32;
    y[7] = t_40;
}