00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef __mitkLBFGSOptimizer_h
00012 #define __mitkLBFGSOptimizer_h
00013
00014 #include "mitkOptimizer.h"
00015
00016
00017
00022 class MITK_REGISTRATION_API mitkLBFGSOptimizer : public mitkOptimizer
00023 {
00024 public:
00025 MITK_TYPE(mitkLBFGSOptimizer, mitkOptimizer)
00026 virtual void PrintSelf(ostream &os);
00027 mitkLBFGSOptimizer();
00028
00029 void GetValue( const VectorParameterType& x, ScalarParameterType& f, VectorParameterType& g);
00030
00031 void SetGradientTolerance(ScalarParameterType tol) { m_GradientTolerance = tol; }
00032 ScalarParameterType GetGradientTolerance() { return m_GradientTolerance; }
00033
00034 void SetLineSearchAccuracy(ScalarParameterType acc) { m_LineSearchAccuracy = acc; }
00035 ScalarParameterType GetLineSearchAccuracy() { return m_LineSearchAccuracy; }
00036
00037 void SetDefaultStepLength(ScalarParameterType step) { m_DefaultStepLength = step; }
00038 ScalarParameterType GetDefaultStepLength() { return m_DefaultStepLength; }
00039
00040 void SetMemory(int mem) { m_Memory = mem; }
00041 int GetMemory() { return m_Memory; }
00042
00043 protected:
00044 virtual ~mitkLBFGSOptimizer();
00045 virtual bool Execute();
00046
00047 int m_Memory;
00048 ScalarParameterType m_GradientTolerance;
00049 ScalarParameterType m_LineSearchAccuracy;
00050 ScalarParameterType m_DefaultStepLength;
00051
00052 private:
00053 mitkLBFGSOptimizer(const mitkLBFGSOptimizer&);
00054 void operator = (const mitkLBFGSOptimizer&);
00055
00056 };
00057
00058
00059
00060
00061
00062
00063 #endif
00064