home *** CD-ROM | disk | FTP | other *** search
- PROGRAM d12r7(input,output);
- (* driver for routine CORREL *)
- CONST
- n=64;
- n2=128; (* n2=2*nn *)
- pi=3.1415927;
- TYPE
- glnarray = ARRAY [1..n] OF real;
- gl2narray = ARRAY [1..n2] OF real;
- gldarray = gl2narray;
- VAR
- i,j : integer;
- cmp : real;
- data1,data2 : glnarray;
- ans : gl2narray;
-
- (*$I MODFILE.PAS *)
- (*$I FOUR1.PAS *)
-
- (*$I TWOFFT.PAS *)
-
- (*$I REALFT.PAS *)
-
- (*$I CORREL.PAS *)
-
- BEGIN
- FOR i := 1 to n DO BEGIN
- data1[i] := 0.0;
- IF ((i > ((n DIV 2)-(n DIV 8))) AND
- (i < ((n DIV 2)+(n DIV 8)))) THEN
- data1[i] := 1.0;
- data2[i] := data1[i]
- END;
- correl(data1,data2,n,ans);
- (* calculate directly *)
- writeln ('n':3,'CORREL':14,'direct calc.':18);
- FOR i := 0 to 16 DO BEGIN
- cmp := 0.0;
- FOR j := 1 to n DO BEGIN
- cmp := cmp+data1[((i+j-1) MOD n)+1]*data2[j]
- END;
- writeln (i:3,ans[i+1]:15:6,cmp:15:6)
- END
- END.
-