go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxStandardGradientDescent.h
Go to the documentation of this file.
1 /*======================================================================
2 
3  This file is part of the elastix software.
4 
5  Copyright (c) University Medical Center Utrecht. All rights reserved.
6  See src/CopyrightElastix.txt or http://elastix.isi.uu.nl/legal.php for
7  details.
8 
9  This software is distributed WITHOUT ANY WARRANTY; without even
10  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11  PURPOSE. See the above copyright notices for more information.
12 
13 ======================================================================*/
14 #ifndef __elxStandardGradientDescent_h
15 #define __elxStandardGradientDescent_h
16 
17 #include "elxIncludes.h" // include first to avoid MSVS warning
19 
20 namespace elastix
21 {
22 
63 template< class TElastix >
65  public
67  public
68  OptimizerBase< TElastix >
69 {
70 public:
71 
76  typedef itk::SmartPointer< Self > Pointer;
77  typedef itk::SmartPointer< const Self > ConstPointer;
78 
80  itkNewMacro( Self );
81 
84 
89  elxClassNameMacro( "StandardGradientDescent" );
90 
93  typedef Superclass1::CostFunctionPointer CostFunctionPointer;
95 
104 
107 
110  virtual void BeforeRegistration( void );
111 
112  virtual void BeforeEachResolution( void );
113 
114  virtual void AfterEachResolution( void );
115 
116  virtual void AfterEachIteration( void );
117 
118  virtual void AfterRegistration( void );
119 
122  virtual void StartOptimization( void );
123 
125  virtual void MetricErrorResponse( itk::ExceptionObject & err );
126 
130  virtual void SetCurrentPositionPublic( const ParametersType & param )
131  {
132  this->Superclass1::SetCurrentPosition( param );
133  }
134 
135 
137  itkSetMacro( MaximumNumberOfSamplingAttempts, unsigned long );
138 
140  itkGetConstReferenceMacro( MaximumNumberOfSamplingAttempts, unsigned long );
141 
142 protected:
143 
146 
147 private:
148 
149  StandardGradientDescent( const Self & ); // purposely not implemented
150  void operator=( const Self & ); // purposely not implemented
151 
156 
157 };
158 
159 } // end namespace elastix
160 
161 #ifndef ITK_MANUAL_INSTANTIATION
162 #include "elxStandardGradientDescent.hxx"
163 #endif
164 
165 #endif // end #ifndef __elxStandardGradientDescent_h
Superclass::RegistrationPointer RegistrationPointer
Superclass2::ConfigurationPointer ConfigurationPointer
virtual void SetCurrentPosition(const ParametersType &param)
A gradient descent optimizer with a decaying gain.
Superclass2::ElastixPointer ElastixPointer
This class is the elastix base class for all Optimizers.
Superclass2::ConfigurationType ConfigurationType
virtual void StartOptimization(void)
Superclass::ElastixType ElastixType
Superclass::ConfigurationPointer ConfigurationPointer
virtual void MetricErrorResponse(itk::ExceptionObject &err)
Superclass2::RegistrationType RegistrationType
This class implements a gradient descent optimizer with a decaying gain.
Superclass1::ParametersType ParametersType
Superclass::ElastixPointer ElastixPointer
virtual void AfterEachResolution(void)
virtual void BeforeEachResolution(void)
Superclass2::RegistrationPointer RegistrationPointer
Superclass::ConfigurationType ConfigurationType
virtual void BeforeRegistration(void)
virtual void AfterEachIteration(void)
Superclass1::CostFunctionPointer CostFunctionPointer
itk::Optimizer ITKBaseType
itk::SmartPointer< const Self > ConstPointer
virtual void AfterRegistration(void)
virtual void SetCurrentPositionPublic(const ParametersType &param)
Superclass1::CostFunctionType CostFunctionType
Superclass1::StopConditionType StopConditionType
Superclass::RegistrationType RegistrationType
StandardGradientDescentOptimizer Superclass1
elxClassNameMacro("StandardGradientDescent")


Generated on 11-03-2014 for elastix by doxygen 1.8.6 elastix logo