SOPT
Sparse OPTimisation
Public Types | Public Member Functions | List of all members
DifferentiableFunc< SCALAR > Class Template Referenceabstract

#include <differentiable_func.h>

+ Inheritance diagram for DifferentiableFunc< SCALAR >:

Public Types

using FB = sopt::algorithm::ForwardBackward< SCALAR >
 
using Real = typename FB::Real
 
using t_Vector = typename FB::t_Vector
 
using t_Gradient = typename FB::t_Gradient
 
using t_LinearTransform = typename FB::t_LinearTransform
 

Public Member Functions

virtual void log_message () const =0
 
virtual t_Gradient gradient ()
 
virtual void gradient (t_Vector &output, const t_Vector &image, const t_Vector &residual, const t_LinearTransform &Phi)=0
 
virtual Real function (t_Vector const &image, t_Vector const &y, t_LinearTransform const &Phi)=0
 
Real get_step_size () const
 

Detailed Description

template<typename SCALAR>
class DifferentiableFunc< SCALAR >

Definition at line 8 of file differentiable_func.h.

Member Typedef Documentation

◆ FB

template<typename SCALAR >
using DifferentiableFunc< SCALAR >::FB = sopt::algorithm::ForwardBackward<SCALAR>

Definition at line 12 of file differentiable_func.h.

◆ Real

template<typename SCALAR >
using DifferentiableFunc< SCALAR >::Real = typename FB::Real

Definition at line 13 of file differentiable_func.h.

◆ t_Gradient

template<typename SCALAR >
using DifferentiableFunc< SCALAR >::t_Gradient = typename FB::t_Gradient

Definition at line 15 of file differentiable_func.h.

◆ t_LinearTransform

template<typename SCALAR >
using DifferentiableFunc< SCALAR >::t_LinearTransform = typename FB::t_LinearTransform

Definition at line 16 of file differentiable_func.h.

◆ t_Vector

template<typename SCALAR >
using DifferentiableFunc< SCALAR >::t_Vector = typename FB::t_Vector

Definition at line 14 of file differentiable_func.h.

Member Function Documentation

◆ function()

template<typename SCALAR >
virtual Real DifferentiableFunc< SCALAR >::function ( t_Vector const &  image,
t_Vector const &  y,
t_LinearTransform const &  Phi 
)
pure virtual

◆ get_step_size()

template<typename SCALAR >
Real DifferentiableFunc< SCALAR >::get_step_size ( ) const
inline

Definition at line 38 of file differentiable_func.h.

39  {
40  return step_size;
41  }

◆ gradient() [1/2]

template<typename SCALAR >
virtual t_Gradient DifferentiableFunc< SCALAR >::gradient ( )
inlinevirtual

Definition at line 24 of file differentiable_func.h.

25  {
26  return [this](t_Vector &output, const t_Vector &image, const t_Vector &residual,
27  const t_LinearTransform &Phi) -> void { this->gradient(output, image, residual, Phi); };
28  }
sopt::Vector< Scalar > t_Vector
virtual t_Gradient gradient()

◆ gradient() [2/2]

template<typename SCALAR >
virtual void DifferentiableFunc< SCALAR >::gradient ( t_Vector output,
const t_Vector image,
const t_Vector residual,
const t_LinearTransform Phi 
)
pure virtual

◆ log_message()

template<typename SCALAR >
virtual void DifferentiableFunc< SCALAR >::log_message ( ) const
pure virtual

The documentation for this class was generated from the following file: