matroide
Class Chirotop

java.lang.Object
  |
  +--matroide.Chirotop

public class Chirotop
extends java.lang.Object

Diese Klasse repräsentiert ein Chirotop. Die Vorzeichen zu Punktmengen der Größe dim+1 sind in den ChirotopElementen gespeichert.


Constructor Summary
Chirotop(int dim, int anzahl, ChirotopElement[] elem)
          erzeugt ein chirotop zur gegebenen Dimension, anzahlH und mit den gegebenen Chirotopelementen.
Chirotop(int dimension, int anzahlH, int vorzeichen)
          liefert ein Chirotop zur gegebenen dimension, anzahlH und dem binaer codierten vorzeichen.
Chirotop(int dim, int anzahlH, java.lang.String chiro)
          Liefert ein Chirotop der Dimension dim zu der gegebenen Anzahl von Punkten und dem Vorzeichen-String. es muessen (anzahlH über dim) viele Vorzeichen sein, sonst gibt's null zurueck. z.B. berechneChirotop(4, ++--).
Chirotop(int dim, int anzahl, java.util.Vector elem)
          erzeugt ein Chirotop zur gegebenen dimension, anzahlH und mit den im Vector enthaltenen Chirotopelementen.
 
Method Summary
 Chirotop copy()
          erzeugt eine Kopie des Chirotops.
 boolean dummesEquals(Chirotop chiro)
          Vergleicht zwei ChirotopElemente auf Äquivalenz.
 boolean equals(Chirotop chiro)
          Die Methode equals vergleicht diesen Chirotop mit dem Parameter-Chirotop.
 boolean equals(java.lang.Object o)
          Überschreibt die von Object geerbte Methode equals.
static java.util.Vector generiereChiros(int dimension, int anzahlH)
          Liefert Vector mit allen Chirotopen der angegebenen Dimension und Anzahl der Hyperebenen, wobei äquivalente Chirotope nur einmal betrachtet werden.
 CoKreisMatroid getCoKreisMatroid(boolean normiert)
           
 KantenMatroid getKantenMatroid()
          Erzeugt das zugehörige Kantenmatroid zum Chirotop.
protected  boolean gleicherVector(Chirotop chi)
          Vergleicht die Vectoren der beiden Chirotope.
protected  boolean istVertauscht(int[] punkte)
           
protected  java.util.Vector kippeDreiecke()
           
protected  java.util.Vector normiereChirotop()
          Kippt alle Bits, bei denen die ersten beiden Punkte 0 und 1 sind, das Vorzeichen aber nicht 1.
 void print()
           
protected static void printIntArray(java.lang.String name, int[] array)
           
protected static void printIntArray(java.lang.String name, java.lang.Object[] array)
           
protected static int[] rotiere0nachVorne(int[] punkte)
           
protected  void sortiereErsteKantenMatroidGerade()
          Sortiert die erste Gerade des zugehörigen Kantenmatorides so, dass die Hyperebenen, die die Gerade schneiden in sortierter Reihenfolge auftreten.
protected  void tauscheHyperEbenen(int g1, int g2)
          tauscht die geraden g1 und g2 in diesem chirotop.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Chirotop

public Chirotop(int dim,
                int anzahl,
                ChirotopElement[] elem)
         throws matroide.IsNoLegalChirotopException
erzeugt ein chirotop zur gegebenen Dimension, anzahlH und mit den gegebenen Chirotopelementen.

Chirotop

public Chirotop(int dim,
                int anzahl,
                java.util.Vector elem)
         throws matroide.IsNoLegalChirotopException
erzeugt ein Chirotop zur gegebenen dimension, anzahlH und mit den im Vector enthaltenen Chirotopelementen.

Chirotop

public Chirotop(int dim,
                int anzahlH,
                java.lang.String chiro)
         throws matroide.IsNoLegalChirotopException
Liefert ein Chirotop der Dimension dim zu der gegebenen Anzahl von Punkten und dem Vorzeichen-String. es muessen (anzahlH über dim) viele Vorzeichen sein, sonst gibt's null zurueck. z.B. berechneChirotop(4, ++--).

Chirotop

public Chirotop(int dimension,
                int anzahlH,
                int vorzeichen)
liefert ein Chirotop zur gegebenen dimension, anzahlH und dem binaer codierten vorzeichen.
Method Detail

generiereChiros

public static java.util.Vector generiereChiros(int dimension,
                                               int anzahlH)
Liefert Vector mit allen Chirotopen der angegebenen Dimension und Anzahl der Hyperebenen, wobei äquivalente Chirotope nur einmal betrachtet werden.
Parameters:
dimension - Die Dimension
anzahlH - Die Anzahl der Hyperebenen
Returns:
Vector

kippeDreiecke

protected java.util.Vector kippeDreiecke()
Returns:
Vector mit allen Chirotopen, die entstehen, wenn man beim Chirotop this alle Dreiecke kippt.

copy

public Chirotop copy()
erzeugt eine Kopie des Chirotops.
Returns:
copy

istVertauscht

protected boolean istVertauscht(int[] punkte)
Parameters:
punkte -  
Returns:
boolean : true, falls die punkte vertauscht sind, also z.b. 1243 statt 1234, false sonst.

normiereChirotop

protected java.util.Vector normiereChirotop()
Kippt alle Bits, bei denen die ersten beiden Punkte 0 und 1 sind, das Vorzeichen aber nicht 1. Normiert das Chirotop also so, dass alle Punkte positiv zur Gerade 01 liegen.
Returns:
Vector

getCoKreisMatroid

public CoKreisMatroid getCoKreisMatroid(boolean normiert)
Parameters:
normiert - gibt an, ob das Chirotop vorher normiert werden soll
Returns:
CoKreisMatroid Das zugehörige CoKreisMatroid.

getKantenMatroid

public KantenMatroid getKantenMatroid()
Erzeugt das zugehörige Kantenmatroid zum Chirotop.
Returns:
KantenMatroid

tauscheHyperEbenen

protected void tauscheHyperEbenen(int g1,
                                  int g2)
tauscht die geraden g1 und g2 in diesem chirotop. Bsp: tausche 0 und 1 in ++-- man erhaelt ---- da 102 + --> 012 --> - 103 + --> 013 --> - 123 - --> 123 --> - 023 - --> 023 --> -
Parameters:
g1 - erste Gerade
g2 - zweite Gerade

equals

public boolean equals(java.lang.Object o)
Überschreibt die von Object geerbte Methode equals. Ruft dann die dummesEquals Methode auf.
Overrides:
equals in class java.lang.Object
Parameters:
o -  
Returns:
true, wenn die dummeEquals Methode true sagt.

dummesEquals

public boolean dummesEquals(Chirotop chiro)
Vergleicht zwei ChirotopElemente auf Äquivalenz. Zwei Chirotope sind äquivalent, falls es eine Permutation gibt, so das durch tauschen der Geraden nach Definition der Permutation das Kantenbild des anderen Chirotops entsteht.
Parameters:
chiro - Chirotop, das mit this verglichen werden soll.
Returns:
true, falls die beiden Chirotope äquivalent sind, false sonst.

gleicherVector

protected boolean gleicherVector(Chirotop chi)
Vergleicht die Vectoren der beiden Chirotope.
Parameters:
chi - Chirotop, dessen Vector mit dem Vector von this verglichen werden soll.
Returns:
true, falls die beiden Vectoren gleich sind.

equals

public boolean equals(Chirotop chiro)
Die Methode equals vergleicht diesen Chirotop mit dem Parameter-Chirotop.
Parameters:
chiro - Chirotop, mit dem this verglichen wird.
Returns:
true falls beide gleich sind, false sonst.

sortiereErsteKantenMatroidGerade

protected void sortiereErsteKantenMatroidGerade()
Sortiert die erste Gerade des zugehörigen Kantenmatorides so, dass die Hyperebenen, die die Gerade schneiden in sortierter Reihenfolge auftreten.

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

print

public void print()

printIntArray

protected static void printIntArray(java.lang.String name,
                                    int[] array)

printIntArray

protected static void printIntArray(java.lang.String name,
                                    java.lang.Object[] array)

rotiere0nachVorne

protected static int[] rotiere0nachVorne(int[] punkte)