GCC Code Coverage Report


Directory: ./
File: s21_mult_matrix.c
Date: 2025-08-15 23:01:21
Exec Total Coverage
Lines: 18 18 100.0%
Branches: 14 14 100.0%

Line Branch Exec Source
1 #include "s21_matrix.h"
2
3 void s21_process_mult_matrix(matrix_t *A, matrix_t *B, matrix_t *result);
4 void s21_calc_cell(matrix_t *A, matrix_t *B, matrix_t *result, int i, int j);
5
6 10 int s21_mult_matrix(matrix_t *A, matrix_t *B, matrix_t *result) {
7
6/6
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✓ Branch 4 taken 6 times.
✓ Branch 5 taken 2 times.
✓ Branch 6 taken 2 times.
✓ Branch 7 taken 4 times.
10 if (s21_check_matrix_is_invalid(A) || s21_check_matrix_is_invalid(B) ||
8 result == NULL) {
9 6 return ERROR;
10 }
11
12 4 int code = OK;
13
2/2
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 2 times.
4 if (A->columns == B->rows) {
14 2 s21_create_matrix(A->rows, B->columns, result);
15
16 2 s21_process_mult_matrix(A, B, result);
17 } else {
18 2 code = CALC_ERROR;
19 }
20
21 4 return code;
22 }
23
24 2 void s21_process_mult_matrix(matrix_t *A, matrix_t *B, matrix_t *result) {
25
2/2
✓ Branch 0 taken 6 times.
✓ Branch 1 taken 2 times.
8 for (int i = 0; i < result->rows; i++) {
26
2/2
✓ Branch 0 taken 18 times.
✓ Branch 1 taken 6 times.
24 for (int j = 0; j < result->columns; j++) {
27 18 s21_calc_cell(A, B, result, i, j);
28 }
29 }
30 2 }
31
32 18 void s21_calc_cell(matrix_t *A, matrix_t *B, matrix_t *result, int i, int j) {
33
2/2
✓ Branch 0 taken 36 times.
✓ Branch 1 taken 18 times.
54 for (int k = 0; k < A->columns; k++) {
34 36 result->matrix[i][j] += A->matrix[i][k] * B->matrix[k][j];
35 }
36 18 }
37