GCC Code Coverage Report


Directory: ./
File: tasks/votincev_d_matrix_mult/seq/src/ops_seq.cpp
Date: 2026-01-10 02:40:41
Exec Total Coverage
Lines: 30 30 100.0%
Functions: 5 5 100.0%
Branches: 16 28 57.1%

Line Branch Exec Source
1 #include "votincev_d_matrix_mult/seq/include/ops_seq.hpp"
2
3 #include <cstddef>
4 #include <tuple>
5 #include <vector>
6
7 #include "votincev_d_matrix_mult/common/include/common.hpp"
8
9 namespace votincev_d_matrix_mult {
10
11
1/2
✓ Branch 1 taken 80 times.
✗ Branch 2 not taken.
80 VotincevDMatrixMultSEQ::VotincevDMatrixMultSEQ(const InType &in) {
12 SetTypeOfTask(GetStaticTypeOfTask());
13 GetInput() = in;
14 80 }
15
16 80 bool VotincevDMatrixMultSEQ::ValidationImpl() {
17 const auto &in = GetInput();
18 80 int param_m = std::get<0>(in);
19 80 int param_n = std::get<1>(in);
20 80 int param_k = std::get<2>(in);
21 const auto &matrix_a = std::get<3>(in);
22 const auto &matrix_b = std::get<4>(in);
23
24
3/6
✓ Branch 0 taken 80 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 80 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 80 times.
80 return (param_m > 0 && param_n > 0 && param_k > 0 && static_cast<int>(matrix_a.size()) == (param_m * param_k) &&
25
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 80 times.
80 static_cast<int>(matrix_b.size()) == (param_k * param_n));
26 }
27
28 80 bool VotincevDMatrixMultSEQ::PreProcessingImpl() {
29 80 return true;
30 }
31
32 80 bool VotincevDMatrixMultSEQ::RunImpl() {
33 int param_m = 0;
34 int param_n = 0;
35 int param_k = 0;
36 80 std::vector<double> matrix_a;
37 80 std::vector<double> matrix_b;
38 80 std::vector<double> matrix_res;
39
40 auto &in = GetInput();
41 80 param_m = std::get<0>(in);
42 80 param_n = std::get<1>(in);
43
1/2
✓ Branch 1 taken 80 times.
✗ Branch 2 not taken.
80 param_k = std::get<2>(in);
44
1/2
✓ Branch 1 taken 80 times.
✗ Branch 2 not taken.
80 matrix_a = std::get<3>(in);
45
1/2
✓ Branch 1 taken 80 times.
✗ Branch 2 not taken.
80 matrix_b = std::get<4>(in);
46
47 80 auto res_sz = static_cast<size_t>(param_m) * static_cast<size_t>(param_n);
48
1/4
✓ Branch 1 taken 80 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
80 matrix_res.assign(res_sz, 0.0);
49
50
2/2
✓ Branch 0 taken 448 times.
✓ Branch 1 taken 80 times.
528 for (int i = 0; i < param_m; ++i) {
51
2/2
✓ Branch 0 taken 3200 times.
✓ Branch 1 taken 448 times.
3648 for (int j = 0; j < param_n; ++j) {
52 double sum = 0.0;
53
2/2
✓ Branch 0 taken 27240 times.
✓ Branch 1 taken 3200 times.
30440 for (int k = 0; k < param_k; ++k) {
54 27240 sum += matrix_a[(i * param_k) + k] * matrix_b[(k * param_n) + j];
55 }
56 3200 matrix_res[(i * param_n) + j] = sum;
57 }
58 }
59
60
1/2
✓ Branch 1 taken 80 times.
✗ Branch 2 not taken.
80 GetOutput() = matrix_res;
61 80 return true;
62 }
63
64 80 bool VotincevDMatrixMultSEQ::PostProcessingImpl() {
65 80 return true;
66 }
67
68 } // namespace votincev_d_matrix_mult
69