// ************************************************************************** //
//                                                                            //
//    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                                             //
//                                                                            //
// ************************************************************************** //


int w_0,w_1,w_2,w_3,w_4,w_5,w_6,w_7;
int x_0,x_1,x_2,x_3,x_4,x_5,x_6,x_7;
int y_0,y_1,y_2,y_3,y_4,y_5,y_6,y_7;
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_1 = x_0 + x_4;
    t_2 = x_1 + x_5;
    t_3 = x_2 + x_6;
    t_4 = x_3 + x_7;
    t_5 = x_0 - x_4;
    t_6 = w_1 * (x_1 - x_5);
    t_7 = w_2 * (x_2 - x_6);
    t_8 = w_3 * (x_3 - x_7);
    t_9 = t_1 + t_3;
    t_10 = t_2 + t_4;
    t_11 = t_1 - t_3;
    t_12 = w_2 * (t_2 - t_4);
    t_13 = t_9 + t_10;
    t_14 = t_9 - t_10;
    t_15 = t_11 + t_12;
    t_16 = t_11 - t_12;
    t_17 = t_5 + t_7;
    t_18 = t_6 + t_8;
    t_19 = t_5 - t_7;
    t_20 = w_2 * (t_6 - t_8);
    t_21 = t_17 + t_18;
    t_22 = t_17 - t_18;
    t_23 = t_19 + t_20;
    t_24 = t_19 - t_20;
    y_0 = t_13;
    y_1 = t_21;
    y_2 = t_15;
    y_3 = t_23;
    y_4 = t_14;
    y_5 = t_22;
    y_6 = t_16;
    y_7 = t_24;
}