diff options
Diffstat (limited to 'app/speedtest/1986/src/integer operation')
-rw-r--r-- | app/speedtest/1986/src/integer operation | 614 |
1 files changed, 614 insertions, 0 deletions
diff --git a/app/speedtest/1986/src/integer operation b/app/speedtest/1986/src/integer operation new file mode 100644 index 0000000..90ef0f2 --- /dev/null +++ b/app/speedtest/1986/src/integer operation @@ -0,0 +1,614 @@ +PACKET integer operation DEFINES int assign global,
+ int assign local,
+ int assign param,
+ int equal,
+ int lequal,
+ int abs,
+ int min,
+ int incr,
+ row int,
+ int div,
+ int mod,
+ int add,
+ int mult :
+
+
+(***************************************************************************)
+(* *)
+(* Autor: A. Steinmann Copyright (C): HRZ - Unibi *)
+(* *)
+(***************************************************************************)
+
+
+ROW 10 INT VAR introw ;
+
+
+REAL VAR begin,
+ end,
+ act result,
+ int assign factor ;
+
+
+INT VAR first int,
+ second int,
+ third int,
+ rest,
+ i ,
+ index ;
+
+
+
+PROC int assign global (INT CONST frequency) :
+
+ first int := 0 ;
+ second int := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first int := second int
+ END REP ;
+ end := clock (0);
+
+ act result := end - begin ;
+
+ int assign global s (frequency)
+
+END PROC int assign global ;
+
+
+
+
+PROC int assign global s (INT CONST frequency) :
+
+ first int := 0 ;
+ second int := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first int := second int
+ END REP ;
+ end := clock (0);
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ int assign factor := act result * msec factor (frequency) - for corr ;
+
+ notice result ("INT := (Paketdaten)", int assign factor) ;
+
+END PROC int assign global s ;
+
+
+
+
+PROC int assign local (INT CONST frequency) :
+
+ INT VAR number one :: 0,
+ number two :: 1 ;
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ number one := number two
+ END REP ;
+ end := clock (0);
+
+ act result := end - begin ;
+
+ int assign local s (frequency)
+
+END PROC int assign local ;
+
+
+
+
+PROC int assign local s (INT CONST frequency) :
+
+ INT VAR number one :: 0,
+ number two :: 1 ;
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ number one := number two
+ END REP ;
+ end := clock (0);
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("INT := (Prozedurdaten)", act result * msec factor (frequency) - for corr) ;
+
+END PROC int assign local s ;
+
+
+
+
+PROC int assign param (INT CONST frequency) :
+
+ first int := 0 ;
+ second int := 1 ;
+ int assign (first int, second int, frequency) ;
+ first int := 0 ;
+ int assign s (first int, second int, frequency)
+
+END PROC int assign param ;
+
+
+
+
+PROC int assign (INT VAR one, INT CONST two, frequency) :
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ one := two
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+END PROC int assign ;
+
+
+
+
+PROC int assign s (INT VAR one, INT CONST two, frequency) :
+
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ one := two
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("INT := (Parameter)", act result * msec factor (frequency) - for corr) ;
+
+END PROC int assign s ;
+
+
+
+
+PROC row int (INT CONST frequency) :
+
+ i := 7 ;
+ int row [i] := 0 ;
+ first int := 10000 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ introw [i] := first int
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ row int s (frequency)
+
+END PROC row int ;
+
+
+
+
+PROC row int s (INT CONST frequency) :
+
+ i := 7 ;
+ int row [i] := 0 ;
+ first int := 10000 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ introw [i] := first int
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("ROW INT [i]", act result * msec factor (frequency) - for corr) ;
+
+END PROC row int s ;
+
+
+
+
+PROC int equal (INT CONST frequency) :
+
+ first int := 10 ;
+ second int := 10 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ IF first int = second int
+ THEN
+ FI
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ int equal s (frequency)
+
+END PROC int equal ;
+
+
+
+
+PROC int equal s (INT CONST frequency) :
+
+ first int := 10 ;
+ second int := 10 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ IF first int = second int
+ THEN
+ FI
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("INT =", act result * msec factor (frequency) - for corr)
+
+END PROC int equal s ;
+
+
+
+
+PROC int lequal (INT CONST frequency) :
+
+ first int := 10 ;
+ second int := 11 ;
+ begin := clock(0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ IF first int <= second int
+ THEN
+ FI
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ int lequal s (frequency)
+
+END PROC int lequal ;
+
+
+
+
+PROC int lequal s (INT CONST frequency) :
+
+ first int := 10 ;
+ second int := 11 ;
+ begin := clock(0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ IF first int <= second int
+ THEN
+ FI
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("INT <=", act result * msec factor (frequency) - for corr)
+
+END PROC int lequal s ;
+
+
+
+
+PROC int add (INT CONST frequency) :
+
+ first int := 0 ;
+ second int := 1 ;
+ third int := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first int := second int + third int
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ int add s (frequency)
+
+END PROC int add ;
+
+
+
+
+PROC int add s (INT CONST frequency) :
+
+ first int := 0 ;
+ second int := 1 ;
+ third int := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first int := second int + third int
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("INT +", act result * msec factor (frequency) - for corr)
+
+END PROC int add s ;
+
+
+
+
+PROC int mult (INT CONST frequency) :
+
+ first int := 0 ;
+ second int := 99 ;
+ third int := 11 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first int := second int * third int
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ int mult s (frequency)
+
+END PROC int mult ;
+
+
+
+
+PROC int mult s (INT CONST frequency) :
+
+ first int := 0 ;
+ second int := 99 ;
+ third int := 11 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first int := second int * third int
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("INT *", act result * msec factor (frequency) - for corr)
+
+END PROC int mult s ;
+
+
+
+
+PROC int div (INT CONST frequency) :
+
+ first int := 0 ;
+ second int := 10001 ;
+ third int := 99 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first int := second int DIV third int
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ int div s (frequency)
+
+END PROC int div ;
+
+
+
+
+PROC int div s (INT CONST frequency) :
+
+ first int := 0 ;
+ second int := 10001 ;
+ third int := 99 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first int := second int DIV third int
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("DIV", act result * msec factor (frequency) - for corr)
+
+END PROC int div s ;
+
+
+
+
+PROC int mod (INT CONST frequency) :
+
+ first int := 9999 ;
+ second int := 55 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ rest := first int MOD second int
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ int mod s (frequency)
+
+END PROC int mod ;
+
+
+
+
+PROC int mod s (INT CONST frequency) :
+
+ first int := 9999 ;
+ second int := 55 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ rest := first int MOD second int
+ 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 int mod s ;
+
+
+
+
+PROC int incr (INT CONST frequency) :
+
+ first int:= 0 ;
+ second int := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first int INCR second int
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ int incr s (frequency)
+
+END PROC int incr ;
+
+
+
+
+PROC int incr s (INT CONST frequency) :
+
+ first int:= 0 ;
+ second int := 1 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ first int INCR second int
+ 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 int incr s ;
+
+
+
+
+PROC int abs (INT CONST frequency) :
+
+ first int := - 10000 ;
+ second int := 0 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ second int := abs (first int)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ int abs s (frequency)
+
+END PROC int abs ;
+
+
+
+
+PROC int abs s (INT CONST frequency) :
+
+ first int := - 10000 ;
+ second int := 0 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ second int := abs (first int)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("abs (INT)", act result * msec factor (frequency) - for corr) ;
+
+END PROC int abs s ;
+
+
+
+
+PROC int min (INT CONST frequency) :
+
+ i := 0 ;
+ first int := 9999 ;
+ second int := 10000 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ i := min (first int, second int)
+ END REP ;
+ end := clock (0) ;
+
+ act result := end - begin ;
+
+ int min s (frequency)
+
+END PROC int min ;
+
+
+
+
+PROC int min s (INT CONST frequency) :
+
+ i := 0 ;
+ first int := 9999 ;
+ second int := 10000 ;
+ begin := clock (0) ;
+ FOR index FROM 1 UPTO frequency
+ REP
+ i := min (first int, second int)
+ END REP ;
+ end := clock (0) ;
+
+ IF act result > end - begin
+ THEN act result := end - begin
+ FI ;
+
+ notice result ("min (INT , INT)", act result * msec factor (frequency) - for corr) ;
+
+END PROC int min s ;
+
+
+END PACKET integer operation ;
|