C++ main module for mmsd Package  1.0
STAT_NormalDistribution.h
Go to the documentation of this file.
1 #ifndef STAT_NormalDistribution_H
2 #define STAT_NormalDistribution_H
3 
4 #include "STAT_Distribution.h"
5 #include <boost/math/distributions/normal.hpp>
6 #include <boost/random/normal_distribution.hpp>
7 #include <boost/random/variate_generator.hpp>
8 
9 
18  SP_OBJECT(STAT_NormalDistribution);
19  // ATTRIBUTES
20 
21 private:
22 
23 
24 
25  // ASSOCIATIONS
26  boost::math::normal_distribution<tReal> *mDistribution;
27  boost::random::normal_distribution<tReal> *mRandomDistribution;
28  boost::random::variate_generator<RNGType&,
29  boost::random::normal_distribution<tReal> > *mGenerator;
30 
31 
32 protected:
33  // METHODS
34 
35  // CONSTRUCTORS
36 
39 
40 
41 
42  // DESTRUCTORS
43 
44 
47  virtual ~STAT_NormalDistribution(void);
48 
49 
50 
51 public:
52  //----------------
53  // NEW constructors
54  // ---------------
55 
58  inline static SP::STAT_NormalDistribution New(const tReal& mean,
59  const tReal& sd) {
60  SP::STAT_NormalDistribution p(new STAT_NormalDistribution(),STAT_NormalDistribution::Delete());
61  p->setThis(p);
62  p->setProperties(mean,sd);
63  return p;
64  }
67  inline static SP::STAT_NormalDistribution New() {
68  return New(0,1);
69  }
72  virtual SP::STAT_Distribution NewInstance() const {
73  return New();
74  }
75 
76 
79  virtual void copy(const STAT_Distribution& d) {
80  tReal m=d.mean();
82 
83  setProperties(m,v);
84  }
85  // --------------------
86  // ATTRIBUTES setting
87  // --------------------
88 
89  void setProperties(const tReal& mean,
90  const tReal& sd);
91 
92  // -----------------------
93  // USUAL Functions
94  // ------------------------
95 
96 
99  virtual tReal pdf(const tReal& x) const;
100 
103  virtual tReal cdf(const tReal& x) const;
104 
107  virtual tReal cdfc(const tReal& x) const;
108 
111  virtual void range(tReal& xmin,tReal& xmax) const;
112 
115  virtual tReal mean() const;
116 
119  virtual tReal variance() const;
122  virtual tReal standardDeviation() const;
123 
127  virtual tReal random() const;
128 
131  virtual tReal quantile(const tReal& q) const;
132 
133 
136  virtual void computeSample(const int& n,CORE_RealArray& sample) const;
137 
138 
142  return computeGrowthRate(2,false,0);
143  };
146  virtual tReal adjustGrowthRate(const tReal& rho) {
147  return computeGrowthRate(2,true,rho);
148  };
149 
150  protected:
151  /* \brief return the growth rate of the distribution such that Esperance(exp(-z*X))=2.
152  * @param adjust: is true rescale the parameters of the distribution suach as its growth rate is rho
153  *
154  */
155  virtual tReal computeGrowthRate(const tReal& v,
156  const tBoolean& adjust,
157  const tReal& rho);
158 
159 
160 };
161 
162 #endif
virtual tReal variance() const
compute the variance
Definition: STAT_NormalDistribution.cpp:69
virtual void computeSample(const int &n, CORE_RealArray &sample) const
compute a sample of size n
Definition: STAT_NormalDistribution.cpp:90
virtual tReal cdf(const tReal &x) const
compute the cumulative distribution function at x point
Definition: STAT_NormalDistribution.cpp:53
DEFINE_SPTR(STAT_NormalDistribution)
virtual tReal random() const
random return a random numbers in range
Definition: STAT_NormalDistribution.cpp:84
virtual tReal pdf(const tReal &x) const
compute the probability density function at x point
Definition: STAT_NormalDistribution.cpp:48
This class is the class to describes Normal distribution.
Definition: STAT_NormalDistribution.h:17
virtual tReal mean() const =0
compute the mean
#define tBoolean
Definition: types.h:48
virtual tReal mean() const
compute the mean
Definition: STAT_NormalDistribution.cpp:64
static SP::STAT_NormalDistribution New(const tReal &mean, const tReal &sd)
create a Normal distibution
Definition: STAT_NormalDistribution.h:58
virtual tReal standardDeviation() const
compute the standard deviation
Definition: STAT_NormalDistribution.cpp:74
static SP::STAT_NormalDistribution New()
create a Normal distibution
Definition: STAT_NormalDistribution.h:67
virtual tReal quantile(const tReal &q) const
quantile
Definition: STAT_NormalDistribution.cpp:79
virtual tReal computeGrowthRate()
return the growth rate of the distribution such that Esperance(E(exp(-z*X)))=2
Definition: STAT_NormalDistribution.h:141
virtual tReal adjustGrowthRate(const tReal &rho)
adjuste the parameters of the distribution such that growth rate is rho
Definition: STAT_NormalDistribution.h:146
this class describes an array
Definition: CORE_Array.h:18
virtual void range(tReal &xmin, tReal &xmax) const
compute the range of the distribution
Definition: STAT_NormalDistribution.cpp:40
void setProperties(const tReal &mean, const tReal &sd)
Definition: STAT_NormalDistribution.cpp:24
virtual tReal cdfc(const tReal &x) const
compute the cumulative distribution complement function at x point
Definition: STAT_NormalDistribution.cpp:59
This class is the class to describes general distribution.
Definition: STAT_Distribution.h:25
virtual void copy(const STAT_Distribution &d)
copy the distribution
Definition: STAT_NormalDistribution.h:79
STAT_NormalDistribution()
create an object
Definition: STAT_NormalDistribution.cpp:6
boost::mt19937 RNGType
Definition: STAT_Distribution.h:23
virtual tReal standardDeviation() const =0
compute the standard deviation
#define tReal
Definition: types.h:18
virtual SP::STAT_Distribution NewInstance() const
create a new instance of the distribution
Definition: STAT_NormalDistribution.h:72
virtual ~STAT_NormalDistribution(void)
destroy an object.
Definition: STAT_NormalDistribution.cpp:15
class Free introduced for deleting a smart pointer
Definition: CORE_Object.h:106