00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __freContinuousLBFGSOptimizerController_h
00023 #define __freContinuousLBFGSOptimizerController_h
00024
00025 #include "freSVNonLinearVNLOptimizerControllerBase.h"
00026
00027 #include "itkContinuousLBFGSOptimizer.h"
00028
00029 namespace FREE
00030 {
00031
00044 freControllerIDMacro(ContinuousLBFGSOptimizerController, "Continuous LBFGS Optimizer");
00045 class ContinuousLBFGSOptimizerController : public SVNonLinearVNLOptimizerControllerBase<itk::ContinuousLBFGSOptimizer>
00046 {
00047 public:
00048 itkTypeMacro(ContinuousLBFGSOptimizerController, SVNonLinearVNLOptimizerControllerBase);
00049
00050 typedef itk::ContinuousLBFGSOptimizer ComponentType;
00051 typedef SVNonLinearVNLOptimizerControllerBase<ComponentType> Superclass;
00052
00053 DeclareParameterMacro(GradConvTolerance);
00054 DeclareParameterMacro(LineSearchAccuracy);
00055 DeclareParameterMacro(DefaultStepLength);
00056 DeclareParameterMacro(TraceOn);
00057
00058 ContinuousLBFGSOptimizerController();
00059
00060 protected:
00061 virtual void GenerateProfile(CtrlProfile::ControllerProfile& profile,
00062 const SessionComponentCache* pComponentCache,
00063 bool bRegardOldSetup) const;
00064
00065 virtual void ActualizeMainComponent(ComponentType* pMainComponent,
00066 SessionComponentCache* pComponentCache,
00067 SessionInfo* pSessionInfo,
00068 const unsigned int& iActLevel) const;
00069
00070
00071 virtual void SetStatisticEntryMainComponent(StatisticEntry& rStatisticEntry,
00072 ComponentType* pMainComponent,
00073 SessionComponentCache* pMainComponentCache,
00074 SessionInfo* pSessionInfo,
00075 StatisticDictionary& rDictionary) const;
00076 };
00077
00078
00079 }
00080
00081 #endif