go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxConjugateGradient.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright UMC Utrecht and contributors
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 #ifndef __elxConjugateGradient_h
19 #define __elxConjugateGradient_h
20 
21 #include "elxIncludes.h" // include first to avoid MSVS warning
24 
25 namespace elastix
26 {
27 
90 template< class TElastix >
92  public
94  public
95  OptimizerBase< TElastix >
96 {
97 public:
98 
103  typedef itk::SmartPointer< Self > Pointer;
104  typedef itk::SmartPointer< const Self > ConstPointer;
105 
107  itkNewMacro( Self );
108 
111 
116  elxClassNameMacro( "ConjugateGradient" );
117 
120  typedef Superclass1::CostFunctionPointer CostFunctionPointer;
125 
134 
138  typedef itk::ReceptorMemberCommand< Self > EventPassThroughType;
139  typedef typename EventPassThroughType::Pointer EventPassThroughPointer;
140 
143  virtual void StartOptimization( void );
144 
147  virtual void BeforeRegistration( void );
148 
149  virtual void BeforeEachResolution( void );
150 
151  virtual void AfterEachResolution( void );
152 
153  virtual void AfterEachIteration( void );
154 
155  virtual void AfterRegistration( void );
156 
157  itkGetConstMacro( StartLineSearch, bool );
158 
159 protected:
160 
162  virtual ~ConjugateGradient() {}
163 
165 
167  virtual std::string GetLineSearchStopCondition( void ) const;
168 
171  virtual std::string DeterminePhase( void ) const;
172 
176  virtual bool TestConvergence( bool firstLineSearchDone );
177 
182  virtual void LineSearch(
183  const ParametersType searchDir,
184  double & step,
185  ParametersType & x,
186  MeasureType & f,
187  DerivativeType & g );
188 
189 private:
190 
191  ConjugateGradient( const Self & ); // purposely not implemented
192  void operator=( const Self & ); // purposely not implemented
193 
194  void InvokeIterationEvent( const itk::EventObject & event );
195 
202 
203 };
204 
205 } // end namespace elastix
206 
207 #ifndef ITK_MANUAL_INSTANTIATION
208 #include "elxConjugateGradient.hxx"
209 #endif
210 
211 #endif // end #ifndef __elxConjugateGradient_h
elastix::ConjugateGradient::GetLineSearchStopCondition
virtual std::string GetLineSearchStopCondition(void) const
elastix::ConjugateGradient::DeterminePhase
virtual std::string DeterminePhase(void) const
itk::MoreThuenteLineSearchOptimizer
ITK version of the MoreThuente line search algorithm.
Definition: itkMoreThuenteLineSearchOptimizer.h:72
elastix::ConjugateGradient::m_SearchDirectionMagnitude
double m_SearchDirectionMagnitude
Definition: elxConjugateGradient.h:197
elastix::OptimizerBase::RegistrationPointer
Superclass::RegistrationPointer RegistrationPointer
Definition: elxOptimizerBase.h:70
elastix::ConjugateGradient::AfterEachIteration
virtual void AfterEachIteration(void)
elastix::ConjugateGradient::ConfigurationPointer
Superclass2::ConfigurationPointer ConfigurationPointer
Definition: elxConjugateGradient.h:130
elastix::ConjugateGradient::StopConditionType
Superclass1::StopConditionType StopConditionType
Definition: elxConjugateGradient.h:121
elastix::ConjugateGradient::~ConjugateGradient
virtual ~ConjugateGradient()
Definition: elxConjugateGradient.h:162
itk::GenericConjugateGradientOptimizer
A set of conjugate gradient algorithms.
Definition: itkGenericConjugateGradientOptimizer.h:42
SmartPointer< Self >
elastix::ConjugateGradient::EventPassThroughType
itk::ReceptorMemberCommand< Self > EventPassThroughType
Definition: elxConjugateGradient.h:138
elastix::ConjugateGradient::BeforeEachResolution
virtual void BeforeEachResolution(void)
elastix::ConjugateGradient::ElastixType
Superclass2::ElastixType ElastixType
Definition: elxConjugateGradient.h:127
elastix::ConjugateGradient::ITKBaseType
Superclass2::ITKBaseType ITKBaseType
Definition: elxConjugateGradient.h:133
itk::GenericConjugateGradientOptimizer::CostFunctionType
Superclass::CostFunctionType CostFunctionType
Definition: itkGenericConjugateGradientOptimizer.h:56
elastix::OptimizerBase::RegistrationType
Superclass::RegistrationType RegistrationType
Definition: elxOptimizerBase.h:69
elastix::ConjugateGradient::ConstPointer
itk::SmartPointer< const Self > ConstPointer
Definition: elxConjugateGradient.h:104
elastix::OptimizerBase::ConfigurationPointer
Superclass::ConfigurationPointer ConfigurationPointer
Definition: elxOptimizerBase.h:68
elastix::ConjugateGradient::InvokeIterationEvent
void InvokeIterationEvent(const itk::EventObject &event)
elastix::ConjugateGradient::AfterEachResolution
virtual void AfterEachResolution(void)
itkMoreThuenteLineSearchOptimizer.h
elastix::ConjugateGradient::RegistrationType
Superclass2::RegistrationType RegistrationType
Definition: elxConjugateGradient.h:131
elastix::ConjugateGradient::Pointer
itk::SmartPointer< Self > Pointer
Definition: elxConjugateGradient.h:103
elastix::ConjugateGradient::Superclass2
OptimizerBase< TElastix > Superclass2
Definition: elxConjugateGradient.h:102
elastix::ConjugateGradient::m_EventPasser
EventPassThroughPointer m_EventPasser
Definition: elxConjugateGradient.h:196
elastix::ConjugateGradient::Superclass1
GenericConjugateGradientOptimizer Superclass1
Definition: elxConjugateGradient.h:101
elastix::ConjugateGradient::ConjugateGradient
ConjugateGradient(const Self &)
elastix::ConjugateGradient::ParametersType
Superclass1::ParametersType ParametersType
Definition: elxConjugateGradient.h:122
elastix::OptimizerBase
This class is the elastix base class for all Optimizers.
Definition: elxOptimizerBase.h:54
itk::ScaledSingleValuedNonLinearOptimizer::DerivativeType
Superclass::DerivativeType DerivativeType
Definition: itkScaledSingleValuedNonLinearOptimizer.h:83
elastix::ConjugateGradient::AfterRegistration
virtual void AfterRegistration(void)
elastix::ConjugateGradient::LineOptimizerPointer
LineOptimizerType::Pointer LineOptimizerPointer
Definition: elxConjugateGradient.h:137
elastix::ConjugateGradient::elxClassNameMacro
elxClassNameMacro("ConjugateGradient")
itk::GenericConjugateGradientOptimizer::ScalesType
Superclass::ScalesType ScalesType
Definition: itkGenericConjugateGradientOptimizer.h:59
itk::GenericConjugateGradientOptimizer::StopConditionType
StopConditionType
Definition: itkGenericConjugateGradientOptimizer.h:74
elastix::OptimizerBase::ConfigurationType
Superclass::ConfigurationType ConfigurationType
Definition: elxOptimizerBase.h:67
elastix::ConjugateGradient::LineSearch
virtual void LineSearch(const ParametersType searchDir, double &step, ParametersType &x, MeasureType &f, DerivativeType &g)
itkGenericConjugateGradientOptimizer.h
elastix::ConjugateGradient::m_StartLineSearch
bool m_StartLineSearch
Definition: elxConjugateGradient.h:198
elastix::ConjugateGradient::Self
ConjugateGradient Self
Definition: elxConjugateGradient.h:100
itk::ScaledSingleValuedNonLinearOptimizer::MeasureType
Superclass::MeasureType MeasureType
Definition: itkScaledSingleValuedNonLinearOptimizer.h:78
itk::ScaledSingleValuedNonLinearOptimizer
Definition: itkScaledSingleValuedNonLinearOptimizer.h:64
elastix::ConjugateGradient::m_WolfeIsStopCondition
bool m_WolfeIsStopCondition
Definition: elxConjugateGradient.h:201
elastix::ConjugateGradient::CostFunctionPointer
Superclass1::CostFunctionPointer CostFunctionPointer
Definition: elxConjugateGradient.h:120
elastix::OptimizerBase::ElastixPointer
Superclass::ElastixPointer ElastixPointer
Definition: elxOptimizerBase.h:66
elastix::ConjugateGradient::m_StopIfWolfeNotSatisfied
bool m_StopIfWolfeNotSatisfied
Definition: elxConjugateGradient.h:200
elastix::ConjugateGradient::m_GenerateLineSearchIterations
bool m_GenerateLineSearchIterations
Definition: elxConjugateGradient.h:199
elastix::ConjugateGradient::StartOptimization
virtual void StartOptimization(void)
elastix::ConjugateGradient::DerivativeType
Superclass1::DerivativeType DerivativeType
Definition: elxConjugateGradient.h:123
elxIncludes.h
elastix::ConjugateGradient::CostFunctionType
Superclass1::CostFunctionType CostFunctionType
Definition: elxConjugateGradient.h:119
elastix::ConjugateGradient::ConfigurationType
Superclass2::ConfigurationType ConfigurationType
Definition: elxConjugateGradient.h:129
elastix::ConjugateGradient::LineOptimizerType
itk::MoreThuenteLineSearchOptimizer LineOptimizerType
Definition: elxConjugateGradient.h:136
elastix::ConjugateGradient::ConjugateGradient
ConjugateGradient()
itk::ScaledSingleValuedNonLinearOptimizer::ParametersType
Superclass::ParametersType ParametersType
Definition: itkScaledSingleValuedNonLinearOptimizer.h:82
elastix::ConjugateGradient::EventPassThroughPointer
EventPassThroughType::Pointer EventPassThroughPointer
Definition: elxConjugateGradient.h:139
elastix::ConjugateGradient::BeforeRegistration
virtual void BeforeRegistration(void)
elastix::ConjugateGradient::RegistrationPointer
Superclass2::RegistrationPointer RegistrationPointer
Definition: elxConjugateGradient.h:132
elastix::OptimizerBase::ITKBaseType
itk::Optimizer ITKBaseType
Definition: elxOptimizerBase.h:73
elastix::ConjugateGradient
An optimizer based on the itk::GenericConjugateGradientOptimizer.
Definition: elxConjugateGradient.h:96
itk::GenericConjugateGradientOptimizer::DerivativeType
Superclass::DerivativeType DerivativeType
Definition: itkGenericConjugateGradientOptimizer.h:55
elastix::OptimizerBase::ElastixType
Superclass::ElastixType ElastixType
Definition: elxOptimizerBase.h:62
elastix
Definition: elxFixedGenericPyramid.h:25
elastix::ConjugateGradient::ElastixPointer
Superclass2::ElastixPointer ElastixPointer
Definition: elxConjugateGradient.h:128
elastix::ConjugateGradient::m_LineOptimizer
LineOptimizerPointer m_LineOptimizer
Definition: elxConjugateGradient.h:164
elastix::ConjugateGradient::ScalesType
Superclass1::ScalesType ScalesType
Definition: elxConjugateGradient.h:124
elastix::ConjugateGradient::operator=
void operator=(const Self &)
itk::GenericConjugateGradientOptimizer::ParametersType
Superclass::ParametersType ParametersType
Definition: itkGenericConjugateGradientOptimizer.h:52
elastix::ConjugateGradient::TestConvergence
virtual bool TestConvergence(bool firstLineSearchDone)


Generated on OURCE_DATE_EPOCH for elastix by doxygen 1.8.18 elastix logo