53 lines
1.2 KiB
C++
53 lines
1.2 KiB
C++
//-----------------------------------------------------------------------------
|
|
// t-rng.cpp
|
|
//-----------------------------------------------------------------------------
|
|
|
|
// This file really needs to be implementes usign some stringent tests, for now
|
|
// we simply check that the impementation of some methods does generally work...
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
#include <config.h>
|
|
#endif
|
|
|
|
#include <iostream>
|
|
#include <eo>
|
|
#include <utils/eoRNG.h>
|
|
|
|
|
|
using namespace std;
|
|
|
|
|
|
int main()
|
|
{
|
|
const size_t num(10000);
|
|
double mean(100.);
|
|
double sigma(5.);
|
|
double sum(0.);
|
|
for(size_t i=0; i<num; ++i)
|
|
sum += abs(rng.normal(sigma));
|
|
sum /= double(num);
|
|
if(sum > sigma / 0.68) {
|
|
cerr << "Normal distribution seems out of bounds; "
|
|
<< "rerun to make sure it wasn't a statistical outlier" << endl;
|
|
return -1;
|
|
}
|
|
sum = 0.;
|
|
for(size_t i=0; i<num; ++i)
|
|
sum += abs(rng.normal(mean, sigma) - mean);
|
|
sum /= double(num);
|
|
if(sum > sigma / 0.68) {
|
|
cerr << "Normal distribution seems out of bounds; "
|
|
<< "rerun to make sure it wasn't a statistical outlier" << endl;
|
|
return -1;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
|
|
// Local Variables:
|
|
// coding: iso-8859-1
|
|
// mode: C++
|
|
// c-file-offsets: ((c . 0))
|
|
// c-file-style: "Stroustrup"
|
|
// fill-column: 80
|
|
// End:
|