![]() |
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().