PURIFY
Next-generation radio interferometric imaging
Classes | Functions
degridding.cc File Reference
#include <chrono>
#include <benchmark/benchmark.h>
#include "benchmarks/utilities.h"
#include "purify/operators.h"
+ Include dependency graph for degridding.cc:

Go to the source code of this file.

Classes

class  GridOperatorFixture
 

Functions

 BENCHMARK_DEFINE_F (GridOperatorFixture, Apply)(benchmark
 
 BENCHMARK_DEFINE_F (GridOperatorFixture, ApplyAdjoint)(benchmark
 
 RangeMultiplier (2) -> Range(100000, 100000<< 11) ->UseManualTime() ->Repetitions(10) ->ReportAggregatesOnly(true) ->Unit(benchmark::kMillisecond)
 
 BENCHMARK_MAIN ()
 

Function Documentation

◆ BENCHMARK_DEFINE_F() [1/2]

BENCHMARK_DEFINE_F ( GridOperatorFixture  ,
Apply   
)

Definition at line 41 of file degridding.cc.

41  {
42  const t_real oversample_ratio = 2;
43  const t_uint N = m_imsizex * m_imsizey * oversample_ratio * oversample_ratio;
44  const auto& forward = std::get<0>(Gop);
45 
46  const Vector<t_complex> input = Vector<t_complex>::Random(N);
47  Vector<t_complex> output = Vector<t_complex>::Zero(M);
48  forward(output, input);
49  while (state.KeepRunning()) {
50  auto start = std::chrono::high_resolution_clock::now();
51  forward(output, input);
52  auto end = std::chrono::high_resolution_clock::now();
53  state.SetIterationTime(b_utilities::duration(start, end));
54  }
55 }
double duration(std::chrono::high_resolution_clock::time_point start, std::chrono::high_resolution_clock::time_point end)
Definition: utilities.cc:26

References b_utilities::duration().

◆ BENCHMARK_DEFINE_F() [2/2]

BENCHMARK_DEFINE_F ( GridOperatorFixture  ,
ApplyAdjoint   
)

Definition at line 57 of file degridding.cc.

57  {
58  const t_real oversample_ratio = 2;
59  const t_uint N = m_imsizex * m_imsizey * oversample_ratio * oversample_ratio;
60  const auto& backward = std::get<1>(Gop);
61 
62  const Vector<t_complex> input = Vector<t_complex>::Random(M);
63  Vector<t_complex> output = Vector<t_complex>::Zero(N);
64  backward(output, input);
65  while (state.KeepRunning()) {
66  auto start = std::chrono::high_resolution_clock::now();
67  backward(output, input);
68  auto end = std::chrono::high_resolution_clock::now();
69  state.SetIterationTime(b_utilities::duration(start, end));
70  }
71 }

References b_utilities::duration().

◆ BENCHMARK_MAIN()

BENCHMARK_MAIN ( )

◆ RangeMultiplier()

RangeMultiplier ( ) -> Range(100000, 100000<< 11) ->UseManualTime() ->Repetitions(10) ->ReportAggregatesOnly(true) ->Unit(benchmark::kMillisecond)