ArrayOfSet
Treat ARRAY OF SET as a large set. Array lengths of must match and array must be large enough to match the largest set memeber.
ETH Oberon, Copyright 1990-2003 Computer Systems Institute, ETH Zurich, CH-8092 Zurich. Refer to the license.txt file provided with this distribution.
Const
SETSIZE* = SIZE(SET) * 8;
Procedures
Clear
PROCEDURE Clear*(VAR s: ARRAY OF SET);
Fill
Fill content of set
PROCEDURE Fill*(VAR s: ARRAY OF SET);
Copy
Copy src to dst
PROCEDURE Copy*(VAR dst: ARRAY OF SET; src-: ARRAY OF SET);
In
Return TRUE if set contains x
PROCEDURE In*(s-: ARRAY OF SET; x: LENGTH): BOOLEAN;
IsZero
Test if set is all zeros
PROCEDURE IsZero* (VAR src- : ARRAY OF SET): BOOLEAN;
Equal
Test if left and right is equal.
PROCEDURE Equal* (VAR left-, right- : ARRAY OF SET): BOOLEAN;
IsSubset
Return TRUE if all elements in left is found in right
PROCEDURE IsSubset*(VAR left-, right- : ARRAY OF SET): BOOLEAN;
Incl
Include x in set
PROCEDURE Incl*(VAR s: ARRAY OF SET; x: LENGTH);
Excl
Exlude x from set
PROCEDURE Excl*(VAR s: ARRAY OF SET; x: LENGTH);
Invert
Invert set
PROCEDURE Invert*(VAR dst: ARRAY OF SET);
Union
Set dst to elements both in x and y
PROCEDURE Union*(VAR dst: ARRAY OF SET; x-, y-: ARRAY OF SET);
Difference
Set dst to element in x but not in y
PROCEDURE Difference*(VAR dst: ARRAY OF SET; x-, y-: ARRAY OF SET);
Intersection
Set dst to element common to x and y
PROCEDURE Intersection*(VAR dst: ARRAY OF SET; x-, y-: ARRAY OF SET);
SymmetricDifference
Set dst to elements in either x or y, but not in both
PROCEDURE SymmetricDifference*(VAR dst: ARRAY OF SET; x-, y-: ARRAY OF SET);