// ************************************************************************** //
//                                                                            //
//    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_1_0,a_1_1;
nat b_0_0,b_0_1,b_1_0,b_1_1;
nat c_0_0,c_0_1,c_1_0,c_1_1;
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_1 = a_0_0;
    t_2 = a_0_1;
    t_3 = a_1_0;
    t_4 = a_1_1;
    t_5 = b_0_0;
    t_6 = b_0_1;
    t_7 = b_1_0;
    t_8 = b_1_1;
    t_9 = t_1 * t_5;
    t_10 = t_2 * t_7;
    t_11 = t_9 + t_10;
    t_12 = t_1 * t_6;
    t_13 = t_2 * t_8;
    t_14 = t_12 + t_13;
    t_15 = t_3 * t_5;
    t_16 = t_4 * t_7;
    t_17 = t_15 + t_16;
    t_18 = t_3 * t_6;
    t_19 = t_4 * t_8;
    t_20 = t_18 + t_19;
    c_0_0 = t_11;
    c_0_1 = t_14;
    c_1_0 = t_17;
    c_1_1 = t_20;
}