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