void deallocate_mem(int ***arr, int rows); void printMatrix(int** a, int rows, int cols); void printVector(int* a, int length); int** multMatrix(int **A, int **B, int ro1, int co1, int ro2, int co2); void multMatrixMod(int **A, int **B, int **C, int ro1, int co1, int ro2, int co2, int mod); int** outerMatrix(int **A, int **B, int ro1, int co1, int ro2, int co2); void outerMatrixMod(int **A, int **B, int **C, int ro1, int co1, int ro2, int co2, int mod); void outerVectorMod(int *A, int *B, int *C, int ro1, int ro2, int mod); void transp(int **a, int **b, int rows, int cols); int dotProductMod(int *a, int *b, int length, int mod); int trace(int **a, int rows, int cols); void scalarmultMatrix(int scalar, int **a, int **b, int rows, int cols); int** addMatrix(int **A, int **B, int rows, int cols); void addMatrixMod(int **A, int **B, int **C, int rows, int cols, int mod); void appendBlockMatrix(int **A, int **B, int **C, int ro1, int co1, int ro2, int co2); void addVectorMod(int *A, int *B, int *C, int length, int mod); void addSubMatrix(int **A, int **B, int ro1, int co1, int rooff1, int cooff1, int rooff2, int cooff2); void appendVector(int *A, int *B, int *C, int ro1, int ro2);