GCC Code Coverage Report


Directory: ./
File: tasks/tsibareva_e_ribbon_horizontal_matrix_mult_vector/seq/src/ops_seq.cpp
Date: 2026-01-27 01:59:34
Exec Total Coverage
Lines: 0 21 0.0%
Functions: 0 5 0.0%
Branches: 0 12 0.0%

Line Branch Exec Source
1 #include "tsibareva_e_ribbon_horizontal_matrix_mult_vector/seq/include/ops_seq.hpp"
2
3 #include <cstddef>
4 #include <vector>
5
6 #include "tsibareva_e_ribbon_horizontal_matrix_mult_vector/common/include/common.hpp"
7
8 namespace tsibareva_e_ribbon_horizontal_matrix_mult_vector {
9
10 TsibarevaERibbonHorizontalMatrixMultVectorSEQ::TsibarevaERibbonHorizontalMatrixMultVectorSEQ(const InType &in)
11 : rows_(std::get<1>(in)), cols_(std::get<2>(in)) {
12 SetTypeOfTask(GetStaticTypeOfTask());
13 GetInput() = in;
14 }
15
16 bool TsibarevaERibbonHorizontalMatrixMultVectorSEQ::ValidationImpl() {
17 return true;
18 }
19
20 bool TsibarevaERibbonHorizontalMatrixMultVectorSEQ::PreProcessingImpl() {
21 if (rows_ == 0 || cols_ == 0) {
22 GetOutput() = std::vector<int>();
23 } else {
24 GetOutput() = std::vector<int>(static_cast<size_t>(rows_), 0);
25 }
26 return true;
27 }
28
29 bool TsibarevaERibbonHorizontalMatrixMultVectorSEQ::RunImpl() {
30 const auto &flat_matrix = std::get<0>(GetInput());
31 const auto &flat_vector = std::get<3>(GetInput());
32
33 input_matrix_ = std::vector<int>(flat_matrix);
34 input_vector_ = std::vector<int>(flat_vector);
35
36 auto &result_vector = GetOutput();
37
38 for (int row = 0; row < rows_; ++row) {
39 int sum = 0;
40 for (int col = 0; col < cols_; ++col) {
41 int matrix_idx = (row * cols_) + col;
42 sum += input_matrix_[static_cast<size_t>(matrix_idx)] * input_vector_[static_cast<size_t>(col)];
43 }
44 result_vector[row] = sum;
45 }
46
47 return true;
48 }
49
50 bool TsibarevaERibbonHorizontalMatrixMultVectorSEQ::PostProcessingImpl() {
51 return true;
52 }
53
54 } // namespace tsibareva_e_ribbon_horizontal_matrix_mult_vector
55