diff --git a/matrix.c b/matrix.c index 19f4b29a93f91a41d6386e5845deef495434d40e..781d4fbca760cee2453849234fb69e9f0566f283 100644 --- a/matrix.c +++ b/matrix.c @@ -12,8 +12,14 @@ error_code matrix_print(matrix mat) for (int32_t j = 0; j < mat.n; j++) { int32_t elem_mat; - matrix_get(&elem_mat, mat, i, j); - printf(" %d ", elem_mat); + if (matrix_get(&elem_mat, mat, i, j) == ok) + { + printf(" %d ", elem_mat); + } + else + { + return err; + } } printf("\n"); } @@ -55,7 +61,10 @@ error_code matrix_init(matrix *mat, int32_t m, int32_t n, int32_t val) { for (int32_t j = 0; j < mat->n; j++) { - matrix_set(*mat, i, j, val); + if (matrix_set(*mat, i, j, val) != ok) + { + return err; + } } } return ok; @@ -92,8 +101,14 @@ error_code matrix_init_from_array(matrix *mat, int32_t m, int32_t n, int32_t dat { for (int32_t j = 0; j < (s / mat->m); j++) { - matrix_set(*mat, i, j, data[dataIndex]); - dataIndex++; + if (matrix_set(*mat, i, j, data[dataIndex]) == ok) + { + dataIndex++; + } + else + { + return err; + } } } return ok; @@ -113,8 +128,17 @@ error_code matrix_clone(matrix *cloned, matrix mat) for (int32_t j = 0; j < mat.m; j++) { int32_t elem_mat; - matrix_get(&elem_mat, mat, i, j); - matrix_set(*cloned, i, j, elem_mat); + if (matrix_get(&elem_mat, mat, i, j) == ok) + { + if (matrix_set(*cloned, i, j, elem_mat) != ok) + { + return err; + } + } + else + { + return err; + } } } if (matrix_is_equal(*cloned, mat) == ok) @@ -143,9 +167,15 @@ error_code matrix_transpose(matrix *transposed, matrix mat) { for (int32_t j = 0; j < mat.m; j++) { - matrix_get(&elem, mat, j, i); - data_tmp[data_tmp_index] = elem; - data_tmp_index++; + if (matrix_get(&elem, mat, j, i) == ok) + { + data_tmp[data_tmp_index] = elem; + data_tmp_index++; + } + else + { + return err; + } } } @@ -169,11 +199,16 @@ bool matrix_is_equal(matrix mat1, matrix mat2) for (int32_t j = 0; j < mat1.n; j++) { int32_t elem_mat1, elem_mat2; - matrix_get(&elem_mat1, mat1, i, j); - matrix_get(&elem_mat2, mat2, i, j); - if (elem_mat1 == elem_mat2) + if (matrix_get(&elem_mat1, mat1, i, j) == ok && matrix_get(&elem_mat2, mat2, i, j) == ok) { - continue; + if (elem_mat1 == elem_mat2) + { + continue; + } + else + { + return err; + } } else {