home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / Samples / C-SSP.ARJ / MOVEAV.C < prev    next >
Encoding:
Text File  |  1984-08-12  |  826 b   |  43 lines

  1.    moveav(a,n,l,b)
  2.  
  3.       /* the purpose of this function is to smooth out irregularities */
  4.       /* in a given time series in order to exhibit the trend.        */
  5.  
  6.       int l,n;
  7.       float a[],b[];
  8.  
  9.    {
  10.       int i,j,jn,k,kk,md,mh,ms,nn;
  11.       float al,s,temp;
  12.  
  13.       al = l;
  14.       mh = l/2;
  15.  
  16.       for(i = 0; i <= n-1; i++)
  17.        b[i] = 0.;
  18.  
  19.       k = l - 1;
  20.       if (n < l) return;
  21.       nn = n - k;
  22.  
  23.       for(j = 1; j <= nn; j++)
  24.       {
  25.        jn = j + k;
  26.        s = 0.;
  27.        for(i = j; i <= jn; i++)
  28.         s = s + a[i-1];
  29.        kk = j + mh;
  30.        b[kk-1] = s/al;
  31.       }
  32.       if ((l - (l/2)*2) != 0) return;
  33.       ms = mh + 1;
  34.       md = mh + nn - 1;
  35.  
  36.       for(i = ms; i <= md; i++)
  37.       {
  38.        temp = (b[i-1] + b[i])/2.;
  39.        b[i-1] = temp;
  40.       }
  41.    }
  42.  
  43.