DMRITool  v0.1.1-139-g860d86b4
Diffusion MRI Tool
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
itk::IterativeSolverBase< TPrecision > Class Template Reference

#include <itkIterativeSolverBase.h>

+ Inheritance diagram for itk::IterativeSolverBase< TPrecision >:
+ Collaboration diagram for itk::IterativeSolverBase< TPrecision >:

Detailed Description

template<class TPrecision>
class itk::IterativeSolverBase< TPrecision >

Base class for some optimization solvers using primal-dual updates.

Author
Jian Cheng (JC), jian..nosp@m.chen.nosp@m.g.198.nosp@m.3@gm.nosp@m.ail.c.nosp@m.om

Definition at line 34 of file itkIterativeSolverBase.h.

Public Types

typedef Superclass::MatrixType MatrixType
 
typedef SmartPointer< SelfPointer
 
typedef IterativeSolverBase Self
 
typedef SolverBase< TPrecision > Superclass
 
enum  UpdateInfomationType {
  NONE =0,
  STOP_MIN_CHANGE,
  STOP_MAX_NUM_ITERATION,
  CONTINUE,
  RESTART
}
 
typedef std::vector< ValueTypeValueContainerType
 
typedef TPrecision ValueType
 
typedef Superclass::VectorType VectorType
 
- Public Types inherited from itk::SolverBase< TPrecision >
typedef utl_shared_ptr< MatrixTypeMatrixPointer
 
typedef utl::NDArray< ValueType, 2 > MatrixType
 
typedef SmartPointer< SelfPointer
 
typedef SolverBase Self
 
typedef Object Superclass
 
typedef utl_shared_ptr< std::vector< ValueType > > ValueContainerPointer
 
typedef std::vector< ValueTypeValueContainerType
 
typedef TPrecision ValueType
 
typedef utl_shared_ptr< VectorTypeVectorPointer
 
typedef utl::NDArray< ValueType, 1 > VectorType
 

Public Member Functions

virtual void Clear () ITK_OVERRIDE
 
virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
virtual const ValueContainerTypeGetCostFunction ()
 
virtual const ValueContainerTypeGetDifferenceNormOfDualResidual ()
 
virtual const ValueContainerTypeGetDifferenceNormOfPrimalResidual ()
 
virtual const ValueContainerTypeGetEPSOfDualResidual ()
 
virtual const ValueContainerTypeGetEPSOfPrimalResidual ()
 
virtual const ValueTypeGetEPSOfVaribles ()
 
virtual const int & GetMaxNumberOfIterations ()
 
virtual const ValueTypeGetMinRelativeChangeOfCostFunction ()
 
virtual const ValueTypeGetMinRelativeChangeOfDualResidual ()
 
virtual const ValueTypeGetMinRelativeChangeOfPrimalResidual ()
 
virtual const char * GetNameOfClass () const
 
virtual const int & GetNumberOfChangeLessThanThreshold ()
 
virtual const int & GetNumberOfIterations ()
 
virtual void HistoryUpdateAndConvergenceCheck ()
 
void Initialize (const VectorType &xInitial=VectorType()) ITK_OVERRIDE
 
virtual void Iterate ()
 
virtual void SetEPSOfVaribles (ValueType _arg)
 
virtual void SetMaxNumberOfIterations (int _arg)
 
virtual void SetMinRelativeChangeOfCostFunction (ValueType _arg)
 
virtual void SetMinRelativeChangeOfDualResidual (ValueType _arg)
 
virtual void SetMinRelativeChangeOfPrimalResidual (ValueType _arg)
 
virtual void SetNumberOfChangeLessThanThreshold (int _arg)
 
virtual void Solve (const VectorType &xInitial=VectorType()) ITK_OVERRIDE
 
- Public Member Functions inherited from itk::SolverBase< TPrecision >
virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
virtual void EndSolve ()
 
virtual ValueType EvaluateCostFunction (const VectorType &x=VectorType()) const
 
virtual ValueType EvaluateCostFunction (const MatrixType &x=MatrixType()) const
 
virtual VectorType EvaluateGradientOfCostFunction (const VectorType &x) const
 
virtual const VectorTypeGetx ()
 
virtual int GetXDimension () const
 
virtual void Solve (const MatrixType &xInitial=MatrixType())
 
virtual void VerifyInputs () const
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from itk::SolverBase< TPrecision >
static Pointer New ()
 

Protected Member Functions

virtual LightObject::Pointer InternalClone () const ITK_OVERRIDE
 
 IterativeSolverBase ()
 
void PrintSelf (std::ostream &os, Indent indent) const ITK_OVERRIDE
 
virtual ~IterativeSolverBase ()
 
- Protected Member Functions inherited from itk::SolverBase< TPrecision >
void PrintSelf (std::ostream &os, Indent indent) const ITK_OVERRIDE
 
 SolverBase ()
 
virtual ~SolverBase ()
 

Protected Attributes

ValueContainerType m_CostFunction
 
ValueContainerType m_DifferenceNormOfDualResidual
 
ValueContainerType m_DifferenceNormOfPrimalResidual
 
ValueContainerType m_EPSOfDualResidual
 
ValueContainerType m_EPSOfPrimalResidual
 
ValueType m_EPSOfVaribles
 
int m_MaxNumberOfIterations
 
ValueType m_MinRelativeChangeOfCostFunction
 
ValueType m_MinRelativeChangeOfDualResidual
 
ValueType m_MinRelativeChangeOfPrimalResidual
 
int m_NumberOfChangeLessThanThreshold
 
int m_NumberOfIterations
 
UpdateInfomationType m_UpdateInformation
 
- Protected Attributes inherited from itk::SolverBase< TPrecision >
VectorType m_x
 

Private Member Functions

 IterativeSolverBase (const Self &)
 
void operator= (const Self &)
 

Member Typedef Documentation

template<class TPrecision>
typedef Superclass::MatrixType itk::IterativeSolverBase< TPrecision >::MatrixType

Definition at line 49 of file itkIterativeSolverBase.h.

template<class TPrecision>
typedef SmartPointer<Self> itk::IterativeSolverBase< TPrecision >::Pointer

Definition at line 40 of file itkIterativeSolverBase.h.

template<class TPrecision>
typedef IterativeSolverBase itk::IterativeSolverBase< TPrecision >::Self

Standard class typedefs.

Definition at line 38 of file itkIterativeSolverBase.h.

template<class TPrecision>
typedef SolverBase<TPrecision> itk::IterativeSolverBase< TPrecision >::Superclass

Definition at line 39 of file itkIterativeSolverBase.h.

template<class TPrecision>
typedef std::vector<ValueType> itk::IterativeSolverBase< TPrecision >::ValueContainerType

Definition at line 52 of file itkIterativeSolverBase.h.

template<class TPrecision>
typedef TPrecision itk::IterativeSolverBase< TPrecision >::ValueType

Definition at line 46 of file itkIterativeSolverBase.h.

template<class TPrecision>
typedef Superclass::VectorType itk::IterativeSolverBase< TPrecision >::VectorType

Definition at line 50 of file itkIterativeSolverBase.h.

Member Enumeration Documentation

template<class TPrecision>
enum itk::IterativeSolverBase::UpdateInfomationType
Enumerator
NONE 
STOP_MIN_CHANGE 
STOP_MAX_NUM_ITERATION 
CONTINUE 
RESTART 

Definition at line 54 of file itkIterativeSolverBase.h.

Constructor & Destructor Documentation

template<class TPrecision >
itk::IterativeSolverBase< TPrecision >::IterativeSolverBase ( )
protected

Definition at line 33 of file itkIterativeSolverBase.hxx.

References spams::FISTA::NONE, and itk::IterativeSolverBase< TPrecision >::Solve().

+ Here is the call graph for this function:

template<class TPrecision>
virtual itk::IterativeSolverBase< TPrecision >::~IterativeSolverBase ( )
inlineprotectedvirtual

Definition at line 107 of file itkIterativeSolverBase.h.

References ITK_OVERRIDE.

template<class TPrecision>
itk::IterativeSolverBase< TPrecision >::IterativeSolverBase ( const Self )
private

Member Function Documentation

template<class TPrecision >
void itk::IterativeSolverBase< TPrecision >::Clear ( )
virtual

Reimplemented from itk::SolverBase< TPrecision >.

Reimplemented in itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >.

Definition at line 74 of file itkIterativeSolverBase.hxx.

References itk::IterativeSolverBase< TPrecision >::InternalClone(), and spams::FISTA::NONE.

Referenced by itk::IterativeSolverBase< TPrecision >::Initialize().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPrecision>
virtual::itk::LightObject::Pointer itk::IterativeSolverBase< TPrecision >::CreateAnother ( void  ) const
template<class TPrecision>
virtual const ValueContainerType& itk::IterativeSolverBase< TPrecision >::GetCostFunction ( )
virtual
template<class TPrecision>
virtual const ValueContainerType& itk::IterativeSolverBase< TPrecision >::GetDifferenceNormOfDualResidual ( )
virtual
template<class TPrecision>
virtual const ValueContainerType& itk::IterativeSolverBase< TPrecision >::GetDifferenceNormOfPrimalResidual ( )
virtual
template<class TPrecision>
virtual const ValueContainerType& itk::IterativeSolverBase< TPrecision >::GetEPSOfDualResidual ( )
virtual
template<class TPrecision>
virtual const ValueContainerType& itk::IterativeSolverBase< TPrecision >::GetEPSOfPrimalResidual ( )
virtual
template<class TPrecision>
virtual const ValueType& itk::IterativeSolverBase< TPrecision >::GetEPSOfVaribles ( )
virtual
template<class TPrecision>
virtual const int& itk::IterativeSolverBase< TPrecision >::GetMaxNumberOfIterations ( )
virtual
template<class TPrecision>
virtual const ValueType& itk::IterativeSolverBase< TPrecision >::GetMinRelativeChangeOfCostFunction ( )
virtual
template<class TPrecision>
virtual const ValueType& itk::IterativeSolverBase< TPrecision >::GetMinRelativeChangeOfDualResidual ( )
virtual
template<class TPrecision>
virtual const ValueType& itk::IterativeSolverBase< TPrecision >::GetMinRelativeChangeOfPrimalResidual ( )
virtual
template<class TPrecision>
virtual const char* itk::IterativeSolverBase< TPrecision >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from itk::SolverBase< TPrecision >.

Reimplemented in itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >.

template<class TPrecision>
virtual const int& itk::IterativeSolverBase< TPrecision >::GetNumberOfChangeLessThanThreshold ( )
virtual
template<class TPrecision>
virtual const int& itk::IterativeSolverBase< TPrecision >::GetNumberOfIterations ( )
virtual
template<class TPrecision>
virtual void itk::IterativeSolverBase< TPrecision >::HistoryUpdateAndConvergenceCheck ( )
inlinevirtual

Update history information and monitor stop conditions

Reimplemented in itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >.

Definition at line 99 of file itkIterativeSolverBase.h.

References ITK_OVERRIDE.

template<class TPrecision >
void itk::IterativeSolverBase< TPrecision >::Initialize ( const VectorType xInitial = VectorType())
virtual

Reimplemented from itk::SolverBase< TPrecision >.

Reimplemented in itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >.

Definition at line 58 of file itkIterativeSolverBase.hxx.

References itk::IterativeSolverBase< TPrecision >::Clear().

Referenced by itk::IterativeSolverBase< TPrecision >::Solve().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPrecision >
LightObject::Pointer itk::IterativeSolverBase< TPrecision >::InternalClone ( ) const
protectedvirtual

Reimplemented from itk::SolverBase< TPrecision >.

Reimplemented in itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >.

Definition at line 90 of file itkIterativeSolverBase.hxx.

References itk::IterativeSolverBase< TPrecision >::PrintSelf().

Referenced by itk::IterativeSolverBase< TPrecision >::Clear().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPrecision>
virtual void itk::IterativeSolverBase< TPrecision >::Iterate ( )
inlinevirtual
template<class TPrecision>
static Pointer itk::IterativeSolverBase< TPrecision >::New ( )
static

Method for creation through the object factory.

template<class TPrecision>
void itk::IterativeSolverBase< TPrecision >::operator= ( const Self )
private
template<class TPrecision >
void itk::IterativeSolverBase< TPrecision >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protected

Definition at line 117 of file itkIterativeSolverBase.hxx.

References PrintVar4, and utl::PrintVector().

Referenced by itk::IterativeSolverBase< TPrecision >::InternalClone().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPrecision>
virtual void itk::IterativeSolverBase< TPrecision >::SetEPSOfVaribles ( ValueType  _arg)
virtual
template<class TPrecision>
virtual void itk::IterativeSolverBase< TPrecision >::SetMaxNumberOfIterations ( int  _arg)
virtual
template<class TPrecision>
virtual void itk::IterativeSolverBase< TPrecision >::SetMinRelativeChangeOfCostFunction ( ValueType  _arg)
virtual
template<class TPrecision>
virtual void itk::IterativeSolverBase< TPrecision >::SetMinRelativeChangeOfDualResidual ( ValueType  _arg)
virtual
template<class TPrecision>
virtual void itk::IterativeSolverBase< TPrecision >::SetMinRelativeChangeOfPrimalResidual ( ValueType  _arg)
virtual
template<class TPrecision>
virtual void itk::IterativeSolverBase< TPrecision >::SetNumberOfChangeLessThanThreshold ( int  _arg)
virtual
template<class TPrecision >
void itk::IterativeSolverBase< TPrecision >::Solve ( const VectorType xInitial = VectorType())
virtual

Reimplemented from itk::SolverBase< TPrecision >.

Reimplemented in itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >.

Definition at line 49 of file itkIterativeSolverBase.hxx.

References itk::IterativeSolverBase< TPrecision >::Initialize().

Referenced by itk::IterativeSolverBase< TPrecision >::IterativeSolverBase().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

template<class TPrecision>
ValueContainerType itk::IterativeSolverBase< TPrecision >::m_CostFunction
protected

Definition at line 112 of file itkIterativeSolverBase.h.

template<class TPrecision>
ValueContainerType itk::IterativeSolverBase< TPrecision >::m_DifferenceNormOfDualResidual
protected

Definition at line 114 of file itkIterativeSolverBase.h.

template<class TPrecision>
ValueContainerType itk::IterativeSolverBase< TPrecision >::m_DifferenceNormOfPrimalResidual
protected

Definition at line 113 of file itkIterativeSolverBase.h.

template<class TPrecision>
ValueContainerType itk::IterativeSolverBase< TPrecision >::m_EPSOfDualResidual
protected

Definition at line 118 of file itkIterativeSolverBase.h.

template<class TPrecision>
ValueContainerType itk::IterativeSolverBase< TPrecision >::m_EPSOfPrimalResidual
protected

Definition at line 117 of file itkIterativeSolverBase.h.

template<class TPrecision>
ValueType itk::IterativeSolverBase< TPrecision >::m_EPSOfVaribles
protected

Definition at line 127 of file itkIterativeSolverBase.h.

template<class TPrecision>
int itk::IterativeSolverBase< TPrecision >::m_MaxNumberOfIterations
protected

Definition at line 120 of file itkIterativeSolverBase.h.

template<class TPrecision>
ValueType itk::IterativeSolverBase< TPrecision >::m_MinRelativeChangeOfCostFunction
protected

Definition at line 122 of file itkIterativeSolverBase.h.

template<class TPrecision>
ValueType itk::IterativeSolverBase< TPrecision >::m_MinRelativeChangeOfDualResidual
protected

Definition at line 124 of file itkIterativeSolverBase.h.

template<class TPrecision>
ValueType itk::IterativeSolverBase< TPrecision >::m_MinRelativeChangeOfPrimalResidual
protected

Definition at line 123 of file itkIterativeSolverBase.h.

template<class TPrecision>
int itk::IterativeSolverBase< TPrecision >::m_NumberOfChangeLessThanThreshold
protected

Definition at line 130 of file itkIterativeSolverBase.h.

template<class TPrecision>
int itk::IterativeSolverBase< TPrecision >::m_NumberOfIterations
protected

Definition at line 121 of file itkIterativeSolverBase.h.

template<class TPrecision>
UpdateInfomationType itk::IterativeSolverBase< TPrecision >::m_UpdateInformation
protected

Definition at line 129 of file itkIterativeSolverBase.h.


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