summaryrefslogtreecommitdiff
path: root/app/speedtest/1986/src/real operation
diff options
context:
space:
mode:
Diffstat (limited to 'app/speedtest/1986/src/real operation')
-rw-r--r--app/speedtest/1986/src/real operation519
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 ;