00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkSingleValuedNonLinearOptimizer_h
00018 #define __itkSingleValuedNonLinearOptimizer_h
00019
00020 #include "itkNonLinearOptimizer.h"
00021 #include "itkSingleValuedCostFunction.h"
00022
00023 namespace itk
00024 {
00025
00033 class ITK_EXPORT SingleValuedNonLinearOptimizer :
00034 public NonLinearOptimizer
00035 {
00036 public:
00038 typedef SingleValuedNonLinearOptimizer Self;
00039 typedef NonLinearOptimizer Superclass;
00040 typedef SmartPointer<Self> Pointer;
00041 typedef SmartPointer<const Self> ConstPointer;
00042
00044 itkNewMacro(Self);
00045
00047 itkTypeMacro( SingleValuedNonLinearOptimizer,
00048 NonLinearOptimizer );
00049
00052 typedef Superclass::ParametersType ParametersType;
00053
00055 typedef SingleValuedCostFunction CostFunctionType;
00056 typedef CostFunctionType::Pointer CostFunctionPointer;
00057
00060 typedef CostFunctionType::MeasureType MeasureType;
00061
00064 typedef CostFunctionType::DerivativeType DerivativeType;
00065
00067 virtual void SetCostFunction( CostFunctionType * costFunction );
00068
00069 protected:
00070 SingleValuedNonLinearOptimizer();
00071 virtual ~SingleValuedNonLinearOptimizer() {}
00072 void PrintSelf(std::ostream& os, Indent indent) const;
00073
00074 CostFunctionPointer m_CostFunction;
00075
00076 private:
00077 SingleValuedNonLinearOptimizer(const Self&);
00078 void operator=(const Self&);
00079
00080 };
00081
00082 }
00083
00084
00085
00086 #endif
00087
00088
00089