00001 /*========================================================================= 00002 00003 Program: F.R.E.E. - flexible registration evaluation engine 00004 Version: v.1.0.0 00005 Date: $Date: 2006/09/01 12:00:00 $ 00006 Module: $RCSfile: freESAdaptiveScaleMutation.h,v $ 00007 Language: C++ 00008 00009 00010 00011 Copyright (c) 2007 Ralf o Floca (Department of Medical Informatics, 00012 Institute for Medical Biometry and Informatics, University of Heidelberg, 00013 Germany). All rights reserved. 00014 See FREECopyright.txt or http://www.mi.med.uni-hd.de/free/copyright.htm 00015 for details. 00016 00017 This software is distributed WITHOUT ANY WARRANTY; without even 00018 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00019 PURPOSE. See the above copyright notices for more information. 00020 00021 =========================================================================*/ 00022 #ifndef __freESAdaptiveScaleMutation_h 00023 #define __freESAdaptiveScaleMutation_h 00024 00025 #include "freESAdaptiveNormalMutation.h" 00026 #include <itkArray.h> 00027 #include "itkNormalVariateGenerator.h" 00028 00029 namespace FREE 00030 { 00031 namespace ES 00032 { 00033 00059 template <class TIndividual> 00060 class ITK_EXPORT AdaptiveScaleMutation: 00061 public AdaptiveNormalMutation<TIndividual> 00062 { 00063 public: 00065 typedef AdaptiveScaleMutation<TIndividual> Self ; 00066 typedef AdaptiveNormalMutation<TIndividual> Superclass; 00067 typedef itk::SmartPointer<Self> Pointer; 00068 typedef itk::SmartPointer<const Self> ConstPointer; 00069 00071 itkNewMacro(Self); 00072 00074 itkTypeMacro(AdaptiveScaleMutation, AdaptiveNormalMutation); 00075 00076 typedef typename Superclass::IndividualType IndividualType; 00077 typedef typename IndividualType::Pointer IndividualPointer; 00078 typedef typename Superclass::PopulationType PopulationType; 00079 typedef typename PopulationType::Pointer PopulationPointer; 00080 00081 virtual double MutateValue(const double& value); 00082 00084 typedef itk::Statistics::NormalVariateGenerator VariateGeneratorType ; 00085 VariateGeneratorType& GetRandomGenerator() {return *(this->m_RandomGenerator.GetPointer());}; 00086 00087 protected: 00088 AdaptiveScaleMutation() ; 00089 00090 virtual void MutateObjectivParameters(IndividualType* pIndividual, PopulationType* pPopulation) const; 00091 00092 private: 00093 AdaptiveScaleMutation(Self const&); // Purposely not implemented. 00094 00095 } ; // end of class 00096 00097 } // end of namespace ES 00098 } // end of namespace FREE 00099 00100 00101 #ifndef ITK_MANUAL_INSTANTIATION 00102 #include "freESAdaptiveScaleMutation.txx" 00103 #endif 00104 00105 #endif
1.5.3 written by Dimitri van Heesch,
© 1997-2000