PURIFY
Next-generation radio interferometric imaging
Public Member Functions | Public Attributes | List of all members
DegridOperatorFixture Class Referenceabstract
+ Inheritance diagram for DegridOperatorFixture:
+ Collaboration diagram for DegridOperatorFixture:

Public Member Functions

void SetUp (const ::benchmark::State &state)
 
void TearDown (const ::benchmark::State &state)
 
virtual bool updateImage (t_uint newSize)=0
 
void SetUp (const ::benchmark::State &state)
 
void TearDown (const ::benchmark::State &state)
 
virtual bool updateImage (t_uint newSize)=0
 

Public Attributes

t_uint m_counter
 
t_uint m_imsizex
 
t_uint m_imsizey
 
utilities::vis_params m_uv_data
 
t_uint m_kernel
 
std::shared_ptr< sopt::LinearTransform< Vector< t_complex > > const > m_degridOperator
 

Detailed Description

Definition at line 45 of file measurement_operator.cc.

Member Function Documentation

◆ SetUp() [1/2]

void DegridOperatorFixture::SetUp ( const ::benchmark::State &  state)
inline

Definition at line 47 of file measurement_operator.cc.

47  {
48  // Keep count of the benchmark repetitions
49  m_counter++;
50 
51  // Reading image from file and create temporary image
52  bool newImage = updateImage(state.range(0));
53 
54  // Generating random uv(w) coverage
55  bool newMeasurements = m_uv_data.size() != state.range(1);
56  if (newMeasurements) {
57  t_real const sigma_m = constant::pi / 3;
58  m_uv_data = utilities::random_sample_density(state.range(1), 0, sigma_m);
59  }
60 
61  // Create measurement operator
62  bool newKernel = m_kernel != state.range(2);
63  if (newImage || newMeasurements || newKernel) {
64  const t_real FoV = 1; // deg
65  const t_real cellsize = FoV / m_imsizex * 60. * 60.;
66  const bool w_term = false;
67  m_kernel = state.range(2);
68  m_degridOperator = measurementoperator::init_degrid_operator_2d<Vector<t_complex>>(
69  m_uv_data, m_imsizey, m_imsizex, cellsize, cellsize, 2, kernels::kernel::kb, m_kernel,
70  m_kernel, w_term);
71  }
72  }
virtual bool updateImage(t_uint newSize)=0
utilities::vis_params m_uv_data
std::shared_ptr< sopt::LinearTransform< Vector< t_complex > > const > m_degridOperator
const t_real pi
mathematical constant
Definition: types.h:70
utilities::vis_params random_sample_density(const t_int vis_num, const t_real mean, const t_real standard_deviation, const t_real rms_w)
Generates a random visibility coverage.
t_uint size() const
return number of measurements
Definition: uvw_utilities.h:54

References purify::kernels::kb, purify::constant::pi, purify::utilities::random_sample_density(), and b_utilities::updateImage().

◆ SetUp() [2/2]

void DegridOperatorFixture::SetUp ( const ::benchmark::State &  state)
inline

Definition at line 55 of file measurement_operator_af.cc.

55  {
56  af::setDevice(0);
57  af::setBackend(AF_BACKEND_CUDA);
58  // Keep count of the benchmark repetitions
59  m_counter++;
60 
61  // Reading image from file and create temporary image
62  bool newImage = updateImage(state.range(0));
63 
64  // Generating random uv(w) coverage
65  bool newMeasurements = b_utilities::updateMeasurements(state.range(1), m_uv_data);
66 
67  // Create measurement operator
68  bool newKernel = m_kernel != state.range(2);
69  if (newImage || newMeasurements || newKernel) {
70  const t_real FoV = 1; // deg
71  const t_real cellsize = FoV / m_imsizex * 60. * 60.;
72  const bool w_term = false;
73  m_kernel = state.range(2);
74 #ifdef PURIFY_CPU
75  m_degridOperator = measurementoperator::init_degrid_operator_2d<Vector<t_complex>>(
76  m_uv_data, m_imsizey, m_imsizex, cellsize, cellsize, 2, kernels::kernel::kb, m_kernel,
77  m_kernel, w_term);
78 #else
80  m_uv_data, m_imsizey, m_imsizex, cellsize, cellsize, 2, kernels::kernel::kb, m_kernel,
81  m_kernel, w_term);
82 #endif
83  }
84  }
bool updateMeasurements(t_uint newSize, utilities::vis_params &data)
Definition: utilities.cc:54
std::shared_ptr< sopt::LinearTransform< T > > init_degrid_operator_2d(const Vector< t_real > &u, const Vector< t_real > &v, const Vector< t_real > &w, const Vector< t_complex > &weights, const t_uint &imsizey, const t_uint &imsizex, const t_real &oversample_ratio=2, const kernels::kernel kernel=kernels::kernel::kb, const t_uint Ju=4, const t_uint Jv=4, const bool w_stacking=false, const t_real &cellx=1, const t_real &celly=1)
Returns linear transform that is the standard degridding operator.
Definition: operators.h:608

References purify::measurementoperator::init_degrid_operator_2d(), purify::kernels::kb, b_utilities::updateImage(), and b_utilities::updateMeasurements().

◆ TearDown() [1/2]

void DegridOperatorFixture::TearDown ( const ::benchmark::State &  state)
inline

Definition at line 74 of file measurement_operator.cc.

74 {}

◆ TearDown() [2/2]

void DegridOperatorFixture::TearDown ( const ::benchmark::State &  state)
inline

Definition at line 86 of file measurement_operator_af.cc.

86 {}

◆ updateImage() [1/2]

virtual bool DegridOperatorFixture::updateImage ( t_uint  newSize)
pure virtual

◆ updateImage() [2/2]

virtual bool DegridOperatorFixture::updateImage ( t_uint  newSize)
pure virtual

Member Data Documentation

◆ m_counter

t_uint DegridOperatorFixture::m_counter

Definition at line 78 of file measurement_operator.cc.

◆ m_degridOperator

std::shared_ptr< sopt::LinearTransform< Vector< t_complex > > const > DegridOperatorFixture::m_degridOperator

Definition at line 86 of file measurement_operator.cc.

◆ m_imsizex

t_uint DegridOperatorFixture::m_imsizex

Definition at line 80 of file measurement_operator.cc.

◆ m_imsizey

t_uint DegridOperatorFixture::m_imsizey

Definition at line 81 of file measurement_operator.cc.

◆ m_kernel

t_uint DegridOperatorFixture::m_kernel

Definition at line 85 of file measurement_operator.cc.

◆ m_uv_data

utilities::vis_params DegridOperatorFixture::m_uv_data

Definition at line 83 of file measurement_operator.cc.


The documentation for this class was generated from the following files: