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 ;