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);