Oberon || Library || Module Index || Search Engine || Definition || Module


Ulm's Oberon Library:
Sets


NAME

Sets - operations for sets of arbitrary length

SYNOPSIS

CONST setsize = MAX(SET) + 1;


TYPE CharSet = ARRAY ORD(MAX(CHAR)) + 1 DIV setsize OF SET;

PROCEDURE InitSet(VAR set: ARRAY OF SET); PROCEDURE Complement(VAR set: ARRAY OF SET); PROCEDURE Union(set1, set2: ARRAY OF SET; VAR result: ARRAY OF SET); PROCEDURE Difference(set1, set2: ARRAY OF SET; VAR result: ARRAY OF SET); PROCEDURE Intersection(set1, set2: ARRAY OF SET; VAR result: ARRAY OF SET); PROCEDURE SymDifference(set1, set2: ARRAY OF SET; VAR result: ARRAY OF SET); PROCEDURE In(VAR set: ARRAY OF SET; i: LONGINT) : BOOLEAN; PROCEDURE CharIn(VAR charset: CharSet; ch: CHAR) : BOOLEAN; PROCEDURE Equal(set1, set2: ARRAY OF SET) : BOOLEAN; PROCEDURE Incl(VAR set: ARRAY OF SET; i: LONGINT); PROCEDURE Excl(VAR set: ARRAY OF SET; i: LONGINT); PROCEDURE InclChar(VAR charset: CharSet; ch: CHAR); PROCEDURE ExclChar(VAR charset: CharSet; ch: CHAR); PROCEDURE Subset(set1, set2: ARRAY OF SET) : BOOLEAN; PROCEDURE Card(set: ARRAY OF SET) : INTEGER;

DESCRIPTION

Sets implements set operations for character sets and sets of arbitrary length. setsize defines the number of bits per SET type. CharSet is an array of SET sufficient for characters. InitSet initializes set to the empty set.

Following set operators are implemented:

set operator   set operation
________________________________
unary -        Complement
+              Union
-              Difference
*              Intersection
/              SymDifference
IN             In and CharIn
=              Equal
INCL           Incl and InclChar
EXCL           Excl and ExclChar

Subset returns TRUE iff set1 is contained in set2. Card returns the cardinality (number of elements) of set.

DIAGNOSTICS

Assertions of Sets fail if the length of result is less than the length of set1 or set2.
Edited by: borchert, last change: 2004/06/03, revision: 1.7, converted to HTML: 2004/06/03

Oberon || Library || Module Index || Search Engine || Definition || Module