NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
itkConjugateGradientMaxIterOptimizer.h
Go to the documentation of this file.
1 /*=============================================================================
2 
3  NifTK: A software platform for medical image computing.
4 
5  Copyright (c) University College London (UCL). All rights reserved.
6 
7  This software is distributed WITHOUT ANY WARRANTY; without even
8  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
9  PURPOSE.
10 
11  See LICENSE.txt in the top level directory for details.
12 
13 =============================================================================*/
14 
15 #ifndef itkConjugateGradientMaxIterOptimizer_h
16 #define itkConjugateGradientMaxIterOptimizer_h
17 
18 #include <itkSingleValuedNonLinearVnlOptimizer.h>
19 #include <vnl/algo/vnl_conjugate_gradient.h>
20 
21 namespace itk
22 {
23 
30  public SingleValuedNonLinearVnlOptimizer
31 
32 {
33 public:
36  typedef SingleValuedNonLinearVnlOptimizer Superclass;
37  typedef SmartPointer<Self> Pointer;
38  typedef SmartPointer<const Self> ConstPointer;
39 
41  itkNewMacro(Self);
42 
44  itkTypeMacro( ConjugateGradientMaxIterOptimizer, SingleValuedNonLinearOptimizer );
45 
47  typedef vnl_vector<double> InternalParametersType;
48 
50  typedef vnl_conjugate_gradient InternalOptimizerType;
51 
53  vnl_conjugate_gradient * GetOptimizer(void);
54 
56  virtual void SetMaximumNumberOfFunctionEvaluations( unsigned int n );
57  itkGetMacro( MaximumNumberOfFunctionEvaluations, unsigned int );
58 
60  void StartOptimization( void ) override;
61 
63  virtual void SetCostFunction( SingleValuedCostFunction * costFunction ) override;
64 
65 
67  unsigned long GetNumberOfIterations(void) const;
68  unsigned long GetCurrentIteration(void) const;
69 
71  MeasureType GetValue() const;
72 
73 protected:
76 
77  typedef Superclass::CostFunctionAdaptorType CostFunctionAdaptorType;
78 
79 private:
80  ConjugateGradientMaxIterOptimizer(const Self&); //purposely not implemented
81  void operator=(const Self&); //purposely not implemented
82 
84  bool m_OptimizerInitialized;
85  InternalOptimizerType * m_VnlOptimizer;
86  unsigned int m_MaximumNumberOfFunctionEvaluations;
87 
88 };
89 
90 } // end namespace itk
91 
92 #ifndef ITK_MANUAL_INSTANTIATION
93 #include "itkConjugateGradientMaxIterOptimizer.txx"
94 #endif
95 
96 #endif
SmartPointer< Self > Pointer
Definition: itkConjugateGradientMaxIterOptimizer.h:37
Superclass::CostFunctionAdaptorType CostFunctionAdaptorType
Definition: itkConjugateGradientMaxIterOptimizer.h:77
Definition: niftkITKAffineResampleImage.cxx:74
ConjugateGradientMaxIterOptimizer Self
Definition: itkConjugateGradientMaxIterOptimizer.h:35
vnl_conjugate_gradient InternalOptimizerType
Definition: itkConjugateGradientMaxIterOptimizer.h:50
SingleValuedNonLinearVnlOptimizer Superclass
Definition: itkConjugateGradientMaxIterOptimizer.h:36
SmartPointer< const Self > ConstPointer
Definition: itkConjugateGradientMaxIterOptimizer.h:38
GLclampd n
Definition: glew.h:6789
vnl_vector< double > InternalParametersType
Definition: itkConjugateGradientMaxIterOptimizer.h:44
Wrap of the vnl_conjugate_gradient.
Definition: itkConjugateGradientMaxIterOptimizer.h:29