fourn.dem

来自「Delphi Pascal 数据挖掘领域算法包 数值算法大全」· DEM 代码 · 共 53 行

DEM
53
字号
PROGRAM d12r13(input,output);
(* driver for routine FOURN *)
CONST
   ndim=3;
   ndat2=1024;
TYPE
   gldarray = ARRAY [1..ndat2] OF real;
   glnnarray = ARRAY [1..ndim] OF integer;
VAR
   i,isign,j,k,l,ll,ndum : integer;
   data : gldarray;
   nn : glnnarray;

(*$I MODFILE.PAS *)
(*$I FOURN.PAS *)

BEGIN
   ndum := 2;
   FOR i := 1 to ndim DO BEGIN
      ndum := ndum*2;
      nn[i] := ndum
   END;
   FOR i := 1 to nn[3] DO BEGIN
      FOR j := 1 to nn[2] DO BEGIN
         FOR k := 1 to nn[1] DO BEGIN
            l := k+(j-1)*nn[1]+(i-1)*nn[2]*nn[1];
            ll := 2*l-1;
            data[ll] := ll;
            data[ll+1] := ll+1
         END
      END
   END;
   isign := +1;
   fourn(data,nn,ndim,isign);
   isign := -1;
   writeln('Double 3-dimensional transform');
   writeln;
   writeln('Double transf.':22,'Original data':24,'Ratio':20);
   writeln('real':10,'imag.':13,'real':12,'imag.':13,'real':11,'imag.':13);
   writeln;
   fourn(data,nn,ndim,isign);
   FOR i := 1 to 4 DO BEGIN
      j := 2*i;
      k := 2*j;
      l := k+(j-1)*nn[1]+(i-1)*nn[2]*nn[1];
      ll := 2*l-1;
      writeln(data[ll]:12:2,data[ll+1]:12:2,ll:10,ll+1:12,
         data[ll]/ll:14:2,data[ll+1]/(ll+1):12:2)
   END;
   writeln;
   writeln('The product of transform lengths is:',nn[1]*nn[2]*nn[3]:4)
END.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?