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/real operation | 519 ++++++++++++++++++++++++++++++++++ 1 file changed, 519 insertions(+) create mode 100644 app/speedtest/1986/src/real operation (limited to 'app/speedtest/1986/src/real operation') 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 ; -- cgit v1.2.3