diff options
Diffstat (limited to 'app/speedtest/1986/src/real operation')
| -rw-r--r-- | app/speedtest/1986/src/real operation | 519 | 
1 files changed, 519 insertions, 0 deletions
diff --git a/app/speedtest/1986/src/real operation b/app/speedtest/1986/src/real operation new file mode 100644 index 0000000..2d63d1b --- /dev/null +++ b/app/speedtest/1986/src/real operation @@ -0,0 +1,519 @@ +PACKET real operation DEFINES real assign,
 +                              row real,
 +                              real add,
 +                              real mult,
 +                              real div,
 +                              real incr,
 +                              real mod,
 +                              real equal, 
 +                              real lequal, 
 +                              real abs,
 +                              real min :
 +
 +
 +(***************************************************************************)
 +(*                                                                         *)
 +(*  Autor: A. Steinmann                        Copyright (C): HRZ - Unibi  *)
 +(*                                                                         *)
 +(***************************************************************************)
 +
 +
 +ROW 10 REAL VAR real row ;
 +
 +
 +
 +INT VAR index, 
 +        i ;
 +
 +
 +REAL VAR begin,
 +         end,
 +         first real,
 +         second real,
 +         third real,
 +         rest,
 +         act result,
 +         real assign factor ;
 +
 +
 +
 +
 +PROC real assign (INT CONST frequency) :
 +
 +  first real := 0.0 ;
 +  second real := 1.0 ;
 +  begin := clock (0) ;
 +  FOR index FROM 1 UPTO frequency
 +      REP
 +          first real := second real
 +      END REP ;
 +  end := clock (0) ;
 +
 +  act result := end - begin ;
 +
 +  real assign s (frequency)
 +
 +END PROC real assign ;
 +
 +
 +
 + 
 +PROC real assign s (INT CONST frequency) :
 +
 +  first real := 0.0 ;
 +  second real := 1.0 ;
 +  begin := clock (0) ;
 +  FOR index FROM 1 UPTO frequency
 +      REP
 +          first real := second real
 +      END REP ;
 +  end := clock (0) ;
 +
 +  IF act result > end - begin
 +     THEN act result := end - begin
 +  FI ;
 +
 +  real assign factor := act result * msec factor (frequency) - for corr ;
 +
 +  notice result ("REAL :=", real assign factor) ;
 +
 +END PROC real assign s ;
 +
 +
 +
 +
 +PROC row real (INT CONST frequency) :
 +
 +  first real := 1.0 ;
 +  i := 7 ;
 +  real row [i] := 0.0 ;
 +  begin := clock (0) ;
 +  FOR index FROM 1 UPTO frequency 
 +      REP
 +          real row [i] := first real
 +      END REP ;
 +  end := clock (0) ;
 +
 +  act result := end - begin ;
 + 
 +  row real s (frequency)
 +
 +END PROC row real ;
 +
 +
 +
 + 
 +PROC row real s (INT CONST frequency) :
 +
 +  first real := 1.0 ;
 +  i := 7 ;
 +  real row [i] := 0.0 ;
 +  begin := clock (0) ;
 +  FOR index FROM 1 UPTO frequency 
 +      REP
 +          real row [i] := first real
 +      END REP ;
 +  end := clock (0) ;
 +
 +  IF act result > end - begin
 +     THEN act result := end - begin
 +  FI ;
 +
 +  notice result ("ROW REAL [i]", act result * msec factor (frequency) - for corr) ;
 + 
 +END PROC row real s ;
 +
 +
 +
 +
 +PROC real equal (INT CONST frequency) : 
 + 
 +  first real := 10.0 ;
 +  second real := 10.0 ;
 +  begin := clock (0) ;
 +  FOR index FROM 1 UPTO frequency
 +      REP
 +          IF first real = second real
 +             THEN
 +          FI
 +      END REP ;
 +  end := clock (0) ;
 +
 +  act result := end - begin ;
 +
 +  real equal s (frequency)
 +
 +END PROC real equal ;
 +
 +
 +
 + 
 +PROC real equal s (INT CONST frequency) : 
 + 
 +  first real := 10.0 ;
 +  second real := 10.0 ;
 +  begin := clock (0) ;
 +  FOR index FROM 1 UPTO frequency
 +      REP
 +          IF first real = second real
 +             THEN
 +          FI
 +      END REP ;
 +  end := clock (0) ;
 +
 +  IF act result > end - begin
 +     THEN act result := end - begin
 +  FI ;
 +
 +  notice result ("REAL =", act result * msec factor (frequency) - for corr)
 +
 +END PROC real equal s ;
 +
 +
 +
 +
 +PROC real lequal (INT CONST frequency) :
 + 
 +  first real := 10.0 ;
 +  second real := 11.0 ;
 +  begin := clock(0) ;
 +  FOR index FROM 1 UPTO frequency
 +      REP
 +          IF first real <= second real
 +             THEN
 +          FI
 +      END REP ;
 +  end := clock (0) ;
 +
 +  act result := end - begin ;
 +
 +  real lequal s (frequency)
 +
 +END PROC real lequal ;
 +
 +
 +
 + 
 +PROC real lequal s (INT CONST frequency) :
 + 
 +  first real := 10.0 ;
 +  second real := 11.0 ;
 +  begin := clock(0) ;
 +  FOR index FROM 1 UPTO frequency
 +      REP
 +          IF first real <= second real
 +             THEN
 +          FI
 +      END REP ;
 +  end := clock (0) ;
 +
 +  IF act result > end - begin
 +     THEN act result := end - begin
 +  FI ;
 +
 +  notice result ("REAL <=", act result * msec factor (frequency) - for corr) 
 +
 +END PROC real lequal s ;
 +
 +
 +
 +
 +PROC real add (INT CONST frequency) :
 +
 +  first real := 0.0 ;
 +  second real := 1.0 ;
 +  third real := 1.0 ;
 +  begin := clock (0) ;
 +  FOR index FROM 1 UPTO frequency
 +      REP
 +          first real := second real + third real
 +      END REP ;
 +  end := clock (0) ;
 +
 +  act result := end - begin ;
 +
 +  real add s (frequency)
 +
 +END PROC real add ;
 +
 +
 +
 + 
 +PROC real add s (INT CONST frequency) :
 +
 +  first real := 0.0 ;
 +  second real := 1.0 ;
 +  third real := 1.0 ;
 +  begin := clock (0) ;
 +  FOR index FROM 1 UPTO frequency
 +      REP
 +          first real := second real + third real
 +      END REP ;
 +  end := clock (0) ;
 +
 +  IF act result > end - begin
 +     THEN act result := end - begin
 +  FI ;
 +
 +  notice result ("REAL +", act result * msec factor (frequency) - for corr) ;
 +
 +END PROC real add s ;
 +
 +
 +
 +
 +PROC real mult (INT CONST frequency) :
 +
 +  first real := 0.0 ;
 +  second real := 1.001 ;
 +  third real := 1.001 ;
 +  begin := clock (0) ;
 +  FOR index FROM 1 UPTO frequency 
 +      REP
 +          first real := second real * third real
 +      END REP ;
 +  end := clock (0) ;
 + 
 +  act result := end - begin ;
 +
 +  real mult s (frequency)
 +
 +END PROC real mult ;
 +
 +
 +
 + 
 +PROC real mult s (INT CONST frequency) :
 +
 +  first real := 0.0 ;
 +  second real := 1.001 ;
 +  third real := 1.001 ;
 +  begin := clock (0) ;
 +  FOR index FROM 1 UPTO frequency 
 +      REP
 +          first real := second real * third real
 +      END REP ;
 +  end := clock (0) ;
 +
 +  IF act result > end - begin
 +     THEN act result := end - begin
 +  FI ;
 +
 +  notice result ("REAL *", act result * msec factor (frequency) - for corr) ;
 +
 +END PROC real mult s ;
 +
 +
 +
 +
 +PROC real div (INT CONST frequency) :
 +
 +  first real := 0.0 ;
 +  second real := 10000.0 ;
 +  third real := 1.0001 ;
 +  begin := clock (0) ;
 +  FOR index FROM 1 UPTO frequency 
 +      REP
 +          first real := second real / third real
 +      END REP ;
 +  end := clock (0) ;
 +
 +  act result := end - begin ;
 +
 +  real div s (frequency)
 +
 +END PROC real div ;
 +
 +
 +
 + 
 +PROC real div s (INT CONST frequency) :
 +
 +  first real := 0.0 ;
 +  second real := 10000.0 ;
 +  third real := 1.0001 ;
 +  begin := clock (0) ;
 +  FOR index FROM 1 UPTO frequency 
 +      REP
 +          first real := second real / third real
 +      END REP ;
 +  end := clock (0) ;
 +
 +  IF act result > end - begin
 +     THEN act result := end - begin
 +  FI ;
 +
 +  notice result ("REAL /", act result * msec factor (frequency) - for corr) ;
 +
 +END PROC real div s ;
 +
 +
 +
 +
 +PROC real incr (INT CONST frequency) :
 +
 +  first real := 0.0 ;
 +  second real := 1.0 ;
 +  begin := clock (0) ;
 +  FOR index FROM 1 UPTO frequency 
 +      REP 
 +          first real INCR second real
 +      END REP ;
 +  end := clock (0) ;
 +
 +  act result := end - begin ;
 +
 +  real incr s (frequency)
 +
 +END PROC real incr ;
 +
 +
 +
 + 
 +PROC real incr s (INT CONST frequency) :
 +
 +  first real := 0.0 ;
 +  second real := 1.0 ;
 +  begin := clock (0) ;
 +  FOR index FROM 1 UPTO frequency 
 +      REP 
 +          first real INCR second real
 +      END REP ;
 +  end := clock (0) ;
 +
 +  IF act result > end - begin
 +     THEN act result := end - begin
 +  FI ;
 +
 +  notice result ("INCR", act result * msec factor (frequency) - for corr) ;
 +
 +END PROC real incr s ;
 +
 +
 +
 +
 +PROC real mod (INT CONST frequency) :
 +
 +  first real := 9999.9 ;
 +  second real := 21.21 ;
 +  begin := clock (0) ;
 +  FOR index FROM 1 UPTO frequency 
 +      REP 
 +          rest := first real MOD second real
 +      END REP ;
 +  end := clock (0) ;
 +
 +  act result := end - begin ;
 +
 +  real mod s (frequency)
 +
 +END PROC real mod ;
 +
 +
 +
 + 
 +PROC real mod s (INT CONST frequency) :
 +
 +  first real := 9999.9 ;
 +  second real := 21.21 ;
 +  begin := clock (0) ;
 +  FOR index FROM 1 UPTO frequency 
 +      REP 
 +          rest := first real MOD second real
 +      END REP ;
 +  end := clock (0) ;
 +
 +  IF act result > end - begin
 +     THEN act result := end - begin
 +  FI ;
 +
 +  notice result ("MOD", act result * msec factor (frequency) - for corr) ;
 +
 +END PROC real mod s ;
 +
 +
 +
 +
 +PROC real abs (INT CONST frequency) :
 +
 +  first real := 0.0 ;
 +  second real := - 12345.6 ;
 +  begin := clock (0) ;
 +  FOR index FROM 1 UPTO frequency 
 +      REP 
 +          first real := abs (second real)
 +      END REP ;
 +  end := clock (0) ;
 +
 +  act result := end - begin ;
 + 
 +  real abs s (frequency)
 +
 +END PROC real abs ;
 +
 +
 +
 + 
 +PROC real abs s (INT CONST frequency) :
 +
 +  first real := 0.0 ;
 +  second real := - 12345.6 ;
 +  begin := clock (0) ;
 +  FOR index FROM 1 UPTO frequency 
 +      REP 
 +          first real := abs (second real)
 +      END REP ;
 +  end := clock (0) ;
 +
 +  IF act result > end - begin
 +     THEN act result := end - begin
 +  FI ;
 +
 +  notice result ("abs (REAL)", act result * msec factor (frequency) - for corr) ;
 + 
 +END PROC real abs s ;
 +
 +
 +
 +
 +PROC real min (INT CONST frequency) :
 +
 +  first real := 10000.0 ;
 +  second real := 1.0 ;
 +  begin := clock (0) ;
 +  FOR index FROM 1 UPTO frequency
 +      REP
 +          rest := min (first real, second real)
 +      END REP ;
 +  end := clock (0) ;
 +
 +  act result := end - begin ;
 +
 +  real min s (frequency)
 +
 +END PROC real min ;
 +
 +
 +
 + 
 +PROC real min s (INT CONST frequency) :
 +
 +  first real := 10000.0 ;
 +  second real := 1.0 ;
 +  begin := clock (0) ;
 +  FOR index FROM 1 UPTO frequency
 +      REP
 +          rest := min (first real, second real)
 +      END REP ;
 +  end := clock (0) ;
 +
 +  IF act result > end - begin
 +     THEN act result := end - begin
 +  FI ;
 +
 +  notice result ("min (REAL, REAL)", act result * msec factor (frequency) - for corr) ;
 +
 +END PROC real min s ;
 +
 +
 +END PACKET real operation ;
  | 
