go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxCMAEvolutionStrategy.h
Go to the documentation of this file.
00001 /*======================================================================
00002 
00003   This file is part of the elastix software.
00004 
00005   Copyright (c) University Medical Center Utrecht. All rights reserved.
00006   See src/CopyrightElastix.txt or http://elastix.isi.uu.nl/legal.php for
00007   details.
00008 
00009      This software is distributed WITHOUT ANY WARRANTY; without even
00010      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00011      PURPOSE. See the above copyright notices for more information.
00012 
00013 ======================================================================*/
00014 
00015 #ifndef __elxCMAEvolutionStrategy_h
00016 #define __elxCMAEvolutionStrategy_h
00017 
00018 #include "itkCMAEvolutionStrategyOptimizer.h"
00019 #include "elxIncludes.h"
00020 
00021 namespace elastix
00022 {
00023 using namespace itk;
00024 
00025 
00113   template <class TElastix>
00114     class CMAEvolutionStrategy :
00115     public
00116       itk::CMAEvolutionStrategyOptimizer,
00117     public
00118       OptimizerBase<TElastix>
00119   {
00120   public:
00121 
00123     typedef CMAEvolutionStrategy                    Self;
00124     typedef CMAEvolutionStrategyOptimizer           Superclass1;
00125     typedef OptimizerBase<TElastix>             Superclass2;
00126     typedef SmartPointer<Self>                  Pointer;
00127     typedef SmartPointer<const Self>            ConstPointer;
00128 
00130     itkNewMacro( Self );
00131 
00133     itkTypeMacro( CMAEvolutionStrategy, CMAEvolutionStrategyOptimizer );
00134 
00139     elxClassNameMacro( "CMAEvolutionStrategy" );
00140 
00142     typedef Superclass1::CostFunctionType                   CostFunctionType;
00143     typedef Superclass1::CostFunctionPointer                CostFunctionPointer;
00144     typedef Superclass1::StopConditionType                  StopConditionType;
00145     typedef Superclass1::ParametersType                     ParametersType;
00146     typedef Superclass1::DerivativeType                     DerivativeType;
00147     typedef Superclass1::ScalesType                         ScalesType;
00148 
00150     typedef typename Superclass2::ElastixType           ElastixType;
00151     typedef typename Superclass2::ElastixPointer        ElastixPointer;
00152     typedef typename Superclass2::ConfigurationType     ConfigurationType;
00153     typedef typename Superclass2::ConfigurationPointer  ConfigurationPointer;
00154     typedef typename Superclass2::RegistrationType      RegistrationType;
00155     typedef typename Superclass2::RegistrationPointer   RegistrationPointer;
00156     typedef typename Superclass2::ITKBaseType           ITKBaseType;
00157 
00158 
00161     virtual void StartOptimization(void);
00162 
00165     virtual void BeforeRegistration(void);
00166     virtual void BeforeEachResolution(void);
00167     virtual void AfterEachResolution(void);
00168     virtual void AfterEachIteration(void);
00169     virtual void AfterRegistration(void);
00170 
00171 
00172   protected:
00173 
00174     CMAEvolutionStrategy(){};
00175     virtual ~CMAEvolutionStrategy() {};
00176 
00178     virtual void InitializeProgressVariables(void);
00179 
00180   private:
00181 
00182     CMAEvolutionStrategy( const Self& );  // purposely not implemented
00183     void operator=( const Self& );              // purposely not implemented
00184 
00185 
00186   }; // end class CMAEvolutionStrategy
00187 
00188 
00189 } // end namespace elastix
00190 
00191 #ifndef ITK_MANUAL_INSTANTIATION
00192 #include "elxCMAEvolutionStrategy.hxx"
00193 #endif
00194 
00195 #endif // end #ifndef __elxCMAEvolutionStrategy_h
00196 


Generated on 24-05-2012 for elastix by doxygen 1.7.6.1 elastix logo