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: freAsymmetricVariateGenerator.h,v $ 00007 00008 00009 Copyright (c) 2007 Ralf o Floca (Department of Medical Informatics, 00010 Institute for Medical Biometry and Informatics, University of Heidelberg, 00011 Germany). All rights reserved. 00012 See FREECopyright.txt or http://www.mi.med.uni-hd.de/free/copyright.htm 00013 for details. 00014 00015 This software is distributed WITHOUT ANY WARRANTY; without even 00016 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00017 PURPOSE. See the above copyright notices for more information. 00018 00019 =========================================================================*/ 00020 #ifndef __freAsymmetricVariateGenerator_h 00021 #define __freAsymmetricVariateGenerator_h 00022 00023 #include "itkMacro.h" 00024 #include "itkObjectFactory.h" 00025 #include "itkRandomVariateGeneratorBase.h" 00026 00027 namespace itk { 00028 namespace Statistics { 00029 00046 class AsymmetricVariateGenerator : 00047 public RandomVariateGeneratorBase 00048 { 00049 public: 00050 00052 typedef AsymmetricVariateGenerator Self ; 00053 typedef RandomVariateGeneratorBase Superclass; 00054 typedef SmartPointer<Self> Pointer; 00055 typedef SmartPointer<const Self> ConstPointer; 00056 00058 itkTypeMacro(AsymmetricVariateGenerator, 00059 RandomVariateGeneratorBase ); 00060 00062 itkNewMacro(Self); 00063 00064 // Methods to reseed 00066 void Initialize( const int randomSeed ); 00067 00068 /* Initialize with vcl_clock time */ 00069 void Initialize(); 00070 00073 virtual double GetVariate(); 00074 00076 double operator()(); 00077 00078 itkSetMacro(Variance, double); 00079 itkGetMacro(Variance, double); 00080 00081 itkSetMacro(Skewness, double); 00082 itkGetMacro(Skewness, double); 00083 00084 itkSetMacro(Gamma, double); 00085 itkGetMacro(Gamma, double); 00086 00087 protected: 00088 AsymmetricVariateGenerator(); 00089 virtual ~AsymmetricVariateGenerator() {}; 00090 virtual void PrintSelf(std::ostream& os, Indent indent) const; 00091 00092 double m_Variance; 00093 double m_Skewness; 00094 double m_Gamma; 00095 00097 double Erf(double x); 00099 double Freq(double x); 00101 double INorm(double z); 00102 } ; // end of class 00103 00104 } // end of namespace Statistics 00105 } // end of namespace itk 00106 00107 #endif 00108 00109
1.5.3 written by Dimitri van Heesch,
© 1997-2000