00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
#ifndef __itkNormalVariateGenerator_h
00018
#define __itkNormalVariateGenerator_h
00019
00020
#include "itkObjectFactory.h"
00021
#include "itkRandomVariateGeneratorBase.h"
00022
00023
namespace itk {
00024
namespace Statistics {
00025
00091 class ITK_EXPORT NormalVariateGenerator :
00092
public RandomVariateGeneratorBase
00093 {
00094
public:
00096 typedef NormalVariateGenerator
Self ;
00097 typedef RandomVariateGeneratorBase Superclass;
00098 typedef SmartPointer<Self> Pointer;
00099 typedef SmartPointer<const Self> ConstPointer;
00100
00102
itkTypeMacro(NormalVariateGenerator,
00103
RandomVariateGeneratorBase );
00104
00106
itkNewMacro(
Self);
00107
00109
void Initialize(
int randomSeed) ;
00110
00112
double GetVariate() ;
00113
00114
protected:
00115 NormalVariateGenerator() ;
00116
virtual ~NormalVariateGenerator() ;
00117
virtual void PrintSelf(std::ostream& os,
Indent indent)
const ;
00118
00120
double FastNorm (
void) ;
00121
00122
private:
00123
double Scale ;
00124
double Rscale ;
00125
double Rcons ;
00126
int ELEN ;
00127
int LEN ;
00128
int LMASK ;
00129
int TLEN ;
00130
00131
int gaussfaze, *gausssave;
00132
double GScale;
00133
00134
int* vec1 ;
00135
int nslew;
00136
int irs, lseed;
00137
double chic1, chic2, actualRSD;
00138 } ;
00139
00140 }
00141 }
00142
#endif