home *** CD-ROM | disk | FTP | other *** search
- PROGRAM d13r19(input,output);
- (* driver for routine KENDL2 *)
- (* look for 'ones-after-zeros' in irbit1 and irbit2 sequences *)
- CONST
- ndat=1000;
- ip=8;
- jp=8;
- TYPE
- gldarray = ARRAY [1..ip,1..jp] OF real;
- pattern = PACKED ARRAY [1..3] OF char;
- VAR
- ifunc,iseed,i,j,k,l,m,n,twoton : integer;
- prob,tau,z : real;
- tab : gldarray;
- txt : ARRAY [1..8] OF pattern;
-
- (*$I MODFILE.PAS *)
- (*$I IRBIT1.PAS *)
-
- (*$I IRBIT2.PAS *)
-
- (*$I ERFCC.PAS *)
-
- (*$I KENDL2.PAS *)
-
- BEGIN
- txt[1] := '000'; txt[2] := '001';
- txt[3] := '010'; txt[4] := '011';
- txt[5] := '100'; txt[6] := '101';
- txt[7] := '110'; txt[8] := '111';
- i := ip;
- j := jp;
- writeln ('Are ones followed by zeros and vice-versa?');
- FOR ifunc := 1 to 2 DO BEGIN
- iseed := 2468;
- IF (ifunc = 1) THEN BEGIN
- writeln('test of irbit1:')
- END ELSE BEGIN
- writeln('test of irbit2:')
- END;
- FOR k := 1 to i DO BEGIN
- FOR l := 1 to j DO BEGIN
- tab[k,l] := 0.0
- END
- END;
- FOR m := 1 to ndat DO BEGIN
- k := 1;
- twoton := 1;
- FOR n := 0 to 2 DO BEGIN
- IF (ifunc = 1) THEN BEGIN
- k := k+irbit1(iseed)*twoton
- END ELSE BEGIN
- k := k+irbit2(iseed)*twoton
- END;
- twoton := 2*twoton
- END;
- l := 1;
- twoton := 1;
- FOR n := 0 to 2 DO BEGIN
- IF (ifunc = 1) THEN BEGIN
- l := l+irbit1(iseed)*twoton
- END ELSE BEGIN
- l := l+irbit2(iseed)*twoton
- END;
- twoton := 2*twoton
- END;
- tab[k,l] := tab[k,l]+1.0
- END;
- kendl2(tab,i,j,ip,jp,tau,z,prob);
- write(' ':4);
- FOR n := 1 to 8 DO BEGIN
- write(txt[n]:6)
- END;
- writeln;
- FOR n := 1 to 8 DO BEGIN
- write(txt[n]:3);
- FOR m := 1 to 8 DO BEGIN
- write(round(tab[n,m]):6)
- END;
- writeln
- END;
- writeln;
- writeln('kendall tau':17,'std. dev.':14,'probability':16);
- writeln(tau:15:6,z:15:6,prob:15:6);
- writeln
- END
- END.
-