KrisLibrary  1.0.0
GaussianDistribution.h
1 #ifndef GAUSSIAN_DISTRIBUTION_H
2 #define GAUSSIAN_DISTRIBUTION_H
3 
4 #include "ProbabilityDistribution.h"
5 #include <KrisLibrary/math/gaussian.h>
7 
8 namespace Statistics {
9 
11 {
12  GaussianDistribution(Real mean=0,Real var=1);
13  virtual ~GaussianDistribution() {}
14  virtual void GetParameters(Vector& parameters);
15  virtual void SetParameters(const Vector& parameters);
16  virtual Real PDF(Real value);
17  virtual Real CDF(Real value);
18  virtual Real Mean() { return mean; }
19  virtual Real Variance() { return var; }
20  virtual Real Skewness() { return 0; }
21  virtual Real Kurtosis() { return 0; }
22  virtual Real Sample() { return RandGaussian(mean,Sqrt(var)); }
23  virtual bool CanSample() const { return true; }
24 
25  Real mean,var;
26 };
27 
29 {
31  GaussianMultivariateDistribution(const Vector& mean,const Matrix& cov);
33  virtual void GetParameters(Vector& parameters);
34  virtual void SetParameters(const Vector& parameters);
35  virtual int NumDimensions() { return gaussian.numDims(); }
36  virtual Real PDF(const Vector& value) { return gaussian.probability(value); }
37  virtual Real CDF(const Vector& value) { FatalError("Erf not done yet"); return 0; }
38  virtual void Mean(Vector& mean) { mean = gaussian.mu; }
39  virtual void Covariance(Matrix& var) { gaussian.getCovariance(var); }
40  virtual void Sample(Vector& x) { gaussian.generate(x); }
41  virtual bool CanSample() const { return true; }
42 
43  Gaussian<Real> gaussian;
44 };
45 
46 } //namespace Statistics
47 
48 #endif
Definition: GaussianDistribution.h:10
Definition: ProbabilityDistribution.h:14
Contains all definitions in the statistics directory.
Definition: BernoulliDistribution.h:6
Definition: GaussianDistribution.h:28
Definition: ProbabilityDistribution.h:41
Defines a standard method for random floating-point number generation.