// ************************************************************************** // // // // 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 // // // // ************************************************************************** // [6][6]nat a; [6][6]nat b; [6][6]nat c; thread MatrixMult { 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_247,t_248,t_249,t_250,t_251,t_252,t_253,t_254,t_255,t_256,t_257,t_258,t_259,t_260,t_261,t_262,t_263,t_264,t_265,t_266,t_267,t_268,t_269,t_270,t_271,t_272,t_273,t_274,t_275,t_276,t_277,t_278,t_279,t_280,t_281,t_282,t_283,t_284,t_285,t_286,t_287,t_288,t_289,t_290,t_291,t_292,t_293,t_294,t_295,t_296,t_297,t_298,t_299,t_300,t_301,t_302,t_303,t_304,t_305,t_306,t_307,t_308,t_309,t_310,t_311,t_312,t_313,t_314,t_315,t_316,t_317,t_318,t_319,t_320,t_321,t_322,t_323,t_324,t_325,t_326,t_327,t_328,t_329,t_330,t_331,t_332,t_333,t_334,t_335,t_336,t_337,t_338,t_339,t_340,t_341,t_342,t_343,t_344,t_345,t_346,t_347,t_348,t_349,t_350,t_351,t_352,t_353,t_354,t_355,t_356,t_357,t_358,t_359,t_360,t_361,t_362,t_363,t_364,t_365,t_366,t_367,t_368,t_369,t_370,t_371,t_372,t_373,t_374,t_375,t_376,t_377,t_378,t_379,t_380,t_381,t_382,t_383,t_384,t_385,t_386,t_387,t_388,t_389,t_390,t_391,t_392,t_393,t_394,t_395,t_396; t_1 = a[0][0] * b[0][0]; t_2 = a[0][1] * b[1][0]; t_3 = a[0][2] * b[2][0]; t_4 = a[0][3] * b[3][0]; t_5 = a[0][4] * b[4][0]; t_6 = a[0][5] * b[5][0]; t_7 = t_1 + t_2; t_8 = t_3 + t_4; t_9 = t_5 + t_6; t_10 = t_7 + t_8; t_11 = t_10 + t_9; t_12 = a[0][0] * b[0][1]; t_13 = a[0][1] * b[1][1]; t_14 = a[0][2] * b[2][1]; t_15 = a[0][3] * b[3][1]; t_16 = a[0][4] * b[4][1]; t_17 = a[0][5] * b[5][1]; t_18 = t_12 + t_13; t_19 = t_14 + t_15; t_20 = t_16 + t_17; t_21 = t_18 + t_19; t_22 = t_21 + t_20; t_23 = a[0][0] * b[0][2]; t_24 = a[0][1] * b[1][2]; t_25 = a[0][2] * b[2][2]; t_26 = a[0][3] * b[3][2]; t_27 = a[0][4] * b[4][2]; t_28 = a[0][5] * b[5][2]; t_29 = t_23 + t_24; t_30 = t_25 + t_26; t_31 = t_27 + t_28; t_32 = t_29 + t_30; t_33 = t_32 + t_31; t_34 = a[0][0] * b[0][3]; t_35 = a[0][1] * b[1][3]; t_36 = a[0][2] * b[2][3]; t_37 = a[0][3] * b[3][3]; t_38 = a[0][4] * b[4][3]; t_39 = a[0][5] * b[5][3]; t_40 = t_34 + t_35; t_41 = t_36 + t_37; t_42 = t_38 + t_39; t_43 = t_40 + t_41; t_44 = t_43 + t_42; t_45 = a[0][0] * b[0][4]; t_46 = a[0][1] * b[1][4]; t_47 = a[0][2] * b[2][4]; t_48 = a[0][3] * b[3][4]; t_49 = a[0][4] * b[4][4]; t_50 = a[0][5] * b[5][4]; t_51 = t_45 + t_46; t_52 = t_47 + t_48; t_53 = t_49 + t_50; t_54 = t_51 + t_52; t_55 = t_54 + t_53; t_56 = a[0][0] * b[0][5]; t_57 = a[0][1] * b[1][5]; t_58 = a[0][2] * b[2][5]; t_59 = a[0][3] * b[3][5]; t_60 = a[0][4] * b[4][5]; t_61 = a[0][5] * b[5][5]; t_62 = t_56 + t_57; t_63 = t_58 + t_59; t_64 = t_60 + t_61; t_65 = t_62 + t_63; t_66 = t_65 + t_64; t_67 = a[1][0] * b[0][0]; t_68 = a[1][1] * b[1][0]; t_69 = a[1][2] * b[2][0]; t_70 = a[1][3] * b[3][0]; t_71 = a[1][4] * b[4][0]; t_72 = a[1][5] * b[5][0]; t_73 = t_67 + t_68; t_74 = t_69 + t_70; t_75 = t_71 + t_72; t_76 = t_73 + t_74; t_77 = t_76 + t_75; t_78 = a[1][0] * b[0][1]; t_79 = a[1][1] * b[1][1]; t_80 = a[1][2] * b[2][1]; t_81 = a[1][3] * b[3][1]; t_82 = a[1][4] * b[4][1]; t_83 = a[1][5] * b[5][1]; t_84 = t_78 + t_79; t_85 = t_80 + t_81; t_86 = t_82 + t_83; t_87 = t_84 + t_85; t_88 = t_87 + t_86; t_89 = a[1][0] * b[0][2]; t_90 = a[1][1] * b[1][2]; t_91 = a[1][2] * b[2][2]; t_92 = a[1][3] * b[3][2]; t_93 = a[1][4] * b[4][2]; t_94 = a[1][5] * b[5][2]; t_95 = t_89 + t_90; t_96 = t_91 + t_92; t_97 = t_93 + t_94; t_98 = t_95 + t_96; t_99 = t_98 + t_97; t_100 = a[1][0] * b[0][3]; t_101 = a[1][1] * b[1][3]; t_102 = a[1][2] * b[2][3]; t_103 = a[1][3] * b[3][3]; t_104 = a[1][4] * b[4][3]; t_105 = a[1][5] * b[5][3]; t_106 = t_100 + t_101; t_107 = t_102 + t_103; t_108 = t_104 + t_105; t_109 = t_106 + t_107; t_110 = t_109 + t_108; t_111 = a[1][0] * b[0][4]; t_112 = a[1][1] * b[1][4]; t_113 = a[1][2] * b[2][4]; t_114 = a[1][3] * b[3][4]; t_115 = a[1][4] * b[4][4]; t_116 = a[1][5] * b[5][4]; t_117 = t_111 + t_112; t_118 = t_113 + t_114; t_119 = t_115 + t_116; t_120 = t_117 + t_118; t_121 = t_120 + t_119; t_122 = a[1][0] * b[0][5]; t_123 = a[1][1] * b[1][5]; t_124 = a[1][2] * b[2][5]; t_125 = a[1][3] * b[3][5]; t_126 = a[1][4] * b[4][5]; t_127 = a[1][5] * b[5][5]; t_128 = t_122 + t_123; t_129 = t_124 + t_125; t_130 = t_126 + t_127; t_131 = t_128 + t_129; t_132 = t_131 + t_130; t_133 = a[2][0] * b[0][0]; t_134 = a[2][1] * b[1][0]; t_135 = a[2][2] * b[2][0]; t_136 = a[2][3] * b[3][0]; t_137 = a[2][4] * b[4][0]; t_138 = a[2][5] * b[5][0]; t_139 = t_133 + t_134; t_140 = t_135 + t_136; t_141 = t_137 + t_138; t_142 = t_139 + t_140; t_143 = t_142 + t_141; t_144 = a[2][0] * b[0][1]; t_145 = a[2][1] * b[1][1]; t_146 = a[2][2] * b[2][1]; t_147 = a[2][3] * b[3][1]; t_148 = a[2][4] * b[4][1]; t_149 = a[2][5] * b[5][1]; t_150 = t_144 + t_145; t_151 = t_146 + t_147; t_152 = t_148 + t_149; t_153 = t_150 + t_151; t_154 = t_153 + t_152; t_155 = a[2][0] * b[0][2]; t_156 = a[2][1] * b[1][2]; t_157 = a[2][2] * b[2][2]; t_158 = a[2][3] * b[3][2]; t_159 = a[2][4] * b[4][2]; t_160 = a[2][5] * b[5][2]; t_161 = t_155 + t_156; t_162 = t_157 + t_158; t_163 = t_159 + t_160; t_164 = t_161 + t_162; t_165 = t_164 + t_163; t_166 = a[2][0] * b[0][3]; t_167 = a[2][1] * b[1][3]; t_168 = a[2][2] * b[2][3]; t_169 = a[2][3] * b[3][3]; t_170 = a[2][4] * b[4][3]; t_171 = a[2][5] * b[5][3]; t_172 = t_166 + t_167; t_173 = t_168 + t_169; t_174 = t_170 + t_171; t_175 = t_172 + t_173; t_176 = t_175 + t_174; t_177 = a[2][0] * b[0][4]; t_178 = a[2][1] * b[1][4]; t_179 = a[2][2] * b[2][4]; t_180 = a[2][3] * b[3][4]; t_181 = a[2][4] * b[4][4]; t_182 = a[2][5] * b[5][4]; t_183 = t_177 + t_178; t_184 = t_179 + t_180; t_185 = t_181 + t_182; t_186 = t_183 + t_184; t_187 = t_186 + t_185; t_188 = a[2][0] * b[0][5]; t_189 = a[2][1] * b[1][5]; t_190 = a[2][2] * b[2][5]; t_191 = a[2][3] * b[3][5]; t_192 = a[2][4] * b[4][5]; t_193 = a[2][5] * b[5][5]; t_194 = t_188 + t_189; t_195 = t_190 + t_191; t_196 = t_192 + t_193; t_197 = t_194 + t_195; t_198 = t_197 + t_196; t_199 = a[3][0] * b[0][0]; t_200 = a[3][1] * b[1][0]; t_201 = a[3][2] * b[2][0]; t_202 = a[3][3] * b[3][0]; t_203 = a[3][4] * b[4][0]; t_204 = a[3][5] * b[5][0]; t_205 = t_199 + t_200; t_206 = t_201 + t_202; t_207 = t_203 + t_204; t_208 = t_205 + t_206; t_209 = t_208 + t_207; t_210 = a[3][0] * b[0][1]; t_211 = a[3][1] * b[1][1]; t_212 = a[3][2] * b[2][1]; t_213 = a[3][3] * b[3][1]; t_214 = a[3][4] * b[4][1]; t_215 = a[3][5] * b[5][1]; t_216 = t_210 + t_211; t_217 = t_212 + t_213; t_218 = t_214 + t_215; t_219 = t_216 + t_217; t_220 = t_219 + t_218; t_221 = a[3][0] * b[0][2]; t_222 = a[3][1] * b[1][2]; t_223 = a[3][2] * b[2][2]; t_224 = a[3][3] * b[3][2]; t_225 = a[3][4] * b[4][2]; t_226 = a[3][5] * b[5][2]; t_227 = t_221 + t_222; t_228 = t_223 + t_224; t_229 = t_225 + t_226; t_230 = t_227 + t_228; t_231 = t_230 + t_229; t_232 = a[3][0] * b[0][3]; t_233 = a[3][1] * b[1][3]; t_234 = a[3][2] * b[2][3]; t_235 = a[3][3] * b[3][3]; t_236 = a[3][4] * b[4][3]; t_237 = a[3][5] * b[5][3]; t_238 = t_232 + t_233; t_239 = t_234 + t_235; t_240 = t_236 + t_237; t_241 = t_238 + t_239; t_242 = t_241 + t_240; t_243 = a[3][0] * b[0][4]; t_244 = a[3][1] * b[1][4]; t_245 = a[3][2] * b[2][4]; t_246 = a[3][3] * b[3][4]; t_247 = a[3][4] * b[4][4]; t_248 = a[3][5] * b[5][4]; t_249 = t_243 + t_244; t_250 = t_245 + t_246; t_251 = t_247 + t_248; t_252 = t_249 + t_250; t_253 = t_252 + t_251; t_254 = a[3][0] * b[0][5]; t_255 = a[3][1] * b[1][5]; t_256 = a[3][2] * b[2][5]; t_257 = a[3][3] * b[3][5]; t_258 = a[3][4] * b[4][5]; t_259 = a[3][5] * b[5][5]; t_260 = t_254 + t_255; t_261 = t_256 + t_257; t_262 = t_258 + t_259; t_263 = t_260 + t_261; t_264 = t_263 + t_262; t_265 = a[4][0] * b[0][0]; t_266 = a[4][1] * b[1][0]; t_267 = a[4][2] * b[2][0]; t_268 = a[4][3] * b[3][0]; t_269 = a[4][4] * b[4][0]; t_270 = a[4][5] * b[5][0]; t_271 = t_265 + t_266; t_272 = t_267 + t_268; t_273 = t_269 + t_270; t_274 = t_271 + t_272; t_275 = t_274 + t_273; t_276 = a[4][0] * b[0][1]; t_277 = a[4][1] * b[1][1]; t_278 = a[4][2] * b[2][1]; t_279 = a[4][3] * b[3][1]; t_280 = a[4][4] * b[4][1]; t_281 = a[4][5] * b[5][1]; t_282 = t_276 + t_277; t_283 = t_278 + t_279; t_284 = t_280 + t_281; t_285 = t_282 + t_283; t_286 = t_285 + t_284; t_287 = a[4][0] * b[0][2]; t_288 = a[4][1] * b[1][2]; t_289 = a[4][2] * b[2][2]; t_290 = a[4][3] * b[3][2]; t_291 = a[4][4] * b[4][2]; t_292 = a[4][5] * b[5][2]; t_293 = t_287 + t_288; t_294 = t_289 + t_290; t_295 = t_291 + t_292; t_296 = t_293 + t_294; t_297 = t_296 + t_295; t_298 = a[4][0] * b[0][3]; t_299 = a[4][1] * b[1][3]; t_300 = a[4][2] * b[2][3]; t_301 = a[4][3] * b[3][3]; t_302 = a[4][4] * b[4][3]; t_303 = a[4][5] * b[5][3]; t_304 = t_298 + t_299; t_305 = t_300 + t_301; t_306 = t_302 + t_303; t_307 = t_304 + t_305; t_308 = t_307 + t_306; t_309 = a[4][0] * b[0][4]; t_310 = a[4][1] * b[1][4]; t_311 = a[4][2] * b[2][4]; t_312 = a[4][3] * b[3][4]; t_313 = a[4][4] * b[4][4]; t_314 = a[4][5] * b[5][4]; t_315 = t_309 + t_310; t_316 = t_311 + t_312; t_317 = t_313 + t_314; t_318 = t_315 + t_316; t_319 = t_318 + t_317; t_320 = a[4][0] * b[0][5]; t_321 = a[4][1] * b[1][5]; t_322 = a[4][2] * b[2][5]; t_323 = a[4][3] * b[3][5]; t_324 = a[4][4] * b[4][5]; t_325 = a[4][5] * b[5][5]; t_326 = t_320 + t_321; t_327 = t_322 + t_323; t_328 = t_324 + t_325; t_329 = t_326 + t_327; t_330 = t_329 + t_328; t_331 = a[5][0] * b[0][0]; t_332 = a[5][1] * b[1][0]; t_333 = a[5][2] * b[2][0]; t_334 = a[5][3] * b[3][0]; t_335 = a[5][4] * b[4][0]; t_336 = a[5][5] * b[5][0]; t_337 = t_331 + t_332; t_338 = t_333 + t_334; t_339 = t_335 + t_336; t_340 = t_337 + t_338; t_341 = t_340 + t_339; t_342 = a[5][0] * b[0][1]; t_343 = a[5][1] * b[1][1]; t_344 = a[5][2] * b[2][1]; t_345 = a[5][3] * b[3][1]; t_346 = a[5][4] * b[4][1]; t_347 = a[5][5] * b[5][1]; t_348 = t_342 + t_343; t_349 = t_344 + t_345; t_350 = t_346 + t_347; t_351 = t_348 + t_349; t_352 = t_351 + t_350; t_353 = a[5][0] * b[0][2]; t_354 = a[5][1] * b[1][2]; t_355 = a[5][2] * b[2][2]; t_356 = a[5][3] * b[3][2]; t_357 = a[5][4] * b[4][2]; t_358 = a[5][5] * b[5][2]; t_359 = t_353 + t_354; t_360 = t_355 + t_356; t_361 = t_357 + t_358; t_362 = t_359 + t_360; t_363 = t_362 + t_361; t_364 = a[5][0] * b[0][3]; t_365 = a[5][1] * b[1][3]; t_366 = a[5][2] * b[2][3]; t_367 = a[5][3] * b[3][3]; t_368 = a[5][4] * b[4][3]; t_369 = a[5][5] * b[5][3]; t_370 = t_364 + t_365; t_371 = t_366 + t_367; t_372 = t_368 + t_369; t_373 = t_370 + t_371; t_374 = t_373 + t_372; t_375 = a[5][0] * b[0][4]; t_376 = a[5][1] * b[1][4]; t_377 = a[5][2] * b[2][4]; t_378 = a[5][3] * b[3][4]; t_379 = a[5][4] * b[4][4]; t_380 = a[5][5] * b[5][4]; t_381 = t_375 + t_376; t_382 = t_377 + t_378; t_383 = t_379 + t_380; t_384 = t_381 + t_382; t_385 = t_384 + t_383; t_386 = a[5][0] * b[0][5]; t_387 = a[5][1] * b[1][5]; t_388 = a[5][2] * b[2][5]; t_389 = a[5][3] * b[3][5]; t_390 = a[5][4] * b[4][5]; t_391 = a[5][5] * b[5][5]; t_392 = t_386 + t_387; t_393 = t_388 + t_389; t_394 = t_390 + t_391; t_395 = t_392 + t_393; t_396 = t_395 + t_394; c[0][0] = t_11; c[0][1] = t_22; c[0][2] = t_33; c[0][3] = t_44; c[0][4] = t_55; c[0][5] = t_66; c[1][0] = t_77; c[1][1] = t_88; c[1][2] = t_99; c[1][3] = t_110; c[1][4] = t_121; c[1][5] = t_132; c[2][0] = t_143; c[2][1] = t_154; c[2][2] = t_165; c[2][3] = t_176; c[2][4] = t_187; c[2][5] = t_198; c[3][0] = t_209; c[3][1] = t_220; c[3][2] = t_231; c[3][3] = t_242; c[3][4] = t_253; c[3][5] = t_264; c[4][0] = t_275; c[4][1] = t_286; c[4][2] = t_297; c[4][3] = t_308; c[4][4] = t_319; c[4][5] = t_330; c[5][0] = t_341; c[5][1] = t_352; c[5][2] = t_363; c[5][3] = t_374; c[5][4] = t_385; c[5][5] = t_396; }