Objekte in SYMMETRICA
Bei der Entwicklung von
Symmetrica
wurde in der Programmiersprache C ein objektorientierter
Programmierstil gewählt. Dies wurde wie folgt verwirklicht:
Der einzige Datentyp in
Symmetrica
ist das Objekt. Anhand einer Kennung am Objekt können die verschiedenen
Routinen entscheiden, auf welche Weise die konkrete Operation
(z.B. Multiplikation) für das vorliegende Objekt durchgeführt wird.
Der Vorteil dieser Methode ist die Verwendung gleicher Funktion
für verschiedene Typen von Objekten. So ist eine Funktion
zur Matrixinversion unabhängig von den Objekten in der Matrix. Man
muß die Matrixeinträge lediglich invertieren können.
Die Routine bleibt auch lauffähig,
wenn weitere Objekt Typen hinzukommen.
Der Nachteil ist der Overhead der,
bei wiederholten Typprüfungen entsteht. Ferner der
zusätzliche Speicherplatz für die Typkennung.
Nun eine vollständige
Aufzählung der vorhanden Typen von Objekten.
INTEGER
VECTOR von beliebigen Objekten
BITVECTOR 0-1 Vektor als Bitfolge gespeichert
PARTITION
(21.11.96)
BRUCH aus zwei beliebigen Objekten
PERMUTATION
SKEWPARTITION
TABLEAUX
POLYNOM mit beliebigen Objekten als Koeffizient
SCHUR Funktion mit beliebigen Objekten
als Koeffizient
MATRIX von beliebigen Objekten
HOMSYM = vollständig symmetrische Funktion
SCHUBERT Polynom
INTEGERVECTOR = VECTOR Objekt mit INTEGER Objekten
INTEGERMATRIX = MATRIX Objekt mit INTEGER Objekten
SYMCHAR = Charkter der symmetrischen Gruppe
WORD
LIST = Liste von beliebigen Objekten
LONGINT
BINTREE = binärer Baum von beliebigen Objekten
POWSYM = symmetrische Potenzsummen Funktion
ELMSYM = elementarsymmetrische Funktion
KRANZ = Element eines Kranzprodukts
FINITEFIELD = Element eines endlichen Körpers
GROUPALGEBRA = Element der Gruppenalgebra einer Permutationsgruppe
REIHE
CYCLOTOMIC
MONOPOLY = Polynom in einer Variablen
SQ_RADICAL
LAURENT
BARPERM
Send comments or suggestions to:
sym@btm2x2.mat.uni-bayreuth.de