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


nat a_0_0,a_0_1,a_0_2,a_0_3,a_1_0,a_1_1,a_1_2,a_1_3,a_2_0,a_2_1,a_2_2,a_2_3,a_3_0,a_3_1,a_3_2,a_3_3;
nat b_0_0,b_0_1,b_0_2,b_0_3,b_1_0,b_1_1,b_1_2,b_1_3,b_2_0,b_2_1,b_2_2,b_2_3,b_3_0,b_3_1,b_3_2,b_3_3;
nat c_0_0,c_0_1,c_0_2,c_0_3,c_1_0,c_1_1,c_1_2,c_1_3,c_2_0,c_2_1,c_2_2,c_2_3,c_3_0,c_3_1,c_3_2,c_3_3;
thread MatrixMultWinograd {
    nat 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_97,t_98,t_99,t_100,t_101,t_102,t_103,t_104,t_105,t_106,t_107,t_108,t_109,t_110,t_111,t_112,t_113,t_114,t_115,t_116,t_117,t_118,t_119,t_120,t_121,t_122,t_123,t_124,t_125,t_126,t_127,t_128,t_129,t_130,t_131,t_132,t_133,t_134,t_135,t_136,t_137,t_138,t_139,t_140,t_141,t_142,t_143,t_144,t_145,t_146,t_147,t_148,t_149,t_150,t_151,t_152,t_153,t_154,t_155,t_156,t_157,t_158,t_159,t_160,t_161,t_162,t_163,t_164,t_165,t_166,t_167,t_168,t_169,t_170,t_171,t_172,t_173,t_174,t_175,t_176,t_177,t_178,t_179,t_180,t_181,t_182,t_183,t_184,t_185,t_186,t_187,t_188,t_189,t_190,t_191,t_192,t_193,t_194,t_195,t_196,t_197,t_198,t_199,t_200,t_201,t_202,t_203,t_204,t_205,t_206,t_207,t_208,t_209,t_210,t_211,t_212,t_213,t_214,t_215,t_216,t_217,t_218,t_219,t_220,t_221,t_222,t_223,t_224,t_225,t_226,t_227,t_228,t_229,t_230,t_231,t_232,t_233,t_234,t_235,t_236,t_237,t_238,t_239,t_240,t_241,t_242,t_243,t_244,t_245,t_246;
    t_1 = a_0_0;
    t_2 = a_0_1;
    t_3 = a_0_2;
    t_4 = a_0_3;
    t_5 = a_1_1;
    t_6 = a_1_2;
    t_7 = a_1_3;
    t_8 = a_1_0;
    t_9 = a_2_2;
    t_10 = a_2_3;
    t_11 = a_2_0;
    t_12 = a_2_1;
    t_13 = a_3_3;
    t_14 = a_3_0;
    t_15 = a_3_1;
    t_16 = a_3_2;
    t_17 = b_0_0;
    t_18 = b_1_1;
    t_19 = b_2_2;
    t_20 = b_3_3;
    t_21 = b_1_0;
    t_22 = b_2_1;
    t_23 = b_3_2;
    t_24 = b_0_3;
    t_25 = b_2_0;
    t_26 = b_3_1;
    t_27 = b_0_2;
    t_28 = b_1_3;
    t_29 = b_3_0;
    t_30 = b_0_1;
    t_31 = b_1_2;
    t_32 = b_2_3;
    t_33 = a_2_0 + a_2_2;
    t_34 = a_2_1 + a_2_3;
    t_35 = a_3_0 + a_3_2;
    t_36 = a_3_1 + a_3_3;
    t_37 = t_33 - a_0_0;
    t_38 = t_34 - a_0_1;
    t_39 = t_35 - a_1_0;
    t_40 = t_36 - a_1_1;
    t_41 = a_0_0 - a_2_0;
    t_42 = a_0_1 - a_2_1;
    t_43 = a_1_0 - a_3_0;
    t_44 = a_1_1 - a_3_1;
    t_45 = a_0_2 - t_37;
    t_46 = a_0_3 - t_38;
    t_47 = a_1_2 - t_39;
    t_48 = a_1_3 - t_40;
    t_49 = b_0_2 - b_0_0;
    t_50 = b_0_3 - b_0_1;
    t_51 = b_1_2 - b_1_0;
    t_52 = b_1_3 - b_1_1;
    t_53 = b_2_2 - t_49;
    t_54 = b_2_3 - t_50;
    t_55 = b_3_2 - t_51;
    t_56 = b_3_3 - t_52;
    t_57 = b_2_2 - b_0_2;
    t_58 = b_2_3 - b_0_3;
    t_59 = b_3_2 - b_1_2;
    t_60 = b_3_3 - b_1_3;
    t_61 = t_53 - b_2_0;
    t_62 = t_54 - b_2_1;
    t_63 = t_55 - b_3_0;
    t_64 = t_56 - b_3_1;
    t_65 = t_39 + t_40;
    t_66 = t_65 - t_37;
    t_67 = t_37 - t_39;
    t_68 = t_38 - t_66;
    t_69 = t_54 - t_53;
    t_70 = t_56 - t_69;
    t_71 = t_56 - t_54;
    t_72 = t_70 - t_55;
    t_73 = t_66 * t_70;
    t_74 = t_37 * t_53;
    t_75 = t_38 * t_55;
    t_76 = t_67 * t_71;
    t_77 = t_65 * t_69;
    t_78 = t_68 * t_56;
    t_79 = t_40 * t_72;
    t_80 = t_73 + t_74;
    t_81 = t_80 + t_76;
    t_82 = t_74 + t_75;
    t_83 = t_77 + t_78;
    t_84 = t_80 + t_83;
    t_85 = t_81 - t_79;
    t_86 = t_81 + t_77;
    t_87 = a_1_0 + a_1_1;
    t_88 = t_87 - a_0_0;
    t_89 = a_0_0 - a_1_0;
    t_90 = a_0_1 - t_88;
    t_91 = b_0_1 - b_0_0;
    t_92 = b_1_1 - t_91;
    t_93 = b_1_1 - b_0_1;
    t_94 = t_92 - b_1_0;
    t_95 = t_88 * t_92;
    t_96 = a_0_0 * b_0_0;
    t_97 = a_0_1 * b_1_0;
    t_98 = t_89 * t_93;
    t_99 = t_87 * t_91;
    t_100 = t_90 * b_1_1;
    t_101 = a_1_1 * t_94;
    t_102 = t_95 + t_96;
    t_103 = t_102 + t_98;
    t_104 = t_96 + t_97;
    t_105 = t_99 + t_100;
    t_106 = t_102 + t_105;
    t_107 = t_103 - t_101;
    t_108 = t_103 + t_99;
    t_109 = a_1_2 + a_1_3;
    t_110 = t_109 - a_0_2;
    t_111 = a_0_2 - a_1_2;
    t_112 = a_0_3 - t_110;
    t_113 = b_2_1 - b_2_0;
    t_114 = b_3_1 - t_113;
    t_115 = b_3_1 - b_2_1;
    t_116 = t_114 - b_3_0;
    t_117 = t_110 * t_114;
    t_118 = a_0_2 * b_2_0;
    t_119 = a_0_3 * b_3_0;
    t_120 = t_111 * t_115;
    t_121 = t_109 * t_113;
    t_122 = t_112 * b_3_1;
    t_123 = a_1_3 * t_116;
    t_124 = t_117 + t_118;
    t_125 = t_124 + t_120;
    t_126 = t_118 + t_119;
    t_127 = t_121 + t_122;
    t_128 = t_124 + t_127;
    t_129 = t_125 - t_123;
    t_130 = t_125 + t_121;
    t_131 = t_43 + t_44;
    t_132 = t_131 - t_41;
    t_133 = t_41 - t_43;
    t_134 = t_42 - t_132;
    t_135 = t_58 - t_57;
    t_136 = t_60 - t_135;
    t_137 = t_60 - t_58;
    t_138 = t_136 - t_59;
    t_139 = t_132 * t_136;
    t_140 = t_41 * t_57;
    t_141 = t_42 * t_59;
    t_142 = t_133 * t_137;
    t_143 = t_131 * t_135;
    t_144 = t_134 * t_60;
    t_145 = t_44 * t_138;
    t_146 = t_139 + t_140;
    t_147 = t_146 + t_142;
    t_148 = t_140 + t_141;
    t_149 = t_143 + t_144;
    t_150 = t_146 + t_149;
    t_151 = t_147 - t_145;
    t_152 = t_147 + t_143;
    t_153 = t_35 + t_36;
    t_154 = t_153 - t_33;
    t_155 = t_33 - t_35;
    t_156 = t_34 - t_154;
    t_157 = t_50 - t_49;
    t_158 = t_52 - t_157;
    t_159 = t_52 - t_50;
    t_160 = t_158 - t_51;
    t_161 = t_154 * t_158;
    t_162 = t_33 * t_49;
    t_163 = t_34 * t_51;
    t_164 = t_155 * t_159;
    t_165 = t_153 * t_157;
    t_166 = t_156 * t_52;
    t_167 = t_36 * t_160;
    t_168 = t_161 + t_162;
    t_169 = t_168 + t_164;
    t_170 = t_162 + t_163;
    t_171 = t_165 + t_166;
    t_172 = t_168 + t_171;
    t_173 = t_169 - t_167;
    t_174 = t_169 + t_165;
    t_175 = t_47 + t_48;
    t_176 = t_175 - t_45;
    t_177 = t_45 - t_47;
    t_178 = t_46 - t_176;
    t_179 = b_2_3 - b_2_2;
    t_180 = b_3_3 - t_179;
    t_181 = b_3_3 - b_2_3;
    t_182 = t_180 - b_3_2;
    t_183 = t_176 * t_180;
    t_184 = t_45 * b_2_2;
    t_185 = t_46 * b_3_2;
    t_186 = t_177 * t_181;
    t_187 = t_175 * t_179;
    t_188 = t_178 * b_3_3;
    t_189 = t_48 * t_182;
    t_190 = t_183 + t_184;
    t_191 = t_190 + t_186;
    t_192 = t_184 + t_185;
    t_193 = t_187 + t_188;
    t_194 = t_190 + t_193;
    t_195 = t_191 - t_189;
    t_196 = t_191 + t_187;
    t_197 = a_3_2 + a_3_3;
    t_198 = t_197 - a_2_2;
    t_199 = a_2_2 - a_3_2;
    t_200 = a_2_3 - t_198;
    t_201 = t_62 - t_61;
    t_202 = t_64 - t_201;
    t_203 = t_64 - t_62;
    t_204 = t_202 - t_63;
    t_205 = t_198 * t_202;
    t_206 = a_2_2 * t_61;
    t_207 = a_2_3 * t_63;
    t_208 = t_199 * t_203;
    t_209 = t_197 * t_201;
    t_210 = t_200 * t_64;
    t_211 = a_3_3 * t_204;
    t_212 = t_205 + t_206;
    t_213 = t_212 + t_208;
    t_214 = t_206 + t_207;
    t_215 = t_209 + t_210;
    t_216 = t_212 + t_215;
    t_217 = t_213 - t_211;
    t_218 = t_213 + t_209;
    t_219 = t_82 + t_104;
    t_220 = t_84 + t_106;
    t_221 = t_85 + t_107;
    t_222 = t_86 + t_108;
    t_223 = t_219 + t_148;
    t_224 = t_220 + t_150;
    t_225 = t_221 + t_151;
    t_226 = t_222 + t_152;
    t_227 = t_104 + t_126;
    t_228 = t_106 + t_128;
    t_229 = t_107 + t_129;
    t_230 = t_108 + t_130;
    t_231 = t_170 + t_192;
    t_232 = t_172 + t_194;
    t_233 = t_173 + t_195;
    t_234 = t_174 + t_196;
    t_235 = t_219 + t_231;
    t_236 = t_220 + t_232;
    t_237 = t_221 + t_233;
    t_238 = t_222 + t_234;
    t_239 = t_223 - t_214;
    t_240 = t_224 - t_216;
    t_241 = t_225 - t_217;
    t_242 = t_226 - t_218;
    t_243 = t_223 + t_170;
    t_244 = t_224 + t_172;
    t_245 = t_225 + t_173;
    t_246 = t_226 + t_174;
    c_0_0 = t_227;
    c_0_1 = t_228;
    c_0_2 = t_235;
    c_0_3 = t_236;
    c_1_0 = t_229;
    c_1_1 = t_230;
    c_1_2 = t_237;
    c_1_3 = t_238;
    c_2_0 = t_239;
    c_2_1 = t_240;
    c_2_2 = t_243;
    c_2_3 = t_244;
    c_3_0 = t_241;
    c_3_1 = t_242;
    c_3_2 = t_245;
    c_3_3 = t_246;
}