PURIFY
Next-generation radio interferometric imaging
Namespaces | Enumerations | Functions
operators.h File Reference
#include "purify/config.h"
#include "purify/types.h"
#include <iostream>
#include <tuple>
#include <type_traits>
#include "purify/kernels.h"
#include "purify/logging.h"
#include "purify/utilities.h"
#include "purify/uvw_utilities.h"
#include "purify/wide_field_utilities.h"
#include "purify/wkernel_integration.h"
#include <sopt/chained_operators.h>
#include <sopt/linear_transform.h>
#include "purify/fly_operators.h"
#include <fftw3.h>
+ Include dependency graph for operators.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 purify
 
 purify::details
 
 purify::operators
 
 purify::measurementoperator
 

Enumerations

enum class  purify::operators::fftw_plan { purify::operators::estimate , purify::operators::measure }
 enum for fftw plans More...
 

Functions

Sparse< t_complex > purify::details::init_gridding_matrix_2d (const Vector< t_real > &u, const Vector< t_real > &v, const Vector< t_complex > &weights, const t_uint &imsizey_, const t_uint &imsizex_, const t_real &oversample_ratio, const std::function< t_real(t_real)> kernelu, const std::function< t_real(t_real)> kernelv, const t_uint Ju, const t_uint Jv)
 Construct gridding matrix. More...
 
Sparse< t_complex > purify::details::init_gridding_matrix_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, const std::function< t_real(t_real)> &ftkerneluv, const std::function< t_real(t_real)> &kerneluv, const t_uint Ju, const t_uint Jw, const t_real cellx, const t_real celly, const t_real abs_error, const t_real rel_error, const dde_type dde)
 Construct gridding matrix with wprojection. More...
 
template<class STORAGE_INDEX_TYPE = t_int>
Sparse< t_complex, STORAGE_INDEX_TYPE > purify::details::init_gridding_matrix_2d (const t_uint number_of_images, const std::vector< t_int > &image_index, const Vector< t_real > &u, const Vector< t_real > &v, const Vector< t_complex > &weights, const t_uint &imsizey_, const t_uint &imsizex_, const t_real &oversample_ratio, const std::function< t_real(t_real)> kernelu, const std::function< t_real(t_real)> kernelv, const t_uint Ju, const t_uint Jv)
 Construct all to all gridding matrix. More...
 
template<class STORAGE_INDEX_TYPE = t_int>
Sparse< t_complex, STORAGE_INDEX_TYPE > purify::details::init_gridding_matrix_2d (const t_uint number_of_images, const std::vector< t_int > &image_index, const std::vector< t_real > &w_stacks, 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, const std::function< t_real(t_real)> &ftkerneluv, const std::function< t_real(t_real)> &kerneluv, const t_uint Ju, const t_uint Jw, const t_real cellx, const t_real celly, const t_real abs_error, const t_real rel_error, const dde_type dde)
 Construct all to all gridding matrix with wprojection. More...
 
Image< t_complex > purify::details::init_correction2d (const t_real &oversample_ratio, const t_uint &imsizey_, const t_uint &imsizex_, const std::function< t_real(t_real)> ftkernelu, const std::function< t_real(t_real)> ftkernelv, const t_real &w_mean, const t_real &cellx, const t_real &celly)
 
template<class T , class... ARGS>
Sparse< t_complex > purify::details::init_gridding_matrix_2d (const Sparse< T > &mixing_matrix, ARGS &&...args)
 Construct gridding matrix with mixing. More...
 
template<class T , class... ARGS>
std::tuple< sopt::OperatorFunction< T >, sopt::OperatorFunction< T > > purify::operators::init_gridding_matrix_2d (ARGS &&...args)
 constructs lambdas that apply degridding matrix with adjoint More...
 
template<class T >
std::tuple< sopt::OperatorFunction< T >, sopt::OperatorFunction< T > > purify::operators::init_zero_padding_2d (const Image< typename T::Scalar > &S, const t_real &oversample_ratio)
 Construsts zero padding operator. More...
 
template<class T >
sopt::OperatorFunction< T > purify::operators::init_normalise (const t_real &op_norm)
 
template<class T >
std::tuple< sopt::OperatorFunction< T >, sopt::OperatorFunction< T > > purify::operators::init_weights_ (const Vector< t_complex > &weights)
 Construsts zero padding operator. More...
 
template<class T >
std::tuple< sopt::OperatorFunction< T >, sopt::OperatorFunction< T > > purify::operators::init_FFT_2d (const t_uint &imsizey_, const t_uint &imsizex_, const t_real &oversample_factor_, const fftw_plan fftw_plan_flag_=fftw_plan::measure)
 Construsts FFT operator. More...
 
template<class T >
std::tuple< sopt::OperatorFunction< T >, sopt::OperatorFunction< T > > purify::operators::base_padding_and_FFT_2d (const std::function< t_real(t_real)> &ftkernelu, const std::function< t_real(t_real)> &ftkernelv, const t_uint &imsizey, const t_uint &imsizex, const t_real &oversample_ratio=2, const fftw_plan &ft_plan=fftw_plan::measure, const t_real &w_mean=0, const t_real &cellx=1, const t_real &celly=1)
 
template<class T >
std::tuple< sopt::OperatorFunction< T >, sopt::OperatorFunction< T > > purify::operators::base_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 fftw_plan &ft_plan=fftw_plan::measure, const bool w_stacking=false, const t_real &cellx=1, const t_real &celly=1, const bool on_the_fly=true)
 
template<class T >
std::shared_ptr< sopt::LinearTransform< T > > purify::measurementoperator::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. More...
 
template<class T >
std::shared_ptr< sopt::LinearTransform< T > > purify::measurementoperator::init_degrid_operator_2d (const utilities::vis_params &uv_vis_input, const t_uint &imsizey, const t_uint &imsizex, const t_real &cell_x, const t_real &cell_y, 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)