DMRITool
v0.1.1-139-g860d86b4
Diffusion MRI Tool
|
#include <itkL1RegularizedLeastSquaresFISTASolver.h>
solve least square problem with L1 regularization using FISTA
The least square with L2 regularization is
where A is a matrix, w is a diagonal matrix (vnl_vector) b, x are vectors.
reference: Fast Iterative Shrinkage-Thresholding Algorithm (FISTA), SIAM J. Imaging Sciences 2009
Definition at line 44 of file itkL1RegularizedLeastSquaresFISTASolver.h.
Static Public Member Functions | |
static Pointer | New () |
Static Public Member Functions inherited from itk::IterativeSolverBase< TPrecision > | |
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 |
L1RegularizedLeastSquaresFISTASolver () | |
void | PrintSelf (std::ostream &os, Indent indent) const ITK_OVERRIDE |
virtual | ~L1RegularizedLeastSquaresFISTASolver () |
Protected Member Functions inherited from itk::IterativeSolverBase< TPrecision > | |
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 () |
Private Member Functions | |
L1RegularizedLeastSquaresFISTASolver (const Self &) | |
void | operator= (const Self &) |
Private Attributes | |
MatrixPointer | m_At |
MatrixPointer | m_AtA |
VectorPointer | m_Atb |
L2SolverType::Pointer | m_L2Solver |
double | m_Step |
VectorPointer | m_xOld |
typedef L2RegularizedLeastSquaresSolver<TPrecision> itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::L2SolverType |
Definition at line 67 of file itkL1RegularizedLeastSquaresFISTASolver.h.
typedef Superclass::MatrixPointer itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::MatrixPointer |
Definition at line 62 of file itkL1RegularizedLeastSquaresFISTASolver.h.
typedef Superclass::MatrixType itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::MatrixType |
Definition at line 60 of file itkL1RegularizedLeastSquaresFISTASolver.h.
typedef SmartPointer<Self> itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::Pointer |
Definition at line 51 of file itkL1RegularizedLeastSquaresFISTASolver.h.
typedef L1RegularizedLeastSquaresFISTASolver itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::Self |
Standard class typedefs.
Definition at line 49 of file itkL1RegularizedLeastSquaresFISTASolver.h.
typedef IterativeSolverBase<TPrecision> itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::Superclass |
Definition at line 50 of file itkL1RegularizedLeastSquaresFISTASolver.h.
typedef Superclass::UpdateInfomationType itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::UpdateInfomationType |
Definition at line 66 of file itkL1RegularizedLeastSquaresFISTASolver.h.
typedef Superclass::ValueContainerType itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::ValueContainerType |
Definition at line 65 of file itkL1RegularizedLeastSquaresFISTASolver.h.
typedef Superclass::ValueType itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::ValueType |
Definition at line 57 of file itkL1RegularizedLeastSquaresFISTASolver.h.
typedef Superclass::VectorPointer itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::VectorPointer |
Definition at line 63 of file itkL1RegularizedLeastSquaresFISTASolver.h.
typedef Superclass::VectorType itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::VectorType |
Definition at line 61 of file itkL1RegularizedLeastSquaresFISTASolver.h.
|
protected |
Definition at line 30 of file itkL1RegularizedLeastSquaresFISTASolver.hxx.
References itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::SetA().
|
inlineprotectedvirtual |
Definition at line 131 of file itkL1RegularizedLeastSquaresFISTASolver.h.
References ITK_OVERRIDE.
|
private |
|
inlinevirtual |
Reimplemented from itk::IterativeSolverBase< TPrecision >.
Definition at line 88 of file itkL1RegularizedLeastSquaresFISTASolver.h.
|
inline |
Definition at line 98 of file itkL1RegularizedLeastSquaresFISTASolver.h.
|
inline |
Definition at line 110 of file itkL1RegularizedLeastSquaresFISTASolver.h.
References ITK_OVERRIDE.
|
inline |
Definition at line 105 of file itkL1RegularizedLeastSquaresFISTASolver.h.
virtual::itk::LightObject::Pointer itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::CreateAnother | ( | void | ) | const |
|
virtual |
if x is not set, evaluate the cost function for m_x
Reimplemented from itk::SolverBase< TPrecision >.
Definition at line 192 of file itkL1RegularizedLeastSquaresFISTASolver.hxx.
References utl::cblas_asum(), utl::cblas_nrm2(), utl::NDArrayBase< T, Dim >::GetData(), itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::HistoryUpdateAndConvergenceCheck(), utl::ProductUtlMv(), utl::NDArrayBase< T, Dim >::Size(), utl::vMul(), and utl::vSub().
Referenced by itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::Solve().
|
virtual |
|
virtual |
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::IterativeSolverBase< TPrecision >.
|
virtual |
|
virtual |
|
inlinevirtual |
Reimplemented from itk::SolverBase< TPrecision >.
Definition at line 81 of file itkL1RegularizedLeastSquaresFISTASolver.h.
References utlException.
|
virtual |
Update history information and monitor stop conditions
Reimplemented from itk::IterativeSolverBase< TPrecision >.
Definition at line 210 of file itkL1RegularizedLeastSquaresFISTASolver.hxx.
References utl::cblas_nrm2(), itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::Iterate(), and utl::vSub().
Referenced by itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::EvaluateCostFunction().
|
virtual |
Reimplemented from itk::IterativeSolverBase< TPrecision >.
Definition at line 160 of file itkL1RegularizedLeastSquaresFISTASolver.hxx.
References utl::PrintUtlVector(), utl::NDArrayBase< T, Dim >::Size(), itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::Solve(), utlException, and utlShowPosition.
Referenced by itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::InternalClone().
|
protectedvirtual |
Reimplemented from itk::IterativeSolverBase< TPrecision >.
Definition at line 137 of file itkL1RegularizedLeastSquaresFISTASolver.hxx.
References itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::Initialize().
Referenced by itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::VerifyInputs().
|
virtual |
Reimplemented from itk::IterativeSolverBase< TPrecision >.
Definition at line 251 of file itkL1RegularizedLeastSquaresFISTASolver.hxx.
References utl::cblas_copy(), utl::cblas_scal< double >(), utl::NDArrayBase< T, Dim >::GetData(), itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::PrintSelf(), utl::ProductUtlMv(), utl::NDArrayBase< T, Dim >::Size(), utlShowPosition, utl::vAdd(), and utl::vSub().
Referenced by itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::HistoryUpdateAndConvergenceCheck().
|
static |
Method for creation through the object factory.
|
private |
|
protected |
Definition at line 313 of file itkL1RegularizedLeastSquaresFISTASolver.hxx.
References utl::PrintUtlMatrix(), utl::PrintUtlVector(), and PrintVar2.
Referenced by itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::Iterate().
void itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::SetA | ( | const MatrixPointer & | mat | ) |
Definition at line 47 of file itkL1RegularizedLeastSquaresFISTASolver.hxx.
References utl::ProductUtlMv(), utl::ProductUtlXtX(), itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::Setb(), and utlException.
Referenced by itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::L1RegularizedLeastSquaresFISTASolver().
void itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::Setb | ( | const VectorPointer & | b | ) |
Definition at line 76 of file itkL1RegularizedLeastSquaresFISTASolver.hxx.
References utl::ProductUtlMv(), itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::Setw(), and utlException.
Referenced by itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::SetA().
|
virtual |
void itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::Setw | ( | const VectorPointer & | w | ) |
Definition at line 98 of file itkL1RegularizedLeastSquaresFISTASolver.hxx.
References itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::SetwForInitialization().
Referenced by itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::Setb().
void itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::SetwForInitialization | ( | const VectorPointer & | w | ) |
Definition at line 111 of file itkL1RegularizedLeastSquaresFISTASolver.hxx.
References utlException, and itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::VerifyInputs().
Referenced by itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::Setw().
|
virtual |
Reimplemented from itk::IterativeSolverBase< TPrecision >.
Definition at line 180 of file itkL1RegularizedLeastSquaresFISTASolver.hxx.
References itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::EvaluateCostFunction(), and utlShowPosition.
Referenced by itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::Initialize().
|
virtual |
|
virtual |
|
virtual |
Reimplemented from itk::SolverBase< TPrecision >.
Definition at line 125 of file itkL1RegularizedLeastSquaresFISTASolver.hxx.
References itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::InternalClone(), and utlException.
Referenced by itk::L1RegularizedLeastSquaresFISTASolver< TPrecision >::SetwForInitialization().
|
protected |
MxN matrix
Definition at line 138 of file itkL1RegularizedLeastSquaresFISTASolver.h.
|
private |
Definition at line 151 of file itkL1RegularizedLeastSquaresFISTASolver.h.
|
private |
Definition at line 152 of file itkL1RegularizedLeastSquaresFISTASolver.h.
|
private |
Definition at line 153 of file itkL1RegularizedLeastSquaresFISTASolver.h.
|
protected |
Mx1 vector
Definition at line 140 of file itkL1RegularizedLeastSquaresFISTASolver.h.
|
private |
Definition at line 159 of file itkL1RegularizedLeastSquaresFISTASolver.h.
|
private |
Definition at line 154 of file itkL1RegularizedLeastSquaresFISTASolver.h.
|
protected |
Definition at line 145 of file itkL1RegularizedLeastSquaresFISTASolver.h.
|
protected |
N dimensional vector for L1 regularization.
Definition at line 143 of file itkL1RegularizedLeastSquaresFISTASolver.h.
|
private |
Definition at line 157 of file itkL1RegularizedLeastSquaresFISTASolver.h.