// ************************************************************************** // // // // 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 // // // // ************************************************************************** // [4][4]nat a; [4][4]nat b; [4][4]nat c; 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_1 = a[2][0] + a[2][2]; t_2 = a[2][1] + a[2][3]; t_3 = a[3][0] + a[3][2]; t_4 = a[3][1] + a[3][3]; t_5 = t_1 - a[0][0]; t_6 = t_2 - a[0][1]; t_7 = t_3 - a[1][0]; t_8 = t_4 - a[1][1]; t_9 = a[0][0] - a[2][0]; t_10 = a[0][1] - a[2][1]; t_11 = a[1][0] - a[3][0]; t_12 = a[1][1] - a[3][1]; t_13 = a[0][2] - t_5; t_14 = a[0][3] - t_6; t_15 = a[1][2] - t_7; t_16 = a[1][3] - t_8; t_17 = b[0][2] - b[0][0]; t_18 = b[0][3] - b[0][1]; t_19 = b[1][2] - b[1][0]; t_20 = b[1][3] - b[1][1]; t_21 = b[2][2] - t_17; t_22 = b[2][3] - t_18; t_23 = b[3][2] - t_19; t_24 = b[3][3] - t_20; t_25 = b[2][2] - b[0][2]; t_26 = b[2][3] - b[0][3]; t_27 = b[3][2] - b[1][2]; t_28 = b[3][3] - b[1][3]; t_29 = t_21 - b[2][0]; t_30 = t_22 - b[2][1]; t_31 = t_23 - b[3][0]; t_32 = t_24 - b[3][1]; t_33 = t_7 + t_8; t_34 = t_33 - t_5; t_35 = t_5 - t_7; t_36 = t_6 - t_34; t_37 = t_22 - t_21; t_38 = t_24 - t_37; t_39 = t_24 - t_22; t_40 = t_38 - t_23; t_41 = t_34 * t_38; t_42 = t_5 * t_21; t_43 = t_6 * t_23; t_44 = t_35 * t_39; t_45 = t_33 * t_37; t_46 = t_36 * t_24; t_47 = t_8 * t_40; t_48 = t_41 + t_42; t_49 = t_48 + t_44; t_50 = t_42 + t_43; t_51 = t_45 + t_46; t_52 = t_48 + t_51; t_53 = t_49 - t_47; t_54 = t_49 + t_45; t_55 = a[1][0] + a[1][1]; t_56 = t_55 - a[0][0]; t_57 = a[0][0] - a[1][0]; t_58 = a[0][1] - t_56; t_59 = b[0][1] - b[0][0]; t_60 = b[1][1] - t_59; t_61 = b[1][1] - b[0][1]; t_62 = t_60 - b[1][0]; t_63 = t_56 * t_60; t_64 = a[0][0] * b[0][0]; t_65 = a[0][1] * b[1][0]; t_66 = t_57 * t_61; t_67 = t_55 * t_59; t_68 = t_58 * b[1][1]; t_69 = a[1][1] * t_62; t_70 = t_63 + t_64; t_71 = t_70 + t_66; t_72 = t_64 + t_65; t_73 = t_67 + t_68; t_74 = t_70 + t_73; t_75 = t_71 - t_69; t_76 = t_71 + t_67; t_77 = a[1][2] + a[1][3]; t_78 = t_77 - a[0][2]; t_79 = a[0][2] - a[1][2]; t_80 = a[0][3] - t_78; t_81 = b[2][1] - b[2][0]; t_82 = b[3][1] - t_81; t_83 = b[3][1] - b[2][1]; t_84 = t_82 - b[3][0]; t_85 = t_78 * t_82; t_86 = a[0][2] * b[2][0]; t_87 = a[0][3] * b[3][0]; t_88 = t_79 * t_83; t_89 = t_77 * t_81; t_90 = t_80 * b[3][1]; t_91 = a[1][3] * t_84; t_92 = t_85 + t_86; t_93 = t_92 + t_88; t_94 = t_86 + t_87; t_95 = t_89 + t_90; t_96 = t_92 + t_95; t_97 = t_93 - t_91; t_98 = t_93 + t_89; t_99 = t_11 + t_12; t_100 = t_99 - t_9; t_101 = t_9 - t_11; t_102 = t_10 - t_100; t_103 = t_26 - t_25; t_104 = t_28 - t_103; t_105 = t_28 - t_26; t_106 = t_104 - t_27; t_107 = t_100 * t_104; t_108 = t_9 * t_25; t_109 = t_10 * t_27; t_110 = t_101 * t_105; t_111 = t_99 * t_103; t_112 = t_102 * t_28; t_113 = t_12 * t_106; t_114 = t_107 + t_108; t_115 = t_114 + t_110; t_116 = t_108 + t_109; t_117 = t_111 + t_112; t_118 = t_114 + t_117; t_119 = t_115 - t_113; t_120 = t_115 + t_111; t_121 = t_3 + t_4; t_122 = t_121 - t_1; t_123 = t_1 - t_3; t_124 = t_2 - t_122; t_125 = t_18 - t_17; t_126 = t_20 - t_125; t_127 = t_20 - t_18; t_128 = t_126 - t_19; t_129 = t_122 * t_126; t_130 = t_1 * t_17; t_131 = t_2 * t_19; t_132 = t_123 * t_127; t_133 = t_121 * t_125; t_134 = t_124 * t_20; t_135 = t_4 * t_128; t_136 = t_129 + t_130; t_137 = t_136 + t_132; t_138 = t_130 + t_131; t_139 = t_133 + t_134; t_140 = t_136 + t_139; t_141 = t_137 - t_135; t_142 = t_137 + t_133; t_143 = t_15 + t_16; t_144 = t_143 - t_13; t_145 = t_13 - t_15; t_146 = t_14 - t_144; t_147 = b[2][3] - b[2][2]; t_148 = b[3][3] - t_147; t_149 = b[3][3] - b[2][3]; t_150 = t_148 - b[3][2]; t_151 = t_144 * t_148; t_152 = t_13 * b[2][2]; t_153 = t_14 * b[3][2]; t_154 = t_145 * t_149; t_155 = t_143 * t_147; t_156 = t_146 * b[3][3]; t_157 = t_16 * t_150; t_158 = t_151 + t_152; t_159 = t_158 + t_154; t_160 = t_152 + t_153; t_161 = t_155 + t_156; t_162 = t_158 + t_161; t_163 = t_159 - t_157; t_164 = t_159 + t_155; t_165 = a[3][2] + a[3][3]; t_166 = t_165 - a[2][2]; t_167 = a[2][2] - a[3][2]; t_168 = a[2][3] - t_166; t_169 = t_30 - t_29; t_170 = t_32 - t_169; t_171 = t_32 - t_30; t_172 = t_170 - t_31; t_173 = t_166 * t_170; t_174 = a[2][2] * t_29; t_175 = a[2][3] * t_31; t_176 = t_167 * t_171; t_177 = t_165 * t_169; t_178 = t_168 * t_32; t_179 = a[3][3] * t_172; t_180 = t_173 + t_174; t_181 = t_180 + t_176; t_182 = t_174 + t_175; t_183 = t_177 + t_178; t_184 = t_180 + t_183; t_185 = t_181 - t_179; t_186 = t_181 + t_177; t_187 = t_50 + t_72; t_188 = t_52 + t_74; t_189 = t_53 + t_75; t_190 = t_54 + t_76; t_191 = t_187 + t_116; t_192 = t_188 + t_118; t_193 = t_189 + t_119; t_194 = t_190 + t_120; t_195 = t_72 + t_94; t_196 = t_74 + t_96; t_197 = t_75 + t_97; t_198 = t_76 + t_98; t_199 = t_138 + t_160; t_200 = t_140 + t_162; t_201 = t_141 + t_163; t_202 = t_142 + t_164; t_203 = t_187 + t_199; t_204 = t_188 + t_200; t_205 = t_189 + t_201; t_206 = t_190 + t_202; t_207 = t_191 - t_182; t_208 = t_192 - t_184; t_209 = t_193 - t_185; t_210 = t_194 - t_186; t_211 = t_191 + t_138; t_212 = t_192 + t_140; t_213 = t_193 + t_141; t_214 = t_194 + t_142; c[0][0] = t_195; c[0][1] = t_196; c[0][2] = t_203; c[0][3] = t_204; c[1][0] = t_197; c[1][1] = t_198; c[1][2] = t_205; c[1][3] = t_206; c[2][0] = t_207; c[2][1] = t_208; c[2][2] = t_211; c[2][3] = t_212; c[3][0] = t_209; c[3][1] = t_210; c[3][2] = t_213; c[3][3] = t_214; }