@@ -60,19 +60,19 @@ std::shared_ptr<sopt::algorithm::ImagingProximalADMM<t_complex>> padmm_factory(
6060#elif PURIFY_PADMM_ALGORITHM == 3 || PURIFY_PADMM_ALGORITHM == 1
6161 auto const epsilon = 3 * std::sqrt (2 * uv_data.size ()) * sigma;
6262#endif
63- const t_real gamma =
63+ const t_real regulariser_strength =
6464 utilities::step_size (uv_data.vis , measurements,
6565 std::make_shared<sopt::LinearTransform<Vector<t_complex>> const >(Psi),
6666 sara.size ()) *
6767 1e-3 ;
6868 PURIFY_MEDIUM_LOG (" Epsilon {}" , epsilon);
69- PURIFY_MEDIUM_LOG (" Gamma {}" , gamma );
69+ PURIFY_MEDIUM_LOG (" Regulariser_Strength {}" , regulariser_strength );
7070
7171 // shared pointer because the convergence function need access to some data that we would rather
7272 // not reproduce. E.g. padmm definition is self-referential.
7373 auto padmm = std::make_shared<sopt::algorithm::ImagingProximalADMM<t_complex>>(uv_data.vis );
7474 padmm->itermax (50 )
75- .gamma (comm.all_reduce <t_real>(gamma , MPI_MAX))
75+ .regulariser_strength (comm.all_reduce <t_real>(regulariser_strength , MPI_MAX))
7676 .relative_variation (1e-3 )
7777 .l2ball_proximal_epsilon (epsilon)
7878#if PURIFY_PADMM_ALGORITHM == 2
@@ -89,7 +89,7 @@ std::shared_ptr<sopt::algorithm::ImagingProximalADMM<t_complex>> padmm_factory(
8989 .l1_proximal_real_constraint (true )
9090 .residual_tolerance (epsilon)
9191 .lagrange_update_scale (0.9 )
92- .nu (1e0 )
92+ .sq_op_norm (1e0 )
9393 .Psi (Psi)
9494 .Phi (*measurements);
9595 sopt::ScalarRelativeVariation<t_complex> conv (padmm->relative_variation (),
@@ -127,13 +127,16 @@ std::shared_ptr<sopt::algorithm::ImagingProximalADMM<t_complex>> padmm_factory(
127127 const auto algo_update = [uv_data, imsizex, imsizey, padmm_weak, iter,
128128 comm](const Vector<t_complex> &x) -> bool {
129129 auto padmm = padmm_weak.lock ();
130- if (comm.is_root ()) PURIFY_MEDIUM_LOG (" Step size γ {}" , padmm->gamma ());
130+ if (comm.is_root ()) PURIFY_MEDIUM_LOG (" Step size γ {}" , padmm->regulariser_strength ());
131131 *iter = *iter + 1 ;
132132 Vector<t_complex> const alpha = padmm->Psi ().adjoint () * x;
133- const t_real new_gamma = comm.all_reduce (alpha.real ().cwiseAbs ().maxCoeff (), MPI_MAX) * 1e-3 ;
134- if (comm.is_root ()) PURIFY_MEDIUM_LOG (" Step size γ update {}" , new_gamma);
135- padmm->gamma (((std::abs (padmm->gamma () - new_gamma) > 0.2 ) and *iter < 200 ) ? new_gamma
136- : padmm->gamma ());
133+ const t_real new_regulariser_strength =
134+ comm.all_reduce (alpha.real ().cwiseAbs ().maxCoeff (), MPI_MAX) * 1e-3 ;
135+ if (comm.is_root ()) PURIFY_MEDIUM_LOG (" Step size γ update {}" , new_regulariser_strength);
136+ padmm->regulariser_strength (
137+ ((std::abs (padmm->regulariser_strength () - new_regulariser_strength) > 0.2 ) and *iter < 200 )
138+ ? new_regulariser_strength
139+ : padmm->regulariser_strength ());
137140 // updating parameter
138141
139142 Vector<t_complex> const residual = padmm->Phi ().adjoint () * (uv_data.vis - padmm->Phi () * x);
0 commit comments