PURIFY
Next-generation radio interferometric imaging
Namespaces | Enumerations | Functions | Variables
algorithm_factory.h File Reference
#include "purify/config.h"
#include "purify/types.h"
#include "purify/convergence_factory.h"
#include "purify/logging.h"
#include "purify/random_update_factory.h"
#include "purify/utilities.h"
#include "purify/uvw_utilities.h"
#include <sopt/differentiable_func.h>
#include <sopt/imaging_forward_backward.h>
#include <sopt/imaging_padmm.h>
#include <sopt/imaging_primal_dual.h>
#include <sopt/joint_map.h>
#include <sopt/l1_non_diff_function.h>
#include <sopt/non_differentiable_func.h>
#include <sopt/real_indicator.h>
#include <sopt/relative_variation.h>
#include <sopt/utilities.h>
#include <sopt/wavelets.h>
#include <sopt/wavelets/sara.h>
+ Include dependency graph for algorithm_factory.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 purify
 
 purify::factory
 

Enumerations

enum class  purify::factory::algorithm { purify::factory::padmm , purify::factory::primal_dual , purify::factory::sdmm , purify::factory::forward_backward }
 
enum class  purify::factory::algo_distribution { purify::factory::serial , purify::factory::mpi_serial , purify::factory::mpi_distributed , purify::factory::mpi_random_updates }
 

Functions

template<class Algorithm , class... ARGS>
std::shared_ptr< Algorithm > purify::factory::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 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 More...
 
template<class Algorithm >
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 More...
 
template<class Algorithm >
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 More...
 

Variables

const std::map< std::string, algo_distribution > purify::factory::algo_distribution_string