From 98cab31fc3659e33aef260efca55bf9f1753164c Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Mon, 11 Feb 2019 11:49:19 +0100 Subject: Add source files from Michael --- app/speedtest/1986/src/integer operation | 614 +++++++++++++++++++++++++++++++ 1 file changed, 614 insertions(+) create mode 100644 app/speedtest/1986/src/integer operation (limited to 'app/speedtest/1986/src/integer operation') 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 ; -- cgit v1.2.3