Main Page | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals

hist.cpp File Reference

#include "StdAfx.h"
#include "include.h"
#include "extreal.h"
#include "newran.h"

Include dependency graph for hist.cpp:

Include dependency graph

Go to the source code of this file.

Defines

#define WANT_MATH
#define al_trace   printf

Functions

void Histogram (Random *rx, int n)
void Hist (Random *rx, int n, const int cnt)
void alHistogram (Random *rx, int n, Real *a, const int ncount)


Define Documentation

#define al_trace   printf
 

Definition at line 14 of file hist.cpp.

Referenced by alHistogram(), Hist(), and Histogram().

#define WANT_MATH
 

Definition at line 4 of file hist.cpp.


Function Documentation

void alHistogram Random rx,
int  n,
Real a,
const int  ncount
 

Definition at line 91 of file hist.cpp.

References al_trace, Random::Mean(), Random::Name(), Real, and Random::Variance().

00092 {
00093    int i,j; int *count = new int[ncount];
00094 
00095    Real amax = a[0]; Real amin = a[0]; Real mean = a[0]; Real sd = 0;
00096    for (i = 1; i < n; i++)
00097    {
00098       if (amin > a[i]) amin = a[i]; else if (amax < a[i]) amax = a[i];
00099       mean += a[i];
00100    }
00101    mean /= n;
00102    for (i = 0; i < ncount; i++) count[i]=0;
00103    for (i = 0; i < n; i++)
00104    {
00105      Real rat= (amax != amin) ? (a[i] - amin)/(amax - amin) : 1.0;
00106      j = (int)( (double( ncount ) - 0.001) * rat ); count[j]++;
00107      Real diff = a[i] - mean; sd += diff*diff;
00108    }
00109    sd = sqrt(sd/(n-1));
00110 /*
00111    j = 0;
00112    for (i = 0; i < ncount; i++) { if (j < count[i]) j = count[i]; }
00113    if (j > 70) { for (i = 0; i < ncount; i++) count[i] = (int)((70L*count[i])/j); }
00114 */
00115    al_trace( "\n" );
00116    for (i = 0; i < ncount; i++)
00117         {
00118                 al_trace( "\n%04d|" , i );
00119                 for (j = 1; j < count[i]; j = j+1) 
00120                         al_trace( "*" );
00121         }
00122    al_trace( "\n%s\np. mean = %9f, p. var = %9f\ns. mean = %9f, s. var = %9f\n" , 
00123                 rx->Name() , rx->Mean() , rx->Variance() , mean , sd * sd );
00124 
00125         delete [] count;
00126 }

void Hist Random rx,
int  n,
const int  cnt
 

Definition at line 53 of file hist.cpp.

References al_trace, Random::Next(), and Real.

Referenced by main().

00054 {
00055    int i,j; int *count = new int[cnt];
00056    Real* a = new Real[n];
00057    for (i = 0; i < n; i++) a[i] = rx->Next();
00058    Real amax = a[0]; Real amin = a[0]; Real mean = a[0]; Real sd = 0;
00059    for (i = 1; i < n; i++)
00060    {
00061       if (amin > a[i]) amin = a[i]; else if (amax < a[i]) amax = a[i];
00062       mean += a[i];
00063    }
00064    mean /= n;
00065    for (i = 0; i < cnt ;  i++) count[i]=0;
00066    for (i = 0; i < n; i++)
00067    {
00068      Real rat= (amax != amin) ? (a[i] - amin)/(amax - amin) : 1.0;
00069      j = (int)( (cnt - 0.001) * rat ); count[j]++;
00070      Real diff = a[i] - mean; sd += diff*diff;
00071    }
00072    sd = sqrt(sd/(n-1));
00073    j = 0;
00074    for (i = 0; i < cnt; i++) { if (j < count[i]) j = count[i]; }
00075    if (j > 70) { for (i = 0; i < cnt; i++) if( count[i] )       count[i] = (int)((70L*count[i])/j); }
00076 
00077    al_trace( "\n" );
00078    for (i = 0; i < cnt; i++)
00079         {
00080                 al_trace( "\n%02d|" , i );
00081                 for (j = 1; j < count[i] ; j = j+1) 
00082                         al_trace( "*" );
00083         }
00084 //   al_trace( "\n%s\np. mean = %9f, p. var = %9f\ns. mean = %9f, s. var = %9f\n" , 
00085 //              rx->Name() , rx->Mean() , rx->Variance() , mean , sd * sd );
00086 
00087         delete count;
00088    delete a;
00089 }

void Histogram Random rx,
int  n
 

Definition at line 16 of file hist.cpp.

References al_trace, Random::Next(), and Real.

Referenced by main(), test1(), and test2().

00017 {
00018    int i,j; int count[20];
00019    Real* a = new Real[n];
00020    for (i = 0; i < n; i++) a[i] = rx->Next();
00021    Real amax = a[0]; Real amin = a[0]; Real mean = a[0]; Real sd = 0;
00022    for (i = 1; i < n; i++)
00023    {
00024       if (amin > a[i]) amin = a[i]; else if (amax < a[i]) amax = a[i];
00025       mean += a[i];
00026    }
00027    mean /= n;
00028    for (i = 0; i < 20; i++) count[i]=0;
00029    for (i = 0; i < n; i++)
00030    {
00031      Real rat= (amax != amin) ? (a[i] - amin)/(amax - amin) : 1.0;
00032      j = (int)( 19.999 * rat ); count[j]++;
00033      Real diff = a[i] - mean; sd += diff*diff;
00034    }
00035    sd = sqrt(sd/(n-1));
00036    j = 0;
00037    for (i = 0; i < 20; i++) { if (j < count[i]) j = count[i]; }
00038    if (j > 70) { for (i = 0; i < 20; i++) count[i] = (int)((70L*count[i])/j); }
00039 
00040    al_trace( "\n" );
00041    for (i = 0; i < 20; i++)
00042         {
00043                 al_trace( "\n|" );
00044                 for (j = 1; j < count[i]; j = j+1) 
00045                         al_trace( "*" );
00046         }
00047 /*   al_trace( "\n%s\np. mean = %9f, p. var = %9f\ns. mean = %9f, s. var = %9f\n" , 
00048                 rx->Name() , rx->Mean() , rx->Variance() , mean , sd * sd );*/
00049 
00050    delete a;
00051 }


Generated on Fri Dec 5 04:06:06 2003 for Borqueror by doxygen 1.3.3