home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GEMini Atari
/
GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso
/
files
/
gnu
/
gplibt02
/
trandom.cc
< prev
next >
Wrap
C/C++ Source or Header
|
1993-07-24
|
2KB
|
103 lines
/*
a test file for Random classes
*/
#include <assert.h>
#include <xacg.h>
#include <xmlcg.h>
#include <xsmplsta.h>
#include <xsmplhis.h>
#include <xbinomia.h>
#include <xerlang.h>
#include <xgeom.h>
#include <xhypgeom.h>
#include <xnegexp.h>
#include <xnormal.h>
#include <xlognorm.h>
#include <xpoisson.h>
#include <xuniform.h>
#include <xdiscuni.h>
#include <xweibull.h>
void demo(Random& r)
{
SampleStatistic s;
cout << "five samples:\n";
for (int i = 0; i < 5; ++i)
{
double x = r();
cout << x << " ";
s += x;
}
cout << "\nStatistics for 100 samples:\n";
for (; i < 100; ++i)
{
double x = r();
s += x;
}
cout << "samples: " << s.samples() << " ";
cout << "min: " << s.min() << " ";
cout << "max: " << s.max() << "\n";
cout << "mean: " << s.mean() << " ";
cout << "stdDev: " << s.stdDev() << " ";
cout << "var: " << s.var() << " ";
cout << "confidence(95): " << s.confidence(95) << "\n";
}
main()
{
int i;
ACG gen1;
cout << "five random ACG integers:\n";
for (i = 0; i < 5; ++i)
cout << gen1.asLong() << " ";
cout << "\n";
MLCG gen2;
cout << "five random MLCG integers:\n";
for (i = 0; i < 5; ++i)
cout << gen2.asLong() << " ";
cout << "\n";
Binomial r1( 100, 0.5, &gen1);
cout << "Binomial r1( 100, 0.50, &gen1) ...\n";
demo(r1);
Erlang r2( 2.0, 0.5, &gen1);
cout << "Erlang r2( 2.0, 0.5, &gen1) ...\n";
demo(r2);
Geometric r3( 0.5, &gen1);
cout << "Geometric r3(&gen1, 0.5)...\n";
demo(r3);
HyperGeometric r4( 10.0, 150.0, &gen1);
cout << "HyperGeometric r4( 10.0, 150.0, &gen1)...\n";
demo(r4);
NegativeExpntl r5( 1.0, &gen1);
cout << "NegativeExpntl r5( 1.0, &gen1)...\n";
demo(r5);
Normal r6( 0.0, 1.0, &gen1);
cout << "Normal r6( 0.0, 1.0, &gen1)...\n";
demo(r6);
LogNormal r7( 1.0, 1.0, &gen1);
cout << "LogNormal r7( 1.0, 1.0, &gen1)...\n";
demo(r7);
Poisson r8( 2.0, &gen1);
cout << "Poisson r8( 2.0, &gen1)...\n";
demo(r8);
DiscreteUniform r9( 0, 1, &gen1);
cout << "DiscreteUniform r9( 0.0, 1.0, &gen1)...\n";
demo(r9);
Uniform r10( 0.0, 1.0, &gen1);
cout << "Uniform r10( 0.0, 1.0, &gen1)...\n";
demo(r10);
Weibull r11( 0.5, 1.0, &gen1);
cout << "Weibull r11( 0.5, 1.0, &gen1)...\n";
demo(r11);
cout << "SampleHistogram for 100 Normal samples\n";
SampleHistogram h(-4.0, 4.0);
for (i = 0; i < 100; ++i)
h += r6();
h.printBuckets(cout);
cout << "\nEnd of test\n";
}