home *** CD-ROM | disk | FTP | other *** search
- moveav(a,n,l,b)
-
- /* the purpose of this function is to smooth out irregularities */
- /* in a given time series in order to exhibit the trend. */
-
- int l,n;
- float a[],b[];
-
- {
- int i,j,jn,k,kk,md,mh,ms,nn;
- float al,s,temp;
-
- al = l;
- mh = l/2;
-
- for(i = 0; i <= n-1; i++)
- b[i] = 0.;
-
- k = l - 1;
- if (n < l) return;
- nn = n - k;
-
- for(j = 1; j <= nn; j++)
- {
- jn = j + k;
- s = 0.;
- for(i = j; i <= jn; i++)
- s = s + a[i-1];
- kk = j + mh;
- b[kk-1] = s/al;
- }
- if ((l - (l/2)*2) != 0) return;
- ms = mh + 1;
- md = mh + nn - 1;
-
- for(i = ms; i <= md; i++)
- {
- temp = (b[i-1] + b[i])/2.;
- b[i-1] = temp;
- }
- }
-