![]() |
SOPT
Sparse OPTimisation
|
#include <l2_forward_backward.h>
Classes | |
struct | Diagnostic |
Values indicating how the algorithm ran. More... | |
struct | DiagnosticAndResult |
Holds result vector as well. More... | |
Public Types | |
using | value_type = typename FB::value_type |
using | Scalar = typename FB::Scalar |
using | Real = typename FB::Real |
using | t_Vector = typename FB::t_Vector |
using | t_LinearTransform = typename FB::t_LinearTransform |
template<typename T > | |
using | t_Proximal = std::function< void(t_Vector &, const T &, const t_Vector &)> |
using | t_Gradient = typename FB::t_Gradient |
using | t_IsConverged = typename FB::t_IsConverged |
Public Member Functions | |
template<typename DERIVED > | |
L2ForwardBackward (Eigen::MatrixBase< DERIVED > const &target) | |
virtual | ~L2ForwardBackward () |
SOPT_MACRO (l2_proximal, t_Proximal< Real >) | |
l2 proximal for regularizaiton More... | |
SOPT_MACRO (l2_proximal_weighted, t_Proximal< Vector< Real >>) | |
l2 proximal for regularizaiton with weights More... | |
SOPT_MACRO (l2_proximal_weights, Vector< Real >) | |
l2 proximal weights More... | |
SOPT_MACRO (l2_gradient, t_Gradient) | |
Gradient of the l2 norm. More... | |
SOPT_MACRO (tight_frame, bool) | |
Whether Ψ is a tight-frame or not. More... | |
SOPT_MACRO (residual_tolerance, Real) | |
Convergence of the relative variation of the objective functions. More... | |
SOPT_MACRO (relative_variation, Real) | |
Convergence of the relative variation of the objective functions. More... | |
SOPT_MACRO (residual_convergence, t_IsConverged) | |
Convergence of the residuals. More... | |
SOPT_MACRO (objective_convergence, t_IsConverged) | |
Convergence of the residuals. More... | |
SOPT_MACRO (itermax, t_uint) | |
Maximum number of iterations. More... | |
SOPT_MACRO (regulariser_strength, Real) | |
γ parameter. More... | |
SOPT_MACRO (step_size, Real) | |
γ parameter. More... | |
SOPT_MACRO (sigma, Real) | |
γ parameter. More... | |
SOPT_MACRO (is_converged, t_IsConverged) | |
A function verifying convergence. More... | |
SOPT_MACRO (Phi, t_LinearTransform) | |
Measurement operator. More... | |
t_Vector const & | target () const |
Vector of target measurements. More... | |
Real | objmin () const |
Minimun of objective_function. More... | |
template<typename DERIVED > | |
L2ForwardBackward< Scalar > & | target (Eigen::MatrixBase< DERIVED > const &target) |
Sets the vector of target measurements. More... | |
Diagnostic | operator() (t_Vector &out) const |
Calls Forward Backward. More... | |
Diagnostic | operator() (t_Vector &out, std::tuple< t_Vector, t_Vector > const &guess) const |
Calls Forward Backward. More... | |
Diagnostic | operator() (t_Vector &out, std::tuple< t_Vector const &, t_Vector const & > const &guess) const |
Calls Forward Backward. More... | |
DiagnosticAndResult | operator() (std::tuple< t_Vector, t_Vector > const &guess) const |
Calls Forward Backward. More... | |
DiagnosticAndResult | operator() (std::tuple< t_Vector const &, t_Vector const & > const &guess) const |
Calls Forward Backward. More... | |
DiagnosticAndResult | operator() () const |
Calls Forward Backward. More... | |
DiagnosticAndResult | operator() (DiagnosticAndResult const &warmstart) const |
Makes it simple to chain different calls to FB. More... | |
L2ForwardBackward &::type | Phi (ARGS &&... args) |
t_Proximal< Real > & | l2_proximal () |
L1 proximal used during calculation. More... | |
t_Proximal< Vector< Real > > & | l2_proximal_weighted () |
t_Gradient & | l2_gradient () |
Proximal of the L2 ball. More... | |
L2ForwardBackward< Scalar > & | residual_convergence (Real const &tolerance) |
Helper function to set-up default residual convergence function. More... | |
L2ForwardBackward< Scalar > & | objective_convergence (Real const &tolerance) |
Helper function to set-up default residual convergence function. More... | |
L2ForwardBackward< Scalar > & | is_converged (std::function< bool(t_Vector const &x)> const &func) |
Convergence function that takes only the output as argument. More... | |
Definition at line 24 of file l2_forward_backward.h.
using sopt::algorithm::L2ForwardBackward< SCALAR >::Real = typename FB::Real |
Definition at line 31 of file l2_forward_backward.h.
using sopt::algorithm::L2ForwardBackward< SCALAR >::Scalar = typename FB::Scalar |
Definition at line 30 of file l2_forward_backward.h.
using sopt::algorithm::L2ForwardBackward< SCALAR >::t_Gradient = typename FB::t_Gradient |
Definition at line 36 of file l2_forward_backward.h.
using sopt::algorithm::L2ForwardBackward< SCALAR >::t_IsConverged = typename FB::t_IsConverged |
Definition at line 37 of file l2_forward_backward.h.
using sopt::algorithm::L2ForwardBackward< SCALAR >::t_LinearTransform = typename FB::t_LinearTransform |
Definition at line 33 of file l2_forward_backward.h.
using sopt::algorithm::L2ForwardBackward< SCALAR >::t_Proximal = std::function<void(t_Vector &, const T &, const t_Vector &)> |
Definition at line 35 of file l2_forward_backward.h.
using sopt::algorithm::L2ForwardBackward< SCALAR >::t_Vector = typename FB::t_Vector |
Definition at line 32 of file l2_forward_backward.h.
using sopt::algorithm::L2ForwardBackward< SCALAR >::value_type = typename FB::value_type |
Definition at line 29 of file l2_forward_backward.h.
|
inline |
Setups imaging wrapper for ForwardBackward
[in] | f_proximal | proximal operator of the \(f\) function. |
[in] | g_proximal | proximal operator of the \(g\) function |
Definition at line 55 of file l2_forward_backward.h.
|
inlinevirtual |
Definition at line 79 of file l2_forward_backward.h.
|
inline |
Convergence function that takes only the output as argument.
Definition at line 217 of file l2_forward_backward.h.
|
inline |
Proximal of the L2 ball.
Non-const version to setup the object.
Definition at line 206 of file l2_forward_backward.h.
|
inline |
L1 proximal used during calculation.
Non-const version to setup the object.
Definition at line 202 of file l2_forward_backward.h.
|
inline |
Definition at line 203 of file l2_forward_backward.h.
|
inline |
Helper function to set-up default residual convergence function.
Definition at line 213 of file l2_forward_backward.h.
|
inline |
Minimun of objective_function.
Definition at line 138 of file l2_forward_backward.h.
|
inline |
Calls Forward Backward.
[in] | guess | initial guess |
Definition at line 179 of file l2_forward_backward.h.
References sopt::target(), and sopt::algorithm::L2ForwardBackward< SCALAR >::DiagnosticAndResult::x.
|
inline |
Makes it simple to chain different calls to FB.
Definition at line 186 of file l2_forward_backward.h.
References sopt::algorithm::L2ForwardBackward< SCALAR >::DiagnosticAndResult::x.
|
inline |
Calls Forward Backward.
[in] | guess | initial guess |
Definition at line 171 of file l2_forward_backward.h.
References sopt::algorithm::L2ForwardBackward< SCALAR >::DiagnosticAndResult::x.
|
inline |
Calls Forward Backward.
[in] | guess | initial guess |
Definition at line 166 of file l2_forward_backward.h.
|
inline |
Calls Forward Backward.
[out] | out | Output vector x |
Definition at line 148 of file l2_forward_backward.h.
References sopt::target().
|
inline |
Calls Forward Backward.
[out] | out | Output vector x |
[in] | guess | initial guess |
Definition at line 160 of file l2_forward_backward.h.
|
inline |
Calls Forward Backward.
[out] | out | Output vector x |
[in] | guess | initial guess |
Definition at line 154 of file l2_forward_backward.h.
|
inline |
Definition at line 194 of file l2_forward_backward.h.
References sopt::linear_transform().
Referenced by main().
|
inline |
Helper function to set-up default residual convergence function.
Definition at line 209 of file l2_forward_backward.h.
sopt::algorithm::L2ForwardBackward< SCALAR >::SOPT_MACRO | ( | is_converged | , |
t_IsConverged | |||
) |
A function verifying convergence.
sopt::algorithm::L2ForwardBackward< SCALAR >::SOPT_MACRO | ( | itermax | , |
t_uint | |||
) |
Maximum number of iterations.
sopt::algorithm::L2ForwardBackward< SCALAR >::SOPT_MACRO | ( | l2_gradient | , |
t_Gradient | |||
) |
Gradient of the l2 norm.
sopt::algorithm::L2ForwardBackward< SCALAR >::SOPT_MACRO | ( | l2_proximal | , |
t_Proximal< Real > | |||
) |
l2 proximal for regularizaiton
sopt::algorithm::L2ForwardBackward< SCALAR >::SOPT_MACRO | ( | l2_proximal_weighted | , |
t_Proximal< Vector< Real >> | |||
) |
l2 proximal for regularizaiton with weights
sopt::algorithm::L2ForwardBackward< SCALAR >::SOPT_MACRO | ( | l2_proximal_weights | , |
Vector< Real > | |||
) |
l2 proximal weights
sopt::algorithm::L2ForwardBackward< SCALAR >::SOPT_MACRO | ( | objective_convergence | , |
t_IsConverged | |||
) |
Convergence of the residuals.
If negative, this convergence criteria is disabled.
sopt::algorithm::L2ForwardBackward< SCALAR >::SOPT_MACRO | ( | Phi | , |
t_LinearTransform | |||
) |
Measurement operator.
sopt::algorithm::L2ForwardBackward< SCALAR >::SOPT_MACRO | ( | regulariser_strength | , |
Real | |||
) |
γ parameter.
sopt::algorithm::L2ForwardBackward< SCALAR >::SOPT_MACRO | ( | relative_variation | , |
Real | |||
) |
Convergence of the relative variation of the objective functions.
If negative, this convergence criteria is disabled.
sopt::algorithm::L2ForwardBackward< SCALAR >::SOPT_MACRO | ( | residual_convergence | , |
t_IsConverged | |||
) |
Convergence of the residuals.
If negative, this convergence criteria is disabled.
sopt::algorithm::L2ForwardBackward< SCALAR >::SOPT_MACRO | ( | residual_tolerance | , |
Real | |||
) |
Convergence of the relative variation of the objective functions.
If negative, this convergence criteria is disabled.
sopt::algorithm::L2ForwardBackward< SCALAR >::SOPT_MACRO | ( | sigma | , |
Real | |||
) |
γ parameter.
sopt::algorithm::L2ForwardBackward< SCALAR >::SOPT_MACRO | ( | step_size | , |
Real | |||
) |
γ parameter.
sopt::algorithm::L2ForwardBackward< SCALAR >::SOPT_MACRO | ( | tight_frame | , |
bool | |||
) |
Whether Ψ is a tight-frame or not.
|
inline |
Vector of target measurements.
Definition at line 136 of file l2_forward_backward.h.
|
inline |
Sets the vector of target measurements.
Definition at line 141 of file l2_forward_backward.h.
References sopt::target().