// ************************************************************************** //
//                                                                            //
//    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 MatrixMultCannon {
    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_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_17 = t_21;
    t_1 = t_2;
    t_33 = t_33 + t_1 * t_17;
    t_17 = t_21;
    t_1 = t_2;
    t_33 = t_33 + t_1 * t_17;
    t_17 = t_21;
    t_1 = t_2;
    t_33 = t_33 + t_1 * t_17;
    t_17 = t_21;
    t_1 = t_2;
    t_33 = t_33 + t_1 * t_17;
    t_18 = t_22;
    t_2 = t_3;
    t_34 = t_34 + t_2 * t_18;
    t_18 = t_22;
    t_2 = t_3;
    t_34 = t_34 + t_2 * t_18;
    t_18 = t_22;
    t_2 = t_3;
    t_34 = t_34 + t_2 * t_18;
    t_18 = t_22;
    t_2 = t_3;
    t_34 = t_34 + t_2 * t_18;
    t_19 = t_23;
    t_3 = t_4;
    t_35 = t_35 + t_3 * t_19;
    t_19 = t_23;
    t_3 = t_4;
    t_35 = t_35 + t_3 * t_19;
    t_19 = t_23;
    t_3 = t_4;
    t_35 = t_35 + t_3 * t_19;
    t_19 = t_23;
    t_3 = t_4;
    t_35 = t_35 + t_3 * t_19;
    t_20 = t_24;
    t_4 = t_1;
    t_36 = t_36 + t_4 * t_20;
    t_20 = t_24;
    t_4 = t_1;
    t_36 = t_36 + t_4 * t_20;
    t_20 = t_24;
    t_4 = t_1;
    t_36 = t_36 + t_4 * t_20;
    t_20 = t_24;
    t_4 = t_1;
    t_36 = t_36 + t_4 * t_20;
    t_21 = t_25;
    t_5 = t_6;
    t_37 = t_37 + t_5 * t_21;
    t_21 = t_25;
    t_5 = t_6;
    t_37 = t_37 + t_5 * t_21;
    t_21 = t_25;
    t_5 = t_6;
    t_37 = t_37 + t_5 * t_21;
    t_21 = t_25;
    t_5 = t_6;
    t_37 = t_37 + t_5 * t_21;
    t_22 = t_26;
    t_6 = t_7;
    t_38 = t_38 + t_6 * t_22;
    t_22 = t_26;
    t_6 = t_7;
    t_38 = t_38 + t_6 * t_22;
    t_22 = t_26;
    t_6 = t_7;
    t_38 = t_38 + t_6 * t_22;
    t_22 = t_26;
    t_6 = t_7;
    t_38 = t_38 + t_6 * t_22;
    t_23 = t_27;
    t_7 = t_8;
    t_39 = t_39 + t_7 * t_23;
    t_23 = t_27;
    t_7 = t_8;
    t_39 = t_39 + t_7 * t_23;
    t_23 = t_27;
    t_7 = t_8;
    t_39 = t_39 + t_7 * t_23;
    t_23 = t_27;
    t_7 = t_8;
    t_39 = t_39 + t_7 * t_23;
    t_24 = t_28;
    t_8 = t_5;
    t_40 = t_40 + t_8 * t_24;
    t_24 = t_28;
    t_8 = t_5;
    t_40 = t_40 + t_8 * t_24;
    t_24 = t_28;
    t_8 = t_5;
    t_40 = t_40 + t_8 * t_24;
    t_24 = t_28;
    t_8 = t_5;
    t_40 = t_40 + t_8 * t_24;
    t_25 = t_29;
    t_9 = t_10;
    t_41 = t_41 + t_9 * t_25;
    t_25 = t_29;
    t_9 = t_10;
    t_41 = t_41 + t_9 * t_25;
    t_25 = t_29;
    t_9 = t_10;
    t_41 = t_41 + t_9 * t_25;
    t_25 = t_29;
    t_9 = t_10;
    t_41 = t_41 + t_9 * t_25;
    t_26 = t_30;
    t_10 = t_11;
    t_42 = t_42 + t_10 * t_26;
    t_26 = t_30;
    t_10 = t_11;
    t_42 = t_42 + t_10 * t_26;
    t_26 = t_30;
    t_10 = t_11;
    t_42 = t_42 + t_10 * t_26;
    t_26 = t_30;
    t_10 = t_11;
    t_42 = t_42 + t_10 * t_26;
    t_27 = t_31;
    t_11 = t_12;
    t_43 = t_43 + t_11 * t_27;
    t_27 = t_31;
    t_11 = t_12;
    t_43 = t_43 + t_11 * t_27;
    t_27 = t_31;
    t_11 = t_12;
    t_43 = t_43 + t_11 * t_27;
    t_27 = t_31;
    t_11 = t_12;
    t_43 = t_43 + t_11 * t_27;
    t_28 = t_32;
    t_12 = t_9;
    t_44 = t_44 + t_12 * t_28;
    t_28 = t_32;
    t_12 = t_9;
    t_44 = t_44 + t_12 * t_28;
    t_28 = t_32;
    t_12 = t_9;
    t_44 = t_44 + t_12 * t_28;
    t_28 = t_32;
    t_12 = t_9;
    t_44 = t_44 + t_12 * t_28;
    t_29 = t_17;
    t_13 = t_14;
    t_45 = t_45 + t_13 * t_29;
    t_29 = t_17;
    t_13 = t_14;
    t_45 = t_45 + t_13 * t_29;
    t_29 = t_17;
    t_13 = t_14;
    t_45 = t_45 + t_13 * t_29;
    t_29 = t_17;
    t_13 = t_14;
    t_45 = t_45 + t_13 * t_29;
    t_30 = t_18;
    t_14 = t_15;
    t_46 = t_46 + t_14 * t_30;
    t_30 = t_18;
    t_14 = t_15;
    t_46 = t_46 + t_14 * t_30;
    t_30 = t_18;
    t_14 = t_15;
    t_46 = t_46 + t_14 * t_30;
    t_30 = t_18;
    t_14 = t_15;
    t_46 = t_46 + t_14 * t_30;
    t_31 = t_19;
    t_15 = t_16;
    t_47 = t_47 + t_15 * t_31;
    t_31 = t_19;
    t_15 = t_16;
    t_47 = t_47 + t_15 * t_31;
    t_31 = t_19;
    t_15 = t_16;
    t_47 = t_47 + t_15 * t_31;
    t_31 = t_19;
    t_15 = t_16;
    t_47 = t_47 + t_15 * t_31;
    t_32 = t_20;
    t_16 = t_13;
    t_48 = t_48 + t_16 * t_32;
    t_32 = t_20;
    t_16 = t_13;
    t_48 = t_48 + t_16 * t_32;
    t_32 = t_20;
    t_16 = t_13;
    t_48 = t_48 + t_16 * t_32;
    t_32 = t_20;
    t_16 = t_13;
    t_48 = t_48 + t_16 * t_32;
    c_0_0 = t_33;
    c_0_1 = t_34;
    c_0_2 = t_35;
    c_0_3 = t_36;
    c_1_0 = t_37;
    c_1_1 = t_38;
    c_1_2 = t_39;
    c_1_3 = t_40;
    c_2_0 = t_41;
    c_2_1 = t_42;
    c_2_2 = t_43;
    c_2_3 = t_44;
    c_3_0 = t_45;
    c_3_1 = t_46;
    c_3_2 = t_47;
    c_3_3 = t_48;
}