34 # include "Base/Common/W32Compat.hh"
40 #include <Base/Math/Random.hh>
64 double sigma1, sigma2;
70 cov[0][0] = cos(ang) * cos(ang) * sigma1 + sin(ang) * sin(ang) * sigma2;
71 cov[1][1] = cos(ang) * cos(ang) * sigma2 + sin(ang) * sin(ang) * sigma1;
72 cov[0][1] = (sigma1-sigma2)*cos(ang)*sin(ang);
73 cov[1][0] = (sigma1-sigma2)*cos(ang)*sin(ang);
88 cout <<
"input mean: "<<mean<<endl;
90 cout <<
"input covariance: "<<cov<<endl;
92 vector<Vector2<double> > points;
110 for (
register unsigned int i=0; i<COUNT; i++){
112 omean[0]+=points[i][0];
113 omean[1]+=points[i][1];
118 cout <<
"output mean:" << omean << endl;
121 for (
register unsigned int i=0; i<COUNT; i++){
122 dx = points[i][0]-omean[0];
123 dy = points[i][1]-omean[1];
128 ocov[1][0]=ocov[0][1];
129 ocov/=(double)(COUNT-1);
132 cout <<
"output covariance:" << ocov << endl;
double GetUniformDistributed(const double min, const double max)
on succesive calls return uniform distributed random variable between min and max ...
void Reset()
calls srand() with a seed generated from system call time, also initializes some other variables ...
double GetNormalDistributed(const double mean, const double sigma)
on succesive calls return normal distributed random variable with mean and standard deviation sigma ...
void SetZero()
set the elements of this matrix to zero
class for producing random numbers from different distributions