KrisLibrary  1.0.0
UniformDistribution.h
1 #ifndef UNIFORM_PROBABILITY_DISTRIBUTION_H
2 #define UNIFORM_PROBABILITY_DISTRIBUTION_H
3 
4 #include "ProbabilityDistribution.h"
6 
7 namespace Statistics {
8 
10 {
11  UniformProbabilityDistribution(Real a=0,Real b=1);
12  virtual ~UniformProbabilityDistribution() {}
13  virtual void GetParameters(Vector& parameters);
14  virtual void SetParameters(const Vector& parameters);
15  virtual Real PDF(Real value);
16  virtual Real CDF(Real value);
17  virtual Real Minimum() { return a; }
18  virtual Real Maximum() { return b; }
19  virtual Real Mean() { return Half*(a+b); }
20  virtual Real Variance() { return Sqr(b-a)/12.0; }
21  virtual Real Skewness() { return 0; }
22  virtual Real Kurtosis() { return -6.0/5.0; }
23  virtual Real Sample() { return Rand(a,b); }
24  virtual bool CanSample() const { return true; }
25 
26  Real a,b;
27 };
28 
30 {
32  BoxProbabilityDistribution(const Vector& a,const Vector& b);
33  virtual ~BoxProbabilityDistribution() {}
34  virtual void GetParameters(Vector& parameters);
35  virtual void SetParameters(const Vector& parameters);
36  virtual int NumDimensions() { return bmin.n; }
37  virtual Real PDF(const Vector& value);
38  virtual Real CDF(const Vector& value);
39  virtual void Minimum(Vector& _bmin) { _bmin=bmin; }
40  virtual void Maximum(Vector& _bmax) { _bmax=bmax; }
41  virtual void Mean(Vector& mean) { mean.add(bmin,bmax); mean.inplaceMul(Half); }
42  virtual void Covariance(Matrix& var);
43  virtual void Sample(Vector& x);
44  virtual bool CanSample() const { return true; }
45  virtual UnivariateProbabilityDistribution* Conditional(int index,const Vector& x);
46  virtual MultivariateProbabilityDistribution* Conditional(const std::vector<int> indices,const Vector& x);
47 
48  Vector bmin,bmax;
49 };
50 
51 } //namespace Statistics
52 
53 #endif
Definition: UniformDistribution.h:29
Definition: ProbabilityDistribution.h:14
Contains all definitions in the statistics directory.
Definition: BernoulliDistribution.h:6
Definition: UniformDistribution.h:9
Real Rand()
Generates a random Real uniformly in [0,1].
Definition: math/random.h:36
Definition: ProbabilityDistribution.h:41
Defines a standard method for random floating-point number generation.