1 #ifndef BINORMALDISTRIBUTION_H
3 #define BINORMALDISTRIBUTION_H
12 BinormalDistribution(
double mu,
double sigma,
double rho,
14 double minVal = -std::numeric_limits<double>::infinity(),
15 double maxVal = std::numeric_limits<double>::infinity());
16 BinormalDistribution(
double muX,
double muY,
double sigmaX,
double sigmaY,
double rho,
18 double minValX = -std::numeric_limits<double>::infinity(),
19 double maxValX = std::numeric_limits<double>::infinity(),
20 double minValY = -std::numeric_limits<double>::infinity(),
21 double maxValY = std::numeric_limits<double>::infinity());
22 ~BinormalDistribution();
25 double pickMarginalX()
const;
26 double pickMarginalY()
const;
27 double pickConditionalOnX(
double x)
const;
28 double pickConditionalOnY(
double y)
const;
30 bool isSymmetric()
const {
return m_isSymm; }
31 double getMeanX()
const {
return m_muX; }
32 double getMeanY()
const {
return m_muY; }
33 double getSigmaX()
const {
return m_sigmaX; }
34 double getSigmaY()
const {
return m_sigmaY; }
35 double getMinX()
const {
return m_minX; }
36 double getMaxX()
const {
return m_maxX; }
37 double getMinY()
const {
return m_minY; }
38 double getMaxY()
const {
return m_maxY; }
39 double getRho()
const {
return m_rho; }
41 double pickClippedGaussian(
double mean,
double sigma,
double minVal,
double maxVal)
const;
42 double pickConditional(
double val,
double meanDest,
double meanCond,
double sigmaDest,
double sigmaCond,
double minVal,
double maxVal)
const;
45 double m_muX, m_sigmaX;
46 double m_minX, m_maxX;
47 double m_muY, m_sigmaY;
48 double m_minY, m_maxY;
52 #endif // BINORMALDISTRIBUTION_H
virtual Point2D pickPoint() const =0
Pick a point according to a specific distrubution, specified in a subclass of ProbabilityDistribution...
This class allows you to generate random numbers, and uses the GNU Scientific Library for this...
Definition: gslrandomnumbergenerator.h:16
Abstract base class for 2D probability distribution implementations so that they can be used intercha...
Definition: probabilitydistribution2d.h:17