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