go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkScaledSingleValuedNonLinearOptimizer.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 
15 #ifndef __ScaledSingleValuedNonLinearOptimizer_h
16 #define __ScaledSingleValuedNonLinearOptimizer_h
17 
18 #include "itkSingleValuedNonLinearOptimizer.h"
20 
21 namespace itk
22 {
61 {
62 public:
63 
67  typedef SmartPointer< Self > Pointer;
68  typedef SmartPointer< const Self > ConstPointer;
69 
71  itkNewMacro( Self );
72 
76 
78  typedef Superclass::MeasureType MeasureType;
79  typedef Superclass::ParametersType ParametersType;
80  typedef Superclass::DerivativeType DerivativeType;
81  typedef Superclass::CostFunctionType CostFunctionType;
82 
83  typedef NonLinearOptimizer::ScalesType ScalesType;
86 
94  virtual void InitializeScales( void );
95 
97  virtual void SetCostFunction( CostFunctionType * costFunction );
98 
102  virtual void SetUseScales( bool arg );
103 
104  bool GetUseScales( void ) const;
105 
107  itkGetConstReferenceMacro( ScaledCurrentPosition, ParametersType );
108 
112  virtual const ParametersType & GetCurrentPosition( void ) const;
113 
115  itkGetConstObjectMacro( ScaledCostFunction, ScaledCostFunctionType );
116 
121  itkBooleanMacro( Maximize );
122  virtual void SetMaximize( bool _arg );
123 
124  itkGetConstMacro( Maximize, bool );
125 
126 protected:
127 
132 
134  void PrintSelf( std::ostream & os, Indent indent ) const;
135 
139 
141  virtual void SetScaledCurrentPosition( const ParametersType & parameters );
142 
154  virtual void SetCurrentPosition( const ParametersType & param );
155 
159  virtual MeasureType GetScaledValue(
160  const ParametersType & parameters ) const;
161 
166  virtual void GetScaledDerivative(
167  const ParametersType & parameters,
168  DerivativeType & derivative ) const;
169 
171  virtual void GetScaledValueAndDerivative(
172  const ParametersType & parameters,
173  MeasureType & value,
174  DerivativeType & derivative ) const;
175 
176 private:
177 
179  ScaledSingleValuedNonLinearOptimizer( const Self & ); // purposely not implemented
181  void operator=( const Self & ); // purposely not implemented
182 
189 
190 };
191 
192 } // end namespace itk
193 
194 #endif //#ifndef __ScaledSingleValuedNonLinearOptimizer_h
virtual void SetCurrentPosition(const ParametersType &param)
virtual void GetScaledValueAndDerivative(const ParametersType &parameters, MeasureType &value, DerivativeType &derivative) const
virtual void GetScaledDerivative(const ParametersType &parameters, DerivativeType &derivative) const
void PrintSelf(std::ostream &os, Indent indent) const
virtual const ParametersType & GetCurrentPosition(void) const
A cost function that applies a scaling to another cost function.
virtual MeasureType GetScaledValue(const ParametersType &parameters) const
virtual void SetScaledCurrentPosition(const ParametersType &parameters)
virtual void SetCostFunction(CostFunctionType *costFunction)


Generated on 27-04-2014 for elastix by doxygen 1.8.6 elastix logo