GCC Code Coverage Report


Directory: ./
File: tasks/romanov_m_closest_elem_vec/mpi/include/ops_mpi.hpp
Date: 2026-01-27 01:59:34
Exec Total Coverage
Lines: 1 1 100.0%
Functions: 0 0 -%
Branches: 1 2 50.0%

Line Branch Exec Source
1 #pragma once
2
3 #include <vector>
4
5 #include "romanov_m_closest_elem_vec/common/include/common.hpp"
6 #include "task/include/task.hpp"
7
8 namespace romanov_m_closest_elem_vec {
9
10 struct Result {
11 Result(int diff, int idx)
12
1/2
✓ Branch 2 taken 30 times.
✗ Branch 3 not taken.
60 : diff(diff), idx(idx) {
13
14 };
15 int diff;
16 int idx;
17 };
18
19 void CalculateDistribution(int total_size, int comm_size, std::vector<int> &send_counts, std::vector<int> &displs);
20
21 void LocalFindMinDiff(const std::vector<int> &local_data, int local_sz, int global_offset, Result &local_res);
22
23 void PerformBoundaryCheck(int rank, int comm_size, int local_sz, int global_offset, const std::vector<int> &local_data,
24 Result &local_res);
25
26 void UpdateResult(Result &current_res, int new_diff, int new_idx);
27
28 class RomanovMClosestElemVecMPI : public BaseTask {
29 public:
30 static constexpr ppc::task::TypeOfTask GetStaticTypeOfTask() {
31 return ppc::task::TypeOfTask::kMPI;
32 }
33 explicit RomanovMClosestElemVecMPI(const InType &in);
34
35 private:
36 bool ValidationImpl() override;
37 bool PreProcessingImpl() override;
38 bool RunImpl() override;
39 bool PostProcessingImpl() override;
40 };
41
42 } // namespace romanov_m_closest_elem_vec
43