//generated testdata from matGen.py
#define MATSIZE 20

int32_t matA[MATSIZE][MATSIZE] = {
	{ -49, 39, 15, 2, 52, 71, 2, -48, -56, -56, 10, -32, 78, 85, 87, 94, 30, -61, 97, -21},
	{ 48, -99, -49, -92, 19, 1, 88, 24, -12, -20, -8, -16, 74, 94, 53, 53, 45, 96, 72, -98},
	{ 50, 33, -16, -49, 63, -48, -81, 96, 35, 18, 79, 27, 15, -38, 12, -95, -1, 74, -28, -59},
	{ -79, 88, -100, 78, -88, -91, -85, 19, 8, 66, -54, -84, -14, -31, 11, 14, -51, -96, 41, 3},
	{ -63, 69, 10, -92, 10, -70, -36, 17, -91, -51, -10, 60, 23, -4, 58, 47, -13, 81, 66, 87},
	{ -53, 14, 76, 0, -98, 7, 90, -64, -32, 1, 18, -57, -44, -21, -9, -42, 81, -41, 28, -65},
	{ 74, 49, -95, 42, -83, 33, -38, 88, 50, 13, -48, -92, 97, 93, 50, 86, 27, 40, 37, 23},
	{ -91, -3, 88, 5, -73, -43, -12, 83, 7, -1, -9, 4, -28, -45, 46, 32, 34, 67, 19, -89},
	{ 55, -47, -93, -11, 44, 43, -12, -47, 87, -28, -13, -78, -27, 74, 84, -15, -63, 8, 33, -40},
	{ 87, 36, -4, -20, 1, 5, 9, -53, 44, 63, -20, 33, -37, -63, -22, 51, 90, 24, -30, -63},
	{ 60, 3, 56, 56, -6, 29, 65, 22, -31, -5, 14, 33, -53, 59, -13, 18, -40, 97, -23, 0},
	{ -77, -43, -12, -78, -14, 54, 29, -88, 32, -39, 44, 85, -60, -55, 98, -53, 6, 21, 28, 41},
	{ 85, -84, 45, 45, 10, -35, 50, 25, -51, -27, 99, 93, -47, 40, 17, 36, 85, -2, -11, 84},
	{ 80, -43, -51, 47, 92, -39, 85, -30, -56, -62, 25, 68, -74, -18, 27, 49, -16, 86, -2, -18},
	{ 36, -13, -16, -19, -29, 7, 90, 87, 52, -19, 34, -48, 54, -70, 34, -17, -83, 4, 87, 79},
	{ -80, -83, 69, -24, 80, 94, -37, -98, -44, -90, -1, 11, -69, 32, -9, -5, -86, -33, 50, 59},
	{ -51, 42, 89, 15, 87, -2, -85, -56, 77, -21, -33, -89, -29, 56, 36, -17, -42, -69, -25, -23},
	{ 33, 53, 57, -41, 57, -9, -46, 35, 2, 73, 14, -64, 8, -95, -1, -72, -15, -93, -9, 69},
	{ 36, -60, 16, -43, -53, -79, -66, -88, 6, 100, 91, -61, 48, -60, 30, 44, 23, -16, -41, -9},
	{ 35, -78, -70, -3, -24, 53, 45, -66, 19, 68, 18, -87, -64, 81, 1, -20, -59, -81, -19, -94},
};

int32_t matB[MATSIZE][MATSIZE] = {
	{ 34, 38, -64, 57, -33, 57, 82, -78, -35, -32, -81, 69, 65, -49, 23, -16, 78, 5, 32, -36},
	{ -42, 61, 49, -37, 44, -72, 10, 66, 46, 46, 23, 58, 57, 12, -77, -29, 1, 18, 54, -68},
	{ -84, 78, -47, -46, 27, 59, -1, -10, 58, -6, -18, 22, 25, -14, -91, -19, -81, 90, 30, -12},
	{ -36, 40, -56, 1, -97, 38, 91, 96, -28, -63, -67, 48, 47, 77, 4, -38, 62, -7, 40, 19},
	{ -48, 18, -6, 83, 30, -5, 57, 1, 44, -17, -77, -59, -54, -54, 46, -11, 84, 26, 34, 88},
	{ -22, 14, 34, -47, -72, 74, -60, 13, -79, -9, -34, -57, 100, -37, 93, -92, 59, -24, 4, 31},
	{ -10, -90, 62, 43, 41, -46, -79, 12, 25, -83, -15, -9, -26, -46, -90, 9, -26, -87, -89, 74},
	{ 78, 5, -79, -16, -24, -91, 51, -95, 18, -40, 96, -50, 75, 94, 88, -62, -3, -75, -44, -63},
	{ 54, -29, 16, 81, 87, -9, -42, -25, -91, 62, 10, 31, 34, -21, 94, -88, 71, 2, 22, 40},
	{ -74, 19, 49, -67, -11, -44, -51, -26, -95, -32, -70, -2, -15, 14, 79, -95, 82, 58, -27, 89},
	{ -9, -14, -20, -2, 91, 67, 23, -91, 59, 46, -41, -100, -99, 99, 73, 40, -5, -83, 38, 67},
	{ -30, 38, 98, 62, 11, 18, 2, -59, 62, 60, -99, -4, 23, 98, -98, -79, 48, 19, 32, -80},
	{ 63, 39, 14, 51, -82, -28, -49, -69, 33, -5, 39, -23, 50, 19, -82, 3, 4, -47, 37, 17},
	{ 100, 70, -85, 62, 16, -50, -29, -2, -1, 59, -68, 41, -54, 94, 22, 18, -78, -66, -38, -52},
	{ -60, -96, 79, 86, 71, 7, -48, 57, 8, -17, 15, 69, 10, 15, 53, 41, -10, 37, -70, -4},
	{ -3, -53, -34, 46, -39, 100, -39, -22, -19, 53, 85, -67, 46, 99, 9, 50, -53, -27, 46, -13},
	{ 40, 45, -57, 96, -34, -69, 22, -80, -43, 41, -48, 87, -57, 86, 46, -44, 70, 32, -11, -78},
	{ -88, -14, -18, -95, -15, 34, 60, -54, 99, 98, 44, -21, -6, -56, -26, 6, 74, -47, -56, 2},
	{ 21, 49, 39, 93, 38, -99, -53, 90, -84, 50, 99, 43, 97, -20, 25, -21, 31, -57, 83, 47},
	{ -81, -70, 16, 79, -66, -59, 2, -60, -97, 14, 57, 96, -3, 100, 5, 23, -62, -54, -71, 32},
};

/*
for easy checking, as nested list (usable in many tools that can do matrix multiplication)


[[-49, 39, 15, 2, 52, 71, 2, -48, -56, -56, 10, -32, 78, 85, 87, 94, 30, -61, 97, -21], [48, -99, -49, -92, 19, 1, 88, 24, -12, -20, -8, -16, 74, 94, 53, 53, 45, 96, 72, -98], [50, 33, -16, -49, 63, -48, -81, 96, 35, 18, 79, 27, 15, -38, 12, -95, -1, 74, -28, -59], [-79, 88, -100, 78, -88, -91, -85, 19, 8, 66, -54, -84, -14, -31, 11, 14, -51, -96, 41, 3], [-63, 69, 10, -92, 10, -70, -36, 17, -91, -51, -10, 60, 23, -4, 58, 47, -13, 81, 66, 87], [-53, 14, 76, 0, -98, 7, 90, -64, -32, 1, 18, -57, -44, -21, -9, -42, 81, -41, 28, -65], [74, 49, -95, 42, -83, 33, -38, 88, 50, 13, -48, -92, 97, 93, 50, 86, 27, 40, 37, 23], [-91, -3, 88, 5, -73, -43, -12, 83, 7, -1, -9, 4, -28, -45, 46, 32, 34, 67, 19, -89], [55, -47, -93, -11, 44, 43, -12, -47, 87, -28, -13, -78, -27, 74, 84, -15, -63, 8, 33, -40], [87, 36, -4, -20, 1, 5, 9, -53, 44, 63, -20, 33, -37, -63, -22, 51, 90, 24, -30, -63], [60, 3, 56, 56, -6, 29, 65, 22, -31, -5, 14, 33, -53, 59, -13, 18, -40, 97, -23, 0], [-77, -43, -12, -78, -14, 54, 29, -88, 32, -39, 44, 85, -60, -55, 98, -53, 6, 21, 28, 41], [85, -84, 45, 45, 10, -35, 50, 25, -51, -27, 99, 93, -47, 40, 17, 36, 85, -2, -11, 84], [80, -43, -51, 47, 92, -39, 85, -30, -56, -62, 25, 68, -74, -18, 27, 49, -16, 86, -2, -18], [36, -13, -16, -19, -29, 7, 90, 87, 52, -19, 34, -48, 54, -70, 34, -17, -83, 4, 87, 79], [-80, -83, 69, -24, 80, 94, -37, -98, -44, -90, -1, 11, -69, 32, -9, -5, -86, -33, 50, 59], [-51, 42, 89, 15, 87, -2, -85, -56, 77, -21, -33, -89, -29, 56, 36, -17, -42, -69, -25, -23], [33, 53, 57, -41, 57, -9, -46, 35, 2, 73, 14, -64, 8, -95, -1, -72, -15, -93, -9, 69], [36, -60, 16, -43, -53, -79, -66, -88, 6, 100, 91, -61, 48, -60, 30, 44, 23, -16, -41, -9], [35, -78, -70, -3, -24, 53, 45, -66, 19, 68, 18, -87, -64, 81, 1, -20, -59, -81, -19, -94]]

[[34, 38, -64, 57, -33, 57, 82, -78, -35, -32, -81, 69, 65, -49, 23, -16, 78, 5, 32, -36], [-42, 61, 49, -37, 44, -72, 10, 66, 46, 46, 23, 58, 57, 12, -77, -29, 1, 18, 54, -68], [-84, 78, -47, -46, 27, 59, -1, -10, 58, -6, -18, 22, 25, -14, -91, -19, -81, 90, 30, -12], [-36, 40, -56, 1, -97, 38, 91, 96, -28, -63, -67, 48, 47, 77, 4, -38, 62, -7, 40, 19], [-48, 18, -6, 83, 30, -5, 57, 1, 44, -17, -77, -59, -54, -54, 46, -11, 84, 26, 34, 88], [-22, 14, 34, -47, -72, 74, -60, 13, -79, -9, -34, -57, 100, -37, 93, -92, 59, -24, 4, 31], [-10, -90, 62, 43, 41, -46, -79, 12, 25, -83, -15, -9, -26, -46, -90, 9, -26, -87, -89, 74], [78, 5, -79, -16, -24, -91, 51, -95, 18, -40, 96, -50, 75, 94, 88, -62, -3, -75, -44, -63], [54, -29, 16, 81, 87, -9, -42, -25, -91, 62, 10, 31, 34, -21, 94, -88, 71, 2, 22, 40], [-74, 19, 49, -67, -11, -44, -51, -26, -95, -32, -70, -2, -15, 14, 79, -95, 82, 58, -27, 89], [-9, -14, -20, -2, 91, 67, 23, -91, 59, 46, -41, -100, -99, 99, 73, 40, -5, -83, 38, 67], [-30, 38, 98, 62, 11, 18, 2, -59, 62, 60, -99, -4, 23, 98, -98, -79, 48, 19, 32, -80], [63, 39, 14, 51, -82, -28, -49, -69, 33, -5, 39, -23, 50, 19, -82, 3, 4, -47, 37, 17], [100, 70, -85, 62, 16, -50, -29, -2, -1, 59, -68, 41, -54, 94, 22, 18, -78, -66, -38, -52], [-60, -96, 79, 86, 71, 7, -48, 57, 8, -17, 15, 69, 10, 15, 53, 41, -10, 37, -70, -4], [-3, -53, -34, 46, -39, 100, -39, -22, -19, 53, 85, -67, 46, 99, 9, 50, -53, -27, 46, -13], [40, 45, -57, 96, -34, -69, 22, -80, -43, 41, -48, 87, -57, 86, 46, -44, 70, 32, -11, -78], [-88, -14, -18, -95, -15, 34, 60, -54, 99, 98, 44, -21, -6, -56, -26, 6, 74, -47, -56, 2], [21, 49, 39, 93, 38, -99, -53, 90, -84, 50, 99, 43, 97, -20, 25, -21, 31, -57, 83, 47], [-81, -70, 16, 79, -66, -59, 2, -60, -97, 14, 57, 96, -3, 100, 5, 23, -62, -54, -71, 32]]
*/
