// ************************************************************************** // // // // 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 MatrixMultCannon { b[0][0] = b[1][0]; a[0][0] = a[0][1]; c[0][0] = c[0][0] + a[0][0] * b[0][0]; b[0][0] = b[1][0]; a[0][0] = a[0][1]; c[0][0] = c[0][0] + a[0][0] * b[0][0]; b[0][0] = b[1][0]; a[0][0] = a[0][1]; c[0][0] = c[0][0] + a[0][0] * b[0][0]; b[0][0] = b[1][0]; a[0][0] = a[0][1]; c[0][0] = c[0][0] + a[0][0] * b[0][0]; b[0][1] = b[1][1]; a[0][1] = a[0][2]; c[0][1] = c[0][1] + a[0][1] * b[0][1]; b[0][1] = b[1][1]; a[0][1] = a[0][2]; c[0][1] = c[0][1] + a[0][1] * b[0][1]; b[0][1] = b[1][1]; a[0][1] = a[0][2]; c[0][1] = c[0][1] + a[0][1] * b[0][1]; b[0][1] = b[1][1]; a[0][1] = a[0][2]; c[0][1] = c[0][1] + a[0][1] * b[0][1]; b[0][2] = b[1][2]; a[0][2] = a[0][3]; c[0][2] = c[0][2] + a[0][2] * b[0][2]; b[0][2] = b[1][2]; a[0][2] = a[0][3]; c[0][2] = c[0][2] + a[0][2] * b[0][2]; b[0][2] = b[1][2]; a[0][2] = a[0][3]; c[0][2] = c[0][2] + a[0][2] * b[0][2]; b[0][2] = b[1][2]; a[0][2] = a[0][3]; c[0][2] = c[0][2] + a[0][2] * b[0][2]; b[0][3] = b[1][3]; a[0][3] = a[0][0]; c[0][3] = c[0][3] + a[0][3] * b[0][3]; b[0][3] = b[1][3]; a[0][3] = a[0][0]; c[0][3] = c[0][3] + a[0][3] * b[0][3]; b[0][3] = b[1][3]; a[0][3] = a[0][0]; c[0][3] = c[0][3] + a[0][3] * b[0][3]; b[0][3] = b[1][3]; a[0][3] = a[0][0]; c[0][3] = c[0][3] + a[0][3] * b[0][3]; b[1][0] = b[2][0]; a[1][0] = a[1][1]; c[1][0] = c[1][0] + a[1][0] * b[1][0]; b[1][0] = b[2][0]; a[1][0] = a[1][1]; c[1][0] = c[1][0] + a[1][0] * b[1][0]; b[1][0] = b[2][0]; a[1][0] = a[1][1]; c[1][0] = c[1][0] + a[1][0] * b[1][0]; b[1][0] = b[2][0]; a[1][0] = a[1][1]; c[1][0] = c[1][0] + a[1][0] * b[1][0]; b[1][1] = b[2][1]; a[1][1] = a[1][2]; c[1][1] = c[1][1] + a[1][1] * b[1][1]; b[1][1] = b[2][1]; a[1][1] = a[1][2]; c[1][1] = c[1][1] + a[1][1] * b[1][1]; b[1][1] = b[2][1]; a[1][1] = a[1][2]; c[1][1] = c[1][1] + a[1][1] * b[1][1]; b[1][1] = b[2][1]; a[1][1] = a[1][2]; c[1][1] = c[1][1] + a[1][1] * b[1][1]; b[1][2] = b[2][2]; a[1][2] = a[1][3]; c[1][2] = c[1][2] + a[1][2] * b[1][2]; b[1][2] = b[2][2]; a[1][2] = a[1][3]; c[1][2] = c[1][2] + a[1][2] * b[1][2]; b[1][2] = b[2][2]; a[1][2] = a[1][3]; c[1][2] = c[1][2] + a[1][2] * b[1][2]; b[1][2] = b[2][2]; a[1][2] = a[1][3]; c[1][2] = c[1][2] + a[1][2] * b[1][2]; b[1][3] = b[2][3]; a[1][3] = a[1][0]; c[1][3] = c[1][3] + a[1][3] * b[1][3]; b[1][3] = b[2][3]; a[1][3] = a[1][0]; c[1][3] = c[1][3] + a[1][3] * b[1][3]; b[1][3] = b[2][3]; a[1][3] = a[1][0]; c[1][3] = c[1][3] + a[1][3] * b[1][3]; b[1][3] = b[2][3]; a[1][3] = a[1][0]; c[1][3] = c[1][3] + a[1][3] * b[1][3]; b[2][0] = b[3][0]; a[2][0] = a[2][1]; c[2][0] = c[2][0] + a[2][0] * b[2][0]; b[2][0] = b[3][0]; a[2][0] = a[2][1]; c[2][0] = c[2][0] + a[2][0] * b[2][0]; b[2][0] = b[3][0]; a[2][0] = a[2][1]; c[2][0] = c[2][0] + a[2][0] * b[2][0]; b[2][0] = b[3][0]; a[2][0] = a[2][1]; c[2][0] = c[2][0] + a[2][0] * b[2][0]; b[2][1] = b[3][1]; a[2][1] = a[2][2]; c[2][1] = c[2][1] + a[2][1] * b[2][1]; b[2][1] = b[3][1]; a[2][1] = a[2][2]; c[2][1] = c[2][1] + a[2][1] * b[2][1]; b[2][1] = b[3][1]; a[2][1] = a[2][2]; c[2][1] = c[2][1] + a[2][1] * b[2][1]; b[2][1] = b[3][1]; a[2][1] = a[2][2]; c[2][1] = c[2][1] + a[2][1] * b[2][1]; b[2][2] = b[3][2]; a[2][2] = a[2][3]; c[2][2] = c[2][2] + a[2][2] * b[2][2]; b[2][2] = b[3][2]; a[2][2] = a[2][3]; c[2][2] = c[2][2] + a[2][2] * b[2][2]; b[2][2] = b[3][2]; a[2][2] = a[2][3]; c[2][2] = c[2][2] + a[2][2] * b[2][2]; b[2][2] = b[3][2]; a[2][2] = a[2][3]; c[2][2] = c[2][2] + a[2][2] * b[2][2]; b[2][3] = b[3][3]; a[2][3] = a[2][0]; c[2][3] = c[2][3] + a[2][3] * b[2][3]; b[2][3] = b[3][3]; a[2][3] = a[2][0]; c[2][3] = c[2][3] + a[2][3] * b[2][3]; b[2][3] = b[3][3]; a[2][3] = a[2][0]; c[2][3] = c[2][3] + a[2][3] * b[2][3]; b[2][3] = b[3][3]; a[2][3] = a[2][0]; c[2][3] = c[2][3] + a[2][3] * b[2][3]; b[3][0] = b[0][0]; a[3][0] = a[3][1]; c[3][0] = c[3][0] + a[3][0] * b[3][0]; b[3][0] = b[0][0]; a[3][0] = a[3][1]; c[3][0] = c[3][0] + a[3][0] * b[3][0]; b[3][0] = b[0][0]; a[3][0] = a[3][1]; c[3][0] = c[3][0] + a[3][0] * b[3][0]; b[3][0] = b[0][0]; a[3][0] = a[3][1]; c[3][0] = c[3][0] + a[3][0] * b[3][0]; b[3][1] = b[0][1]; a[3][1] = a[3][2]; c[3][1] = c[3][1] + a[3][1] * b[3][1]; b[3][1] = b[0][1]; a[3][1] = a[3][2]; c[3][1] = c[3][1] + a[3][1] * b[3][1]; b[3][1] = b[0][1]; a[3][1] = a[3][2]; c[3][1] = c[3][1] + a[3][1] * b[3][1]; b[3][1] = b[0][1]; a[3][1] = a[3][2]; c[3][1] = c[3][1] + a[3][1] * b[3][1]; b[3][2] = b[0][2]; a[3][2] = a[3][3]; c[3][2] = c[3][2] + a[3][2] * b[3][2]; b[3][2] = b[0][2]; a[3][2] = a[3][3]; c[3][2] = c[3][2] + a[3][2] * b[3][2]; b[3][2] = b[0][2]; a[3][2] = a[3][3]; c[3][2] = c[3][2] + a[3][2] * b[3][2]; b[3][2] = b[0][2]; a[3][2] = a[3][3]; c[3][2] = c[3][2] + a[3][2] * b[3][2]; b[3][3] = b[0][3]; a[3][3] = a[3][0]; c[3][3] = c[3][3] + a[3][3] * b[3][3]; b[3][3] = b[0][3]; a[3][3] = a[3][0]; c[3][3] = c[3][3] + a[3][3] * b[3][3]; b[3][3] = b[0][3]; a[3][3] = a[3][0]; c[3][3] = c[3][3] + a[3][3] * b[3][3]; b[3][3] = b[0][3]; a[3][3] = a[3][0]; c[3][3] = c[3][3] + a[3][3] * b[3][3]; c[0][0] = c[0][0]; c[0][1] = c[0][1]; c[0][2] = c[0][2]; c[0][3] = c[0][3]; c[1][0] = c[1][0]; c[1][1] = c[1][1]; c[1][2] = c[1][2]; c[1][3] = c[1][3]; c[2][0] = c[2][0]; c[2][1] = c[2][1]; c[2][2] = c[2][2]; c[2][3] = c[2][3]; c[3][0] = c[3][0]; c[3][1] = c[3][1]; c[3][2] = c[3][2]; c[3][3] = c[3][3]; }