![]()  | 
  
    PURIFY
    
   Next-generation radio interferometric imaging 
   | 
 
Enumerations | |
| enum class | algorithm { padmm , primal_dual , sdmm , forward_backward } | 
| enum class | algo_distribution { serial , mpi_serial , mpi_distributed , mpi_random_updates } | 
| enum class | ConvergenceType { mpi_local , mpi_global } | 
| enum class | distributed_measurement_operator {  serial , mpi_distribute_image , mpi_distribute_grid , mpi_distribute_all_to_all , gpu_serial , gpu_mpi_distribute_image , gpu_mpi_distribute_grid , gpu_mpi_distribute_all_to_all }  | 
| determine type of distribute for mpi measurement operator  More... | |
| enum class | distributed_wavelet_operator { serial , mpi_sara } | 
Functions | |
| template<class Algorithm , class... ARGS> | |
| std::shared_ptr< Algorithm > | algorithm_factory (const factory::algorithm algo, ARGS &&...args) | 
| return chosen algorithm given parameters  More... | |
| template<class Algorithm > | |
| std::enable_if< std::is_same< Algorithm, sopt::algorithm::ImagingProximalADMM< t_complex > >::value, std::shared_ptr< Algorithm > >::type | padmm_factory (const algo_distribution dist, std::shared_ptr< sopt::LinearTransform< Vector< typename Algorithm::Scalar >> const > const &measurements, std::shared_ptr< sopt::LinearTransform< Vector< typename Algorithm::Scalar >> const > const &wavelets, const utilities::vis_params &uv_data, const t_real sigma, const t_uint imsizey, const t_uint imsizex, const t_uint sara_size, const t_uint max_iterations=500, const bool real_constraint=true, const bool positive_constraint=true, const bool tight_frame=false, const t_real relative_variation=1e-3, const t_real l1_proximal_tolerance=1e-2, const t_uint maximum_proximal_iterations=50, const t_real residual_tolerance_scaling=1) | 
| return shared pointer to padmm object  More... | |
| template<class Algorithm > | |
| std::enable_if< std::is_same< Algorithm, sopt::algorithm::ImagingForwardBackward< t_complex > >::value, std::shared_ptr< Algorithm > >::type | fb_factory (const algo_distribution dist, std::shared_ptr< sopt::LinearTransform< Vector< typename Algorithm::Scalar >> const > const &measurements, std::shared_ptr< sopt::LinearTransform< Vector< typename Algorithm::Scalar >> const > const &wavelets, const utilities::vis_params &uv_data, const t_real sigma, const t_real step_size, const t_real reg_parameter, const t_uint imsizey, const t_uint imsizex, const t_uint sara_size, const t_uint max_iterations=500, const bool real_constraint=true, const bool positive_constraint=true, const bool tight_frame=false, const t_real relative_variation=1e-3, const t_real l1_proximal_tolerance=1e-2, const t_uint maximum_proximal_iterations=50, const std::string model_path="", const nondiff_func_type g_proximal=nondiff_func_type::L1Norm, std::shared_ptr< DifferentiableFunc< typename Algorithm::Scalar >> f_function=nullptr) | 
| return shared pointer to forward backward object  More... | |
| template<class Algorithm > | |
| std::enable_if< std::is_same< Algorithm, sopt::algorithm::ImagingPrimalDual< t_complex > >::value, std::shared_ptr< Algorithm > >::type | primaldual_factory (const algo_distribution dist, std::shared_ptr< sopt::LinearTransform< Vector< typename Algorithm::Scalar >> const > const &measurements, std::shared_ptr< sopt::LinearTransform< Vector< typename Algorithm::Scalar >> const > const &wavelets, const utilities::vis_params &uv_data, const t_real sigma, const t_uint imsizey, const t_uint imsizex, const t_uint sara_size, const t_uint max_iterations=500, const bool real_constraint=true, const bool positive_constraint=true, const t_real relative_variation=1e-3, const t_real residual_tolerance_scaling=1) | 
| return shared pointer to primal dual object  More... | |
| template<class T , class... ARGS> | |
| std::shared_ptr< sopt::LinearTransform< T > > | all_to_all_measurement_operator_factory (const distributed_measurement_operator distribute, const std::vector< t_int > &image_stacks, const std::vector< t_real > &w_stacks, ARGS &&...args) | 
| distributed measurement operator factory  More... | |
| template<class T , class... ARGS> | |
| std::shared_ptr< sopt::LinearTransform< T > > | measurement_operator_factory (const distributed_measurement_operator distribute, ARGS &&...args) | 
| distributed measurement operator factory  More... | |
| template<class T , class Algo > | |
| void | add_updater (std::weak_ptr< Algo > const algo_weak, const t_real step_size_scale, const t_real update_tol, const t_uint update_iters, const pfitsio::header_params &update_solution_header, const pfitsio::header_params &update_residual_header, const t_uint imsizey, const t_uint imsizex, const t_uint sara_size, const bool using_mpi, const t_real beam_units=1) | 
| template<class T > | |
| std::shared_ptr< sopt::LinearTransform< T > const > | wavelet_operator_factory (const distributed_wavelet_operator distribute, const std::vector< std::tuple< std::string, t_uint >> &wavelets, const t_uint imsizey, const t_uint imsizex, t_uint &sara_size) | 
| construct sara wavelet operator  More... | |
| template<class T > | |
| std::shared_ptr< sopt::LinearTransform< T > const > | wavelet_operator_factory (const distributed_wavelet_operator distribute, const std::vector< std::tuple< std::string, t_uint >> &wavelets, const t_uint imsizey, const t_uint imsizex) | 
Variables | |
| const std::map< std::string, algo_distribution > | algo_distribution_string | 
      
  | 
  strong | 
| Enumerator | |
|---|---|
| serial | |
| mpi_serial | |
| mpi_distributed | |
| mpi_random_updates | |
Definition at line 37 of file algorithm_factory.h.
      
  | 
  strong | 
| Enumerator | |
|---|---|
| padmm | |
| primal_dual | |
| sdmm | |
| forward_backward | |
Definition at line 36 of file algorithm_factory.h.
      
  | 
  strong | 
| Enumerator | |
|---|---|
| mpi_local | |
| mpi_global | |
Definition at line 12 of file convergence_factory.h.
determine type of distribute for mpi measurement operator
| Enumerator | |
|---|---|
| serial | |
| mpi_distribute_image | |
| mpi_distribute_grid | |
| mpi_distribute_all_to_all | |
| gpu_serial | |
| gpu_mpi_distribute_image | |
| gpu_mpi_distribute_grid | |
| gpu_mpi_distribute_all_to_all | |
Definition at line 22 of file measurement_operator_factory.h.
      
  | 
  strong | 
| void purify::factory::add_updater | ( | std::weak_ptr< Algo > const | algo_weak, | 
| const t_real | step_size_scale, | ||
| const t_real | update_tol, | ||
| const t_uint | update_iters, | ||
| const pfitsio::header_params & | update_solution_header, | ||
| const pfitsio::header_params & | update_residual_header, | ||
| const t_uint | imsizey, | ||
| const t_uint | imsizex, | ||
| const t_uint | sara_size, | ||
| const bool | using_mpi, | ||
| const t_real | beam_units = 1  | 
        ||
| ) | 
Definition at line 20 of file update_factory.h.
References PURIFY_MEDIUM_LOG, and purify::pfitsio::write2d().
| std::shared_ptr< Algorithm > purify::factory::algorithm_factory | ( | const factory::algorithm | algo, | 
| ARGS &&... | args | ||
| ) | 
return chosen algorithm given parameters
Definition at line 365 of file algorithm_factory.h.
References padmm.
| std::shared_ptr<sopt::LinearTransform<T> > purify::factory::all_to_all_measurement_operator_factory | ( | const distributed_measurement_operator | distribute, | 
| const std::vector< t_int > & | image_stacks, | ||
| const std::vector< t_real > & | w_stacks, | ||
| ARGS &&... | args | ||
| ) | 
distributed measurement operator factory
Definition at line 43 of file measurement_operator_factory.h.
References mpi_distribute_all_to_all, and PURIFY_LOW_LOG.
Referenced by createMeasurementOperator(), getInputData(), and TEST_CASE().
| std::enable_if< std::is_same<Algorithm, sopt::algorithm::ImagingForwardBackward<t_complex> >::value, std::shared_ptr<Algorithm> >::type purify::factory::fb_factory | ( | const algo_distribution | dist, | 
| std::shared_ptr< sopt::LinearTransform< Vector< typename Algorithm::Scalar >> const > const & | measurements, | ||
| std::shared_ptr< sopt::LinearTransform< Vector< typename Algorithm::Scalar >> const > const & | wavelets, | ||
| const utilities::vis_params & | uv_data, | ||
| const t_real | sigma, | ||
| const t_real | step_size, | ||
| const t_real | reg_parameter, | ||
| const t_uint | imsizey, | ||
| const t_uint | imsizex, | ||
| const t_uint | sara_size, | ||
| const t_uint | max_iterations = 500,  | 
        ||
| const bool | real_constraint = true,  | 
        ||
| const bool | positive_constraint = true,  | 
        ||
| const bool | tight_frame = false,  | 
        ||
| const t_real | relative_variation = 1e-3,  | 
        ||
| const t_real | l1_proximal_tolerance = 1e-2,  | 
        ||
| const t_uint | maximum_proximal_iterations = 50,  | 
        ||
| const std::string | model_path = "",  | 
        ||
| const nondiff_func_type | g_proximal = nondiff_func_type::L1Norm,  | 
        ||
| std::shared_ptr< DifferentiableFunc< typename Algorithm::Scalar >> | f_function = nullptr  | 
        ||
| ) | 
return shared pointer to forward backward object
Definition at line 153 of file algorithm_factory.h.
References purify::Denoiser, purify::L1Norm, mpi_serial, PURIFY_INFO, purify::RealIndicator, serial, purify::utilities::step_size(), and purify::utilities::vis_params::vis.
| std::shared_ptr<sopt::LinearTransform<T> > purify::factory::measurement_operator_factory | ( | const distributed_measurement_operator | distribute, | 
| ARGS &&... | args | ||
| ) | 
distributed measurement operator factory
Definition at line 63 of file measurement_operator_factory.h.
References gpu_mpi_distribute_grid, gpu_mpi_distribute_image, gpu_serial, purify::measurementoperator::init_degrid_operator_2d(), mpi_distribute_grid, mpi_distribute_image, PURIFY_LOW_LOG, and serial.
Referenced by createMeasurementOperator(), getInputData(), and TEST_CASE().
| std::enable_if< std::is_same<Algorithm, sopt::algorithm::ImagingProximalADMM<t_complex> >::value, std::shared_ptr<Algorithm> >::type purify::factory::padmm_factory | ( | const algo_distribution | dist, | 
| std::shared_ptr< sopt::LinearTransform< Vector< typename Algorithm::Scalar >> const > const & | measurements, | ||
| std::shared_ptr< sopt::LinearTransform< Vector< typename Algorithm::Scalar >> const > const & | wavelets, | ||
| const utilities::vis_params & | uv_data, | ||
| const t_real | sigma, | ||
| const t_uint | imsizey, | ||
| const t_uint | imsizex, | ||
| const t_uint | sara_size, | ||
| const t_uint | max_iterations = 500,  | 
        ||
| const bool | real_constraint = true,  | 
        ||
| const bool | positive_constraint = true,  | 
        ||
| const bool | tight_frame = false,  | 
        ||
| const t_real | relative_variation = 1e-3,  | 
        ||
| const t_real | l1_proximal_tolerance = 1e-2,  | 
        ||
| const t_uint | maximum_proximal_iterations = 50,  | 
        ||
| const t_real | residual_tolerance_scaling = 1  | 
        ||
| ) | 
return shared pointer to padmm object
Definition at line 52 of file algorithm_factory.h.
References mpi_distributed, mpi_global, mpi_local, mpi_serial, padmm(), PURIFY_INFO, serial, purify::utilities::vis_params::size(), purify::utilities::step_size(), and purify::utilities::vis_params::vis.
| std::enable_if< std::is_same<Algorithm, sopt::algorithm::ImagingPrimalDual<t_complex> >::value, std::shared_ptr<Algorithm> >::type purify::factory::primaldual_factory | ( | const algo_distribution | dist, | 
| std::shared_ptr< sopt::LinearTransform< Vector< typename Algorithm::Scalar >> const > const & | measurements, | ||
| std::shared_ptr< sopt::LinearTransform< Vector< typename Algorithm::Scalar >> const > const & | wavelets, | ||
| const utilities::vis_params & | uv_data, | ||
| const t_real | sigma, | ||
| const t_uint | imsizey, | ||
| const t_uint | imsizex, | ||
| const t_uint | sara_size, | ||
| const t_uint | max_iterations = 500,  | 
        ||
| const bool | real_constraint = true,  | 
        ||
| const bool | positive_constraint = true,  | 
        ||
| const t_real | relative_variation = 1e-3,  | 
        ||
| const t_real | residual_tolerance_scaling = 1  | 
        ||
| ) | 
return shared pointer to primal dual object
Definition at line 254 of file algorithm_factory.h.
References mpi_distributed, mpi_global, mpi_local, mpi_random_updates, mpi_serial, PURIFY_INFO, purify::random_updater::random_updater(), serial, purify::utilities::vis_params::size(), purify::utilities::step_size(), and purify::utilities::vis_params::vis.
Referenced by main().
| std::shared_ptr<sopt::LinearTransform<T> const> purify::factory::wavelet_operator_factory | ( | const distributed_wavelet_operator | distribute, | 
| const std::vector< std::tuple< std::string, t_uint >> & | wavelets, | ||
| const t_uint | imsizey, | ||
| const t_uint | imsizex | ||
| ) | 
Definition at line 55 of file wavelet_operator_factory.h.
| std::shared_ptr<sopt::LinearTransform<T> const> purify::factory::wavelet_operator_factory | ( | const distributed_wavelet_operator | distribute, | 
| const std::vector< std::tuple< std::string, t_uint >> & | wavelets, | ||
| const t_uint | imsizey, | ||
| const t_uint | imsizex, | ||
| t_uint & | sara_size | ||
| ) | 
construct sara wavelet operator
Definition at line 21 of file wavelet_operator_factory.h.
References mpi_sara, PURIFY_LOW_LOG, and serial.
| const std::map<std::string, algo_distribution> purify::factory::algo_distribution_string | 
Definition at line 38 of file algorithm_factory.h.
Referenced by purify::YamlParser::parseAndSetAlgorithmOptions().