00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __frePowellSOOptimizerController_h
00023 #define __frePowellSOOptimizerController_h
00024
00025 #include "freSetupOptimizationOptimizerControllerBase.h"
00026
00027 #include "frePowellSOOptimizer.h"
00028
00029 namespace FREE
00030 {
00031
00037 freControllerIDMacro(PowellSOOptimizerController, "Powell SO Optimizer");
00038 class PowellSOOptimizerController : public SetupOptimizationOptimizerControllerBase<PowellSOOptimizer>
00039 {
00040 public:
00041 itkTypeMacro(PowellSOOptimizerController, SetupOptimizationOptimizerControllerBase);
00042
00043 typedef PowellSOOptimizer ComponentType;
00044 typedef SetupOptimizationOptimizerControllerBase<ComponentType> Superclass;
00045
00046 DeclareParameterMacro(MaximumLineIteration);
00047 DeclareParameterMacro(StepLength);
00048 DeclareParameterMacro(StepTolerance);
00049 DeclareParameterMacro(ValueTolerance);
00050
00051 virtual long GetMaxIterationCount(const SessionComponentCache* pComponentCache, unsigned int iResolutionLevel = 0) const;
00052
00053 PowellSOOptimizerController();
00054
00055 protected:
00056 virtual void GenerateProfile(CtrlProfile::ControllerProfile& profile,
00057 const SessionComponentCache* pComponentCache,
00058 bool bRegardOldSetup) const;
00059
00060 virtual void ActualizeMainComponent(ComponentType* pMainComponent,
00061 SessionComponentCache* pComponentCache,
00062 SessionInfo* pSessionInfo,
00063 const unsigned int& iActLevel) const;
00064
00065 virtual void SetStatisticEntryMainComponent(StatisticEntry& rStatisticEntry,
00066 ComponentType* pMainComponent,
00067 SessionComponentCache* pMainComponentCache,
00068 SessionInfo* pSessionInfo,
00069 StatisticDictionary& rDictionary) const;
00070 };
00071
00072 }
00073
00074 #endif