home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / vol131 / confine.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1984-04-29  |  637 b   |  27 lines

  1. PROCEDURE confine(VAR x_in,x_out : real_array;
  2.             n,
  3.             std_devs : INTEGER    );
  4.  
  5. VAR
  6.     average,
  7.     diffrnce,
  8.     max        : REAL;
  9.     datum        : INTEGER;
  10.  
  11. BEGIN
  12. x_out[1]    := x_in[1];
  13. FOR datum := 2 TO (n - 1) DO BEGIN
  14.  average    := (x_in[datum - 1] + x_in[datum + 1])/2.0;
  15.  diffrnce    := x_in[datum] - average;
  16.  max        := std_devs * SQR(x_in[datum]);
  17.  IF ABS(diffrnce) < ABS(max)
  18.   THEN x_out[datum] := x_in[datum]
  19.   ELSE BEGIN
  20.    IF diffrnce > 0 
  21.      THEN x_out[datum] := x_in[datum] - max
  22.      ELSE x_out[datum] := x_in[datum] + max;
  23.   END;  { of : IF ABS(... THEN.. ELSE }
  24.  END;   { of : FOR loop }
  25.  x_out[n]    := x_in[datum];
  26. END; { of : PROCEDURE confine }
  27.