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 ;