CluE  1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
unigauss.h
Go to the documentation of this file.
1 #ifndef CLUEUNIGAUSS_H
2 #define CLUEUNIGAUSS_H
3 
4 #include "../distribution/distribution.h"
5 
6 #include <random>
7 
8 #ifndef M_PI
9 #define M_PI 3.14159265358979323846
10 #endif
11 
12 namespace CluE
13 {
14 
20 class UniGauss : public Distribution<double>
21 {
22 public:
23 
24  UniGauss(double m, double v);
25 
29  virtual double density(double const& x) const;
30 
31  template<typename RndEngine> double draw(RndEngine&) const;
32 
33 private:
34  double mean, variance;
35 };
36 
37 template<typename RndEngine>
38 double UniGauss::draw(RndEngine& re) const
39 {
40  std::normal_distribution<> dis(this->mean, this->variance);
41  return dis(re);
42 }
43 
44 }
45 
46 #endif
double variance
Definition: unigauss.h:34
double mean
Definition: unigauss.h:34
Univariate normal distribution.
Definition: unigauss.h:20
virtual double density(double const &x) const
Evaluates the density of the univariate normal distribution at the given point x. ...
Definition: unigauss.cpp:13
UniGauss(double m, double v)
Definition: unigauss.cpp:7
Abstract base class for probability distributions.
Definition: distribution.h:16
double draw(RndEngine &) const
Definition: unigauss.h:38