/*1:*/
#line 79 "statlib.w"
#define REVDATE "15th February 2003"
/*:1*//*49:*/
#line 2065 "statlib.w"
/*53:*/
#line 2267 "statlib.w"
#include "config.h"
#include <iostream>
#include <exception>
#include <stdexcept>
#include <string>
using namespace std;
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#ifdef HAVE_GETOPT
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#else
#include <getopt.h>
#endif
#include "statlib.h"
/*:53*/
#line 2067 "statlib.w"
;
/*51:*/
#line 2210 "statlib.w"
static void usage(void)
{
cout<<PRODUCT<<" -- Analyse eggsummary files. Call:\n";
cout<<" "<<PRODUCT<<" [options] [infile] [outfile]\n";
cout<<"\n";
cout<<"Options:\n";
cout<<" --copyright Print copyright information\n";
cout<<" -u, --help Print this message\n";
cout<<" --version Print version number\n";
cout<<"\n";
cout<<"by John Walker\n";
cout<<"http://www.fourmilab.ch/\n";
}
/*:51*/
#line 2069 "statlib.w"
;
int main(int argc,char*argv[])
{
extern char*optarg;
int opt;
/*50:*/
#line 2178 "statlib.w"
while((opt= getopt(argc,argv,"nu-:"))!=-1){
switch(opt){
case'u':
case'?':
usage();
return 0;
case'-':
switch(optarg[0]){
case'c':
cout<<"This program is in the public domain.\n";
return 0;
case'h':
usage();
return 0;
case'v':
cout<<PRODUCT<<" "<<VERSION<<"\n";
cout<<"Last revised: "<<REVDATE<<"\n";
cout<<"The latest version is always available\n";
cout<<"at http://www.fourmilab.ch/eggtools/eggshell\n";
return 0;
}
}
}
/*:50*/
#line 2078 "statlib.w"
;
/*52:*/
#line 2229 "statlib.w"
{
int i;
dataTable<int> zot;
dataTable<int> ::iterator z;
#define PR for (z = zot.begin(); z != zot.end(); z++) { cout << *z << " "; } cout << "\n";
for(i= 0;i<10;i++){
zot.push_back(rand()&0x3F);
}
PR;
sort(zot.begin(),zot.end());
PR;
reverse(zot.begin(),zot.end());
PR;
cout<<"Mean = "<<zot.mean()<<"\n";
cout<<"Geometric mean = "<<zot.geometricMean()<<"\n";
cout<<"Harmonic mean = "<<zot.harmonicMean()<<"\n";
cout<<"RMS = "<<zot.RMS()<<"\n";
cout<<"Median = "<<zot.median()<<"\n";
cout<<"Mode = "<<zot.mode()<<"\n";
cout<<"Percentile(0.5) = "<<zot.percentile(0.5)<<"\n";
cout<<"Quartile(1) = "<<zot.quartile(1)<<"\n";
cout<<"Quartile(3) = "<<zot.quartile(3)<<"\n";
cout<<"Variance = "<<zot.variance()<<"\n";
cout<<"Standard deviation = "<<zot.stdev()<<"\n";
cout<<"CentralMoment(3) = "<<zot.centralMoment(3)<<"\n";
cout<<"Skewness = "<<zot.skewness()<<"\n";
cout<<"Kurtosis = "<<zot.kurtosis()<<"\n";
}
/*:52*/
#line 2080 "statlib.w"
;
#if 1
{
normalDistribution nd(100,7.07);
cout<<"Normal dist: mu = "<<nd.get_mu()<<" sigma = "<<
nd.get_sigma()<<" variance = "<<nd.variance()<<"\n";
cout<<" P = "<<nd.CDF_P(110)<<" Q = "<<nd.CDF_Q(110)<<"\n";
nd.writeParameters(cout);
nd.approximateBinomial(200);
cout<<"Normal dist: mu = "<<nd.get_mu()<<" sigma = "<<
nd.get_sigma()<<" variance = "<<nd.variance()<<"\n";
cout<<" P = "<<nd.CDF_P(110)<<" Q = "<<nd.CDF_Q(110)<<
" z = "<<nd.z_score(110)<<"\n";
}
{
poissonDistribution pd(10);
pd.writeParameters(cout);
cout<<"Poisson dist: lambda = "<<pd.get_lambda()<<"\n";
cout<<" P = "<<pd.CDF_P(5)<<" Q = "<<pd.CDF_Q(5)<<"\n";
}
{
chiSquareDistribution xd(32);
xd.writeParameters(cout);
cout<<"Chi-square dist: k = "<<xd.get_k()<<"\n";
cout<<" P = "<<xd.CDF_P(36)<<" Q = "<<xd.CDF_Q(36)<<"\n";
}
{
gammaDistribution gd(7.5,3.75);
gd.writeParameters(cout);
cout<<"Gamma dist: alpha = "<<gd.get_alpha()<<
" lambda = "<<gd.get_lambda()<<"\n";
cout<<" P = "<<gd.CDF_P(2.2)<<" Q = "<<gd.CDF_Q(2.2)<<"\n";
}
{
betaDistribution bd(3,4);
bd.writeParameters(cout);
cout<<"Beta dist: a = "<<bd.get_a()<<
" b = "<<bd.get_b()<<"\n";
cout<<" P = "<<bd.CDF_P(0.4)<<" Q = "<<bd.CDF_Q(0.4)<<"\n";
}
{
tDistribution xd(32);
xd.writeParameters(cout);
cout<<"t dist: k = "<<xd.get_k()<<"\n";
cout<<" P = "<<xd.CDF_P(0.8)<<" Q = "<<xd.CDF_Q(0.8)<<"\n";
}
{
FDistribution fd(12,16);
fd.writeParameters(cout);
cout<<"F dist: u = "<<fd.get_u()<<" v = "<<fd.get_v()<<"\n";
cout<<" P = "<<fd.CDF_P(0.8)<<" Q = "<<fd.CDF_Q(0.8)<<"\n";
}
{
binomialDistribution bd(200,0.5);
cout<<"Binomial dist: n = "<<bd.get_n()<<" r = "<<
bd.get_r()<<" variance = "<<bd.variance()<<"\n";
cout<<" P = "<<bd.CDF_P(110)<<" Q = "<<bd.CDF_Q(110)<<
" z = "<<bd.z_score(110)<<"\n";
bd.writeParameters(cout);
}
{
negativeBinomialDistribution bd(10,0.5);
cout<<"Negative binomial dist: n = "<<bd.get_n()<<" r = "<<
bd.get_r()<<" variance = "<<bd.variance()<<"\n";
cout<<" P = "<<bd.CDF_P(15)<<" Q = "<<bd.CDF_Q(15)<<"\n";
bd.writeParameters(cout);
}
#endif
return 0;
}
/*:49*/
syntax highlighted by Code2HTML, v. 0.9.1