/* tnrml.c CCMATH mathematics library source code.
*
* Copyright (C) 2000 Daniel A. Atkinson All rights reserved.
* This code may be redistributed under the terms of the GNU library
* public license (LGPL). ( See the lgpl.license file for details.)
* ------------------------------------------------------------------------
*/
/*
Test: nrml() setnrml()
Input parameters: s -> unsigned integer: pseudorandom seed
n -> integer: sample size
*/
#include <math.h>
#include "ccmath.h"
void main(int na,char **av)
{ double x,xm,ssq; unsigned int s;
int n,i,p;
if(na!=3){ printf("para: seed(hex) size\n"); exit(-1);}
sscanf(*++av,"%x",&s); n=atoi(*++av);
printf(" seed= %x\n",s);
printf(" sample size= %d\n",n);
if(n>1000) p=0; else p=1;
/* initialize pseudorandom normal generator */
setnrml(s);
xm=ssq=0.;
for(i=0; i<n ;++i){
/* generate a random normal */
x=nrml();
if(p) printf(" %4d %f\n",i,x);
xm+=x; ssq+=x*x;
}
printf(" xmean= %e mean-sq= %e\n",xm/n,ssq/n);
}
/* Test output
seed= 11b6976b
sample size= 20
0 0.389395
1 -0.415056
2 0.357256
3 -2.008815
4 0.920138
5 -0.299221
6 -0.535197
7 0.122434
8 -0.880706
9 0.212040
10 -0.716048
11 -0.697573
12 0.386809
13 0.488488
14 0.409810
15 0.611474
16 -0.199908
17 -0.150721
18 0.516392
19 0.642420
xmean= -4.232949e-02 mean-sq= 4.608276e-01
*/
syntax highlighted by Code2HTML, v. 0.9.1