Orfeo Toolbox  3.16
itkSingleValuedNonLinearVnlOptimizer.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Insight Segmentation & Registration Toolkit
4  Module: $RCSfile: itkSingleValuedNonLinearVnlOptimizer.h,v $
5  Language: C++
6  Date: $Date: 2007-03-22 21:39:38 $
7  Version: $Revision: 1.26 $
8 
9  Copyright (c) Insight Software Consortium. All rights reserved.
10  See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
11 
12  This software is distributed WITHOUT ANY WARRANTY; without even
13  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14  PURPOSE. See the above copyright notices for more information.
15 
16 =========================================================================*/
17 #ifndef __itkSingleValuedNonLinearVnlOptimizer_h
18 #define __itkSingleValuedNonLinearVnlOptimizer_h
19 
22 #include "itkCommand.h"
23 
24 
25 namespace itk
26 {
27 
38 {
39 public:
45 
47  itkTypeMacro( SingleValuedNonLinearVnlOptimizer,
48  SingleValueNonLinearOptimizer );
49 
55 
62  virtual void SetCostFunction( SingleValuedCostFunction * costFunction ) = 0;
63 
69  itkGetConstReferenceMacro( Maximize, bool );
70  itkSetMacro( Maximize, bool );
71  itkBooleanMacro( Maximize );
72  bool GetMinimize( ) const
73  { return !m_Maximize; }
74  void SetMinimize(bool v)
75  { this->SetMaximize(!v); }
76  void MinimizeOn()
77  { this->MaximizeOff(); }
78  void MinimizeOff()
79  { this->MaximizeOn(); }
80 
86  itkGetConstReferenceMacro(CachedValue, MeasureType);
87  itkGetConstReferenceMacro(CachedDerivative, DerivativeType);
88  itkGetConstReferenceMacro(CachedCurrentPosition, ParametersType);
89 
90 protected:
93 
95 
96  void SetCostFunctionAdaptor( CostFunctionAdaptorType * adaptor );
97  const CostFunctionAdaptorType * GetCostFunctionAdaptor( void ) const;
98  CostFunctionAdaptorType * GetCostFunctionAdaptor( void );
99 
102  CostFunctionAdaptorType * GetNonConstCostFunctionAdaptor( void ) const;
103 
105  void PrintSelf(std::ostream& os, Indent indent) const;
106 
107 private:
109  void IterationReport( const EventObject & event );
110 
111  SingleValuedNonLinearVnlOptimizer(const Self&); //purposely not implemented
112  void operator=(const Self&); //purposely not implemented
113 
115 
117 
119 
123 };
124 
125 } // end namespace itk
126 
127 #endif

Generated at Sun Feb 3 2013 00:07:35 for Orfeo Toolbox with doxygen 1.8.1.1