PURIFY
Next-generation radio interferometric imaging
utilities.h
Go to the documentation of this file.
1 #ifndef BENCHMARK_UTILITIES_H
2 #define BENCHMARK_UTILITIES_H
3 
4 #include <chrono>
5 #include <benchmark/benchmark.h>
6 #include "purify/uvw_utilities.h"
7 #ifdef PURIFY_MPI
8 #include <sopt/mpi/communicator.h>
9 #endif
10 
11 using namespace purify;
12 
13 namespace b_utilities {
14 
15 void Arguments(benchmark::internal::Benchmark* b);
16 
17 double duration(std::chrono::high_resolution_clock::time_point start,
18  std::chrono::high_resolution_clock::time_point end);
19 
20 bool updateImage(t_uint newSize, Image<t_complex>& image, t_uint& sizex, t_uint& sizey);
21 bool updateEmptyImage(t_uint newSize, Vector<t_complex>& image, t_uint& sizex, t_uint& sizey);
22 
23 bool updateMeasurements(t_uint newSize, utilities::vis_params& data);
24 bool updateMeasurements(t_uint newSize, utilities::vis_params& data, t_real& epsilon, bool newImage,
25  Image<t_complex>& image);
26 
27 std::tuple<utilities::vis_params, t_real> dirty_measurements(
28  Image<t_complex> const& ground_truth_image, t_uint number_of_vis, t_real snr,
29  const t_real& cellsize);
30 
31 utilities::vis_params random_measurements(t_int size, const t_real max_w = 100, const t_int id = 0,
32  const bool cache_visibilities = false);
33 #ifdef PURIFY_MPI
34 double duration(std::chrono::high_resolution_clock::time_point start,
35  std::chrono::high_resolution_clock::time_point end,
36  sopt::mpi::Communicator const& comm);
37 bool updateMeasurements(t_uint newSize, utilities::vis_params& data, sopt::mpi::Communicator& comm);
38 bool updateMeasurements(t_uint newSize, utilities::vis_params& data, t_real& epsilon, bool newImage,
39  Image<t_complex>& image, sopt::mpi::Communicator& comm);
40 std::tuple<utilities::vis_params, t_real> dirty_measurements(
41  Image<t_complex> const& ground_truth_image, t_uint number_of_vis, t_real snr,
42  const t_real& cellsize, sopt::mpi::Communicator const& comm);
43 utilities::vis_params random_measurements(t_int size, sopt::mpi::Communicator const& comm);
44 
45 void update_comm(sopt::mpi::Communicator& comm);
46 
47 #endif
48 } // namespace b_utilities
49 
50 #endif
bool updateMeasurements(t_uint newSize, utilities::vis_params &data)
Definition: utilities.cc:54
bool updateImage(t_uint newSize, Image< t_complex > &image, t_uint &sizex, t_uint &sizey)
Definition: utilities.cc:32
std::tuple< utilities::vis_params, t_real > dirty_measurements(Image< t_complex > const &ground_truth_image, t_uint number_of_vis, t_real snr, const t_real &cellsize)
Definition: utilities.cc:77
bool updateEmptyImage(t_uint newSize, Vector< t_complex > &image, t_uint &sizex, t_uint &sizey)
Definition: utilities.cc:44
void Arguments(benchmark::internal::Benchmark *b)
Definition: utilities.cc:16
double duration(std::chrono::high_resolution_clock::time_point start, std::chrono::high_resolution_clock::time_point end)
Definition: utilities.cc:26
utilities::vis_params random_measurements(t_int size, const t_real max_w, const t_int id, const bool cache_visibilities)
Definition: utilities.cc:96