Der der Destruktor auch aufgerufen wird, wenn eine lokale Instanz
gelöscht wird (z.B. in primImplikantenAt()), verlieren wir unsere
PrimImplikanten zu früh. Mit Dispose() können wir das selbst und nur
ganz am Ende machen.
Schleife, welche die Zellen iteriert und für jede GetHazards() aufruft.
Wenn ein oder mehrere Hazards gefunden wurden, werden PrimImplikanten
der PrimImplikantenCollection hinzugefügt, um den Hazards zu beheben.
Dies wirkt sich allerdings nicht auf die PrimImplikanten in den Zellen
aus, weshalb Hazards doppelt gefunden werden können! Außerdem ist das
hinzufügen eines nur 2fachen PrimImplikanten mitunter nicht optimal.
Zwei Optimierungen wurden eingebaut: "Schachbrett" und "Überspringe
Nullen". Hierdurch wird die Geschwindigkeit mehr als verdoppelt.
Da wir mit unserem Ergebnis ja arbeiten wollen, muss die
Hazard-Finde-Funktion zurückgeben, wo ein Hazard aufgetreten ist. Da
jedoch um jede Zelle herum mehrere Hazards auftreten können, muss der
Rückgabewert ein vector sein.
Der CParser bekommt nun einen Verweis auf eine
PrimImplikantenCollection, so dass er die gelesenen Werte gleich da
reinschieben kann.
Außerdem setzt er noch die globalen Variablen.