======================================================================
Dokumentation zu "BigSets" Version 1.1
Autor: Nicolas Benezan, Postwiesenstr. 2, D7000 Stuttgart 60
======================================================================

Kopierrecht
­­­­­­­­­­­
Das komplette Packet (Quelltext, Dokumentation und Objectcode) ist
Public Domain Software. Es darf beliebig kopiert und verbreitet werden
solange...

* mein Name und dieser Kopierrechtshinweis erhalten bleiben,
* die Vollständigkeit des ganzen Packets gewährleistet ist, und
* mit dem Vertrieb dieser Software kein Gewinn erwirtschaftet wird.

Die Kommerzielle Nutzung ohne meine ausdrückliche schriftliche
Genehmigung ist untersagt.
Ferner ist allen Personen, die in irgend einer Weise etwas mit "Data
Becker" zu tun haben, insbesondere für "Data Becker" arbeiten oder
deren Produkte verkaufen, jegliche Verwendung dieser Software verboten.

Verbesserungsvorschläge sind stets willkommen. Falls Sie Veränderungen
am Programm vornehmen, dokumentieren Sie diese bitte gut verständlich.
Es würde mich freuen, wenn Sie mich über größere Veränderungen in
Kenntnis setzen würden.

(c) 1988 by Nicolas Benezan.


Übersicht
­­­­­­­­­
* Umfang des Packets
* Einleitung
* Beschreibung der Prozeduren

Umfang des Packet
­­­­­­­­­­­­­­­­­
Das komplette Packet "BigSets" beinhaltet folgendes:

* BigSets.dok                         Diese Dokumentation
* BigSets.def, -.mod                  Quellcode
* BigSets.sym, -.obj                  compilierter Code

(Stand 15.Jul.1989)


Einleitung
­­­­­­­­­­
Dieses Modul ermöglicht den Einsatz von Mengen (SETs) mit mehr als 32
Elementen (Bits). Zusätzlich zu den Standardprozeduren für Mengen wie
INCLude, EXCLude und dem Operator IN (siehe BitInSet) wird noch eine
spezielle Prozedur exportiert, die das Suchen des nächsten gelöschten Bits
ermöglicht.

Beschreibung der Prozeduren
­­­­­­­­­­­­­­­­­­­­­­­­­­­
CreateBigSet()
--------------
alloziert Speicher für ein neues BigSet zur weiteren Verwendung und
initialisiert interne Daten.

DiscardBigSet()
---------------
entfernt ein BigSet nach der letzten Benutzung komplett aus dem Speicher.

Include(), Exclude()
--------------------
entspricht genau dem Modula-Standardbefehlen INCL bzw. EXCL für BITSETs
oder LONGSETs.

BitInSet()
----------
entspricht dem Modula-Operator IN und testet, ob ein Element in einer Menge
vorhanden ist bzw. ob ein Bit gesetzt ist. dabei entspricht

  IF BitInSet(Set, Bit) THEN ...

für BigSets dem Statement

  IF Bit IN Set THEN ...

für BITSETs.

FindNextClear()
---------------
dient zum Auffinden des nächsten gelöschten Bits eines BigSets, d.h. es
wird <Bit> solange erhöht, bis ein gelöschtes Bit gefunden wird
(Ergebnis TRUE) oder das Ende des BigSets erreicht wird (Ergebnis FALSE).
ist das Anfangs-<Bit> selbst schon gelöscht bleibt <Bit> unverändert.
Die Prozedur ist bei großen BigSets erheblich schneller als eine Schleife,
die mit BitInSet() arbeitet.

