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


[16]int w;
[16]int x;
[16]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_41,t_42,t_43,t_44,t_45,t_46,t_47,t_48,t_49,t_50,t_51,t_52,t_53,t_54,t_55,t_56,t_57,t_58,t_59,t_60,t_61,t_62,t_63,t_64,t_65,t_66,t_67,t_68,t_69,t_70,t_71,t_72,t_73,t_74,t_75,t_76,t_77,t_78,t_79,t_80,t_81,t_82,t_83,t_84,t_85,t_86,t_87,t_88,t_89,t_90,t_91,t_92,t_93,t_94,t_95,t_96;
    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 = x[8];
    t_10 = x[9];
    t_11 = x[10];
    t_12 = x[11];
    t_13 = x[12];
    t_14 = x[13];
    t_15 = x[14];
    t_16 = x[15];
    t_17 = w[0];
    t_18 = w[1];
    t_19 = w[2];
    t_20 = w[3];
    t_21 = w[4];
    t_22 = w[5];
    t_23 = w[6];
    t_24 = w[7];
    t_25 = w[8];
    t_26 = w[9];
    t_27 = w[10];
    t_28 = w[11];
    t_29 = w[12];
    t_30 = w[13];
    t_31 = w[14];
    t_32 = w[15];
    t_33 = t_1 + t_9;
    t_34 = t_2 + t_10;
    t_35 = t_3 + t_11;
    t_36 = t_4 + t_12;
    t_37 = t_5 + t_13;
    t_38 = t_6 + t_14;
    t_39 = t_7 + t_15;
    t_40 = t_8 + t_16;
    t_41 = t_1 - t_9;
    t_42 = t_18 * (t_2 - t_10);
    t_43 = t_19 * (t_3 - t_11);
    t_44 = t_20 * (t_4 - t_12);
    t_45 = t_21 * (t_5 - t_13);
    t_46 = t_22 * (t_6 - t_14);
    t_47 = t_23 * (t_7 - t_15);
    t_48 = t_24 * (t_8 - t_16);
    t_49 = t_33 + t_37;
    t_50 = t_34 + t_38;
    t_51 = t_35 + t_39;
    t_52 = t_36 + t_40;
    t_53 = t_33 - t_37;
    t_54 = t_19 * (t_34 - t_38);
    t_55 = t_21 * (t_35 - t_39);
    t_56 = t_23 * (t_36 - t_40);
    t_57 = t_49 + t_51;
    t_58 = t_50 + t_52;
    t_59 = t_49 - t_51;
    t_60 = t_21 * (t_50 - t_52);
    t_61 = t_57 + t_58;
    t_62 = t_57 - t_58;
    t_63 = t_59 + t_60;
    t_64 = t_59 - t_60;
    t_65 = t_53 + t_55;
    t_66 = t_54 + t_56;
    t_67 = t_53 - t_55;
    t_68 = t_21 * (t_54 - t_56);
    t_69 = t_65 + t_66;
    t_70 = t_65 - t_66;
    t_71 = t_67 + t_68;
    t_72 = t_67 - t_68;
    t_73 = t_41 + t_45;
    t_74 = t_42 + t_46;
    t_75 = t_43 + t_47;
    t_76 = t_44 + t_48;
    t_77 = t_41 - t_45;
    t_78 = t_19 * (t_42 - t_46);
    t_79 = t_21 * (t_43 - t_47);
    t_80 = t_23 * (t_44 - t_48);
    t_81 = t_73 + t_75;
    t_82 = t_74 + t_76;
    t_83 = t_73 - t_75;
    t_84 = t_21 * (t_74 - t_76);
    t_85 = t_81 + t_82;
    t_86 = t_81 - t_82;
    t_87 = t_83 + t_84;
    t_88 = t_83 - t_84;
    t_89 = t_77 + t_79;
    t_90 = t_78 + t_80;
    t_91 = t_77 - t_79;
    t_92 = t_21 * (t_78 - t_80);
    t_93 = t_89 + t_90;
    t_94 = t_89 - t_90;
    t_95 = t_91 + t_92;
    t_96 = t_91 - t_92;
    y[0] = t_61;
    y[1] = t_85;
    y[2] = t_69;
    y[3] = t_93;
    y[4] = t_63;
    y[5] = t_87;
    y[6] = t_71;
    y[7] = t_95;
    y[8] = t_62;
    y[9] = t_86;
    y[10] = t_70;
    y[11] = t_94;
    y[12] = t_64;
    y[13] = t_88;
    y[14] = t_72;
    y[15] = t_96;
}