Hilfe zu den Funktionen von Thomas Eisenmann im Rahmen der Diplomarbeit

"Implementation und Optimierung von Algorithmen für 0-dimensionale Schemata"


 

Installation:
Damit alle Funktionen zur Verfügung stehen, erstellen sie im CoCoA-Verzeichnis "\lib\contrib\" ein neues Unterverzeichnis "eisenmann" und legen alle Dateien der Diskette darin ab. Anschließend öffnen sie mit einem Editor die Datei "eisenmann_init.coc" und ersetzen falls nötig in der ersten Zeile den Eintrag "Linux" durch das entsprechende Betriebssystem ihres Computers. Speichern sie daraufhin die Datei und lassen sie sie in CoCoA ausführen. Nun sind die Funktionen in ihre aktuelle CoCoA-Instanz geladen und für diese CoCoA-Session verfügbar. Wird eine neue Instanz von CoCoA gestartet, so muss erneut die Datei "eisenmann_init.coc" ausgeführt werden.
Beachten sie, dass jede Funktion mit dem entsprechenden Alias des Packages, in dem sie abgelegt ist, aufgerufen werden muss:
UNI := $contrib/eisenmann/uni
CB := $contrib/eisenmann/cb
CM := $contrib/eisenmann/cm
BM := $contrib/eisenmann/bm
CODES := $contrib/eisenmann/codes
d.h. um beispielsweise die Funktion 'BuMoAlg' zu nutzen, muss der Funktionsaufruf etwa "BM.BuMoAlg(P);" lauten.
Welchem Package eine Funktion angehört, ist dieser Hilfe zu entnehmen ("Speicherort").

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

TOP

BuMoAlg

Syntax:

BuMoAlg(P:LIST):LIST

Beschreibung:

Buchberger-Möller-Algorithmus; nimmt als Argument eine Liste P von affinen Punkten und liefert eine Liste [G,Q]. Dabei ist G eine Liste von Polynomen, die eine Gröbner Basis des Verschwindungsideals von P bilden, und Q eine Liste von Termen, deren Restklassen eine K-Basis von K[X1,...,Xn]/(G) bilden.

Speicherort:    $contrib\eisenmann\bm.pkg

benötigte Funktionen:   ----

TOP

CanonicalModule

Syntax:

CanonicalModule(Var P):LIST

wobei P entweder eine Liste von projektiven Punkten (erste Koordinate ungleich Null!) eines reduzierten nulldimensionalen Schemas oder ein 1-dimensionales homogenes Ideal (darf die durch [erste Unbestimmte]=0 definierte Hyperebene nicht schneiden) oder RECORD "Schema" ist.

Beschreibung:

Liefert eine Liste [Basis, M, V] zurück. Dabei ist 'Basis' eine Liste, die eine K-Basis des homogenen Koordinatenrings des gegebenen Schemas darstellt, wie man sie auch mit der Funktion 'GetBasisWithSocs' erhält (getrennt nach Sockelmonomen und sonstigen Termen). Das zweite Element M ist eine Liste von Vektoren des Syzygienmoduls des kanonischen Moduls zum gegebenen Schema/Ideal in Bezug auf die in 'Basis' gegebenen Sockelmonome. Die Vektoren bilden eine Gröbner Basis bzgl. der durch die Matrix V gegebenen Termordnung, die als dritter Teil des Ergebnisses zurückgegeben wird. (zur Darstellung des kanonischen Moduls vgl. Beck/Kreuzer, "How to Compute the Canonical Module of a Set of Points", Kapitel 5 + 6)

Speicherort:    $contrib\eisenmann\cm.pkg

benötigte Funktionen:   GetSyzygies

TOP

ColonOfDeg

Syntax:

ColonOfDeg(G:LIST, F:LIST, D:INT):LIST

Beschreibung:

Berechnet das Colon-Ideal (G):(F) bis zum angegebenen Grad D und gibt eine Liste der erzeugenden Polynome zurück.
Falls D=0, so wird (G):(F) bis zum niedrigsten Grad berechnet, in dem (G):(F) nicht Null ist (Anfangsgrad).
Falls D negativ ist, wird (G):(F) bis zum Grad (Anfangsgrad)+(-D) berechnet.

Speicherort:    $contrib\eisenmann\cb.pkg

benötigte Funktionen:   ----

TOP

EMatComb

Syntax:

EMatComb(N:MAT, K:INT, I:INT, J:INT):MAT

Beschreibung:

Führt elementare Zeilenoperation auf einer Matrix N durch. Addiert das K-fache der I-ten Zeile zur J-ten Zeile. Gibt die resultierende Matrix zurück.

Speicherort:    $contrib\eisenmann\bm.pkg

benötigte Funktionen:   ----

TOP

EMatExch

Syntax:

EMatExch(N:MAT, I:INT, J:INT):MAT

Beschreibung:

Führt elementare Zeilenoperation auf einer Matrix N durch. Vertauscht  die I-te und J-te Zeile. Gibt die resultierende Matrix zurück.

Speicherort:    $contrib\eisenmann\bm.pkg

benötigte Funktionen:   ----

TOP

EMatMult

Syntax:

EMatMult(N:MAT, K:INT, I:INT):MAT

Beschreibung:

Führt elementare Zeilenoperation auf einer Matrix N durch. Multipliziert die I-te Zeile mit K. Gibt die resultierende Matrix zurück.

Speicherort:    $contrib\eisenmann\bm.pkg

benötigte Funktionen:   ----

TOP

GBM

Syntax:

GBM(W:LIST, M:MAT):LIST

Beschreibung:

Allgemeiner Buchberger-Möller Algorithmus gemäß Abbot/Kreuzer/Robbiano, "Computing Zero-Dimensional Schemes" (verfügbar unter www.physik.uni-regensburg.de/~krm03530/ )
W ist eine Liste von Listen, die Vektoren repräsentieren, M eine Matrix von Multiplikations-Matrizen. Die Funktion liefert eine Liste [G, E] zurück, wobei G eine Liste von Polynomen ist, die eine Gröbner Basis bilden, und E eine Liste von Separatoren ist.

Speicherort:    $contrib\eisenmann\bm.pkg

benötigte Funktionen:   Mult

TOP

GetBasis
- langsam! besser CoCoA-interne Funktion 'QuotientBasis' verwenden -

Syntax:

GetBasis(I:IDEAL):LIST

Beschreibung:

Liefert eine Liste von Monomen, die eine Basis von R/I als Vektorraum repräsentieren. I muß 0-dimensionales Ideal sein.

Speicherort:    $contrib\eisenmann\cm.pkg

benötigte Funktionen:   ----

TOP

GetBasisWithSocs

Syntax:

GetBasisWithSocs(I:IDEAL, D:INT):LIST

Beschreibung:

I muss 1-dimensionales homogenes Ideal sein, wobei D eine Unbestimmte angibt, die nicht im Radikalideal des Leittermideals von I liegt bzgl. der aktuellen Termordnung (D=1 bedeutet, dass keine Potenz der ersten Unbestimmten in LT(I) liegt). Liefert eine Liste von zwei Listen von Monomen, getrennt nach Sockelmonomen (zweite Liste) und anderen (erste Liste), die eine Basis des homogenen Koordinatenrings R/I als K-Vektorraum repräsentieren.

Speicherort:    $contrib\eisenmann\cm.pkg

benötigte Funktionen:   ----

TOP

GetRegSeq

Syntax:

GetRegSeq(Var P):LIST

wobei P entweder 1-dimensionales homogenes Ideal oder nulldimensionales Schema (RECORD "Schema") ist

Beschreibung:

Liefert eine reguläre Sequenz der Länge (Anzahl der Unbestimmten)-1 im Ideal P bzw. im homogenen Verschwindungsideal des nulldimensionalen Schemas P.

Speicherort:    $contrib\eisenmann\cb.pkg

benötigte Funktionen:   ----

TOP

GetSocs

Syntax:

GetSocs(I:IDEAL):LIST

Beschreibung:

Liefert eine Liste der Sockelmonome von R/I. I muß 0-dimensionales Ideal sein.

Speicherort:    $contrib\eisenmann\cm.pkg

benötigte Funktionen:   ----

TOP

GetSyzygies

Syntax:

GetSyzygies(A:IDEAL):LIST

Beschreibung:

Liefert Syzygien des kanonischen Moduls bzgl. des 1-dimensionalen homogenen Ideals A (A schneidet nicht die durch [letzte Unbestimmte]=0 gegebene Hyperebene). Die Syzygien bilden Erzeugendensystem des Syzygienmoduls, allerdings kein minimales. Diese Funktion sollte nicht direkt aufgerufen werden, sondern nur über die Funktion 'CanonicalModule'.

Speicherort:    $contrib\eisenmann\cm.pkg

benötigte Funktionen:   ----

TOP

HilbertOfCanonicalModule

Syntax:

HilbertOfCanonicalModule(L:LIST):TAGGED("$contrib/eisenmann/cm.HilbertOfCanonicalModule")

wobei L eine von der Funktion 'CanonicalModule' zurückgegebene Liste ist

Beschreibung:

Gibt die Hilbertfunktion eines kanonischen Moduls an. Die Berechnung erfolgt über die Darstellung des kanonischen Modul durch die Funktion 'CanonicalModule'. Durch Vergleich mit der Hilbertfunktion des ursprünglichen nulldimensionalen Schemas lässt sich so die Funktion 'CanonicalModule' zum Teil kontrollieren.

Speicherort:    $contrib\eisenmann\cm.pkg

benötigte Funktionen:   ----

TOP

InverseMatrix

Syntax:

InverseMatrix(M:MAT):MAT

Beschreibung:

Gibt die zu M inverse Matrix zurück, vorausgesetzt M ist invertierbar.

Speicherort:    $contrib\eisenmann\bm.pkg

benötigte Funktionen:   EMatComb, EMatExch, EMatMult

TOP

IsCayleyBach

Syntax:

IsCayleyBach(Var P):BOOL

wobei P entweder eine Liste von projektiven Punkten (erste Koordinate ungleich Null!) eines reduzierten nulldimensionalen Schemas oder ein 1-dimensionales homogenes Ideal (darf die durch [erste Unbestimmte]=0 definierte Hyperebene nicht schneiden) oder RECORD "Schema" ist.

Beschreibung:

Testet, ob das Ideal P bzw. das homogene Verschwindungsideal des durch P definierten Schemas die Cayley-Bacharach Eigenschaft besitzt.

Speicherort:    $contrib\eisenmann\cb.pkg

benötigte Funktionen:   ColonOfDeg, GetRegSeq

TOP

IsUniform

Syntax:

IsUniform(Var P, A):BOOL

wobei P entweder eine Liste von Punkten eines reduzierten Schemas ist oder RECORD "Schema"
A ist entweder eine ganze Zahl (INT) oder eine Liste von zwei ganzen Zahlen ([A1:INT, A2:INT])

Beschreibung:

Funktioniert derzeit nur für reduzierte Schemata! Testet, ob das durch P gegebene Schema A-uniform ist, bzw. falls A eine Liste von zwei ganzen Zahlen A1 und A2 ist, ob das Schema (A1,A2)-uniform ist.

Speicherort:    $contrib\eisenmann\uni.pkg

benötigte Funktionen:   IsUniform_1, IsUniform_2

TOP

IsUniform_1

Syntax:

IsUniform_1(Var P, D:INT):BOOL

wobei P entweder eine Liste von Punkten eines reduzierten Schemas ist oder RECORD "Schema"

Beschreibung:

Funktioniert derzeit nur für reduzierte Schemata! Testet, ob das durch P gegebene Schema D-uniform ist. Kombiniert dabei die beiden Routinen IsUniformSmall und IsUniformSpecial. Wird von 'IsUniform' aufgerufen, falls 'IsUniform' als zweiter Parameter eine ganze Zahl übergeben wurde.

Speicherort:    $contrib\eisenmann\uni.pkg

benötigte Funktionen:   IsUniformSmall, IsUniformSpecial

TOP

IsUniform_2

Syntax:

IsUniform_2(Var P, I:INT, J:INT):BOOL

wobei P entweder eine Liste von Punkten eines reduzierten Schemas ist oder RECORD "Schema"

Beschreibung:

Funktioniert derzeit nur für reduzierte Schemata! Testet, ob das durch P gegebene Schema (I,J)-uniform ist. Wird von 'IsUniform' aufgerufen, falls 'IsUniform' als zweiter Parameter eine Liste von zwei ganzen Zahlen übergeben wurde.

Speicherort:    $contrib\eisenmann\uni.pkg

benötigte Funktionen:   IsUniform, IsUniformSpecial_2, Liaison

TOP

IsUniformSmall

Syntax:

IsUniformSmall(Var P:RECORD Scheme, D:INT):BOOL

Beschreibung:

Funktioniert derzeit nur für reduzierte Schemata! Testet, ob das durch P gegebene reduzierte Schema D-uniform ist. Eignet sich nur für kleine D und sollte nur über die Routine 'IsUniform' aufgerufen werden.

Speicherort:    $contrib\eisenmann\uni.pkg

benötigte Funktionen:   GetBasisWithSocs

TOP

IsUniformSpecial

Syntax:

IsUniformSpecial(Var P:RECORD Scheme, D:INT):BOOL

Beschreibung:

Funktioniert derzeit nur für reduzierte Schemata! Testet, ob das durch P gegebene reduzierte Schema X ein (deg(X)-Hilbert(D))-uniformes Schema ist (Hilbert = Hilbertfunktion von X). Diese Funktion sollte nur über 'IsUniform' aufgerufen werden mit entsprechendem zweiten Parameter deg(X)-Hilbert(D).

Speicherort:    $contrib\eisenmann\uni.pkg

benötigte Funktionen:   CanonicalModule

TOP

IsUniformSpecial_2

Syntax:

IsUniformSpecial_2(Var P:RECORD Scheme, D:INT):BOOL

Beschreibung:

Funktioniert derzeit nur für reduzierte Schemata! Testet, ob das durch P gegebene reduzierte Schema X ein (deg(X)-Hilbert(D),D)-uniformes Schema ist (Hilbert = Hilbertfunktion von X). Diese Funktion sollte nur über 'IsUniform' aufgerufen werden mit der Liste [deg(X)-Hilbert(D),D] als zweiten Parameter .

Speicherort:    $contrib\eisenmann\uni.pkg

benötigte Funktionen:   CanonicalModule

TOP

Liaison

Syntax:

Liaison(Var P:RECORD Scheme):BOOL

Beschreibung:

Testet, ob ein übergebenes (Delta_X, Sigma_X)-uniformes Schema auch (Delta_X+1, Sigma_X-1)-uniform ist. Diese Funktion sollte nicht direkt, sondern nur über die Funktion 'IsUniform' aufgerufen werden.

Speicherort:    $contrib\eisenmann\codes.pkg

benötigte Funktionen:   ColonOfDeg, GetRegSeq

TOP

Mult

Syntax:

Mult(M:MAT, V:VECTOR):VECTOR

Beschreibung:

Liefert das Produkt einer Matrix M mit einem Vektor V. Dabei muss Anzahl der Spalten von M gleich der Länge von V sein.

Speicherort:    $contrib\eisenmann\bm.pkg

benötigte Funktionen:   ----

TOP

PBM

Syntax:

PBM(P:LIST):LIST

Beschreibung:

Projektiver Buchberger-Möller-Algorithmus; nimmt als Argument eine Liste P von projektiven Punkten und liefert eine Liste G von Polynomen, die eine Gröbner Basis des homogenen Verschwindungsideals von P bilden.

Speicherort:    $contrib\eisenmann\bm.pkg

benötigte Funktionen:   StoppingCriterion

TOP

RadicalOfZerodim

Syntax:

RadicalOfZerodim(I:IDEAL):IDEAL

Beschreibung:

Berechnet das Radikalideal eines nulldimensionalen Ideals. Nicht im allgemeinen Funktionsumfang enthalten, da sie für Uniformitätsberechnungen nicht benötigt wird! Muss durch Ausführen der Datei "radicalofzerodim.coc" geladen werden.

Speicherort:    $contrib\eisenmann\radicalofzerodim.coc

benötigte Funktionen:   ----

TOP

ReedMullerMinimalDistance

Syntax:

ReedMullerMinimalDistance(M:MAT):INT
ReedMullerMinimalDistance(P, J:INT):INT

wobei P entweder eine Liste von Punkten eines reduzierten Schemas ist oder RECORD "Schema"

Beschreibung:

Die erste Version liefert den Minimalabstand des durch die Matrix M erzeugten linearen Codes (Zeile = Codewort). Dabei darf die erste Zeile keine Nulleinträge enthalten und die Matrix darf keine identischen Spalten enthalten.
In der zweiten Version liefert die Funktion den Minimalabstand des Reed-Muller-Codes der J-ten Ordnung zu dem durch P gegebenen reduzierten nulldimensionalen Schema. Die erste Koordinate der Punkte des Trägers zum gegebenen Schema muss ungleich 0 sein.

Speicherort:    $contrib\eisenmann\codes.pkg

benötigte Funktionen:   ReedMullerMinimalDistance1

TOP

ReedMullerMinimalDistance1

Syntax:

ReedMullerMinimalDistance1(P, J:INT):INT

wobei P entweder eine Liste von Punkten eines reduzierten Schemas ist oder RECORD "Schema"

Beschreibung:

Liefert den Minimalabstand des Reed-Muller-Codes der J-ten Ordnung zu dem durch P gegebenen reduzierten nulldimensionalen Schema. Die erste Koordinate der Punkte des Trägers zum gegebenen Schema muss ungleich 0 sein.

Speicherort:    $contrib\eisenmann\codes.pkg

benötigte Funktionen:   IsUniform, IsUniformSpecial_2, Liaison

TOP

RegSeqTest

Syntax:

RegSeqTest(F:LIST):BOOL

Beschreibung:

Testet die Polynome der Liste F, ob sie eine reguläre Folge bilden.

Speicherort:    $contrib\eisenmann\cb.pkg

benötigte Funktionen:   ----

TOP

StoppingCriterion

Syntax:

StoppingCriterion(Terms:LIST, E:INT):BOOL

Beschreibung:

Entscheidet, ob die zu einem gewissen Zeitpunkt in 'PBM' berechnete Gröbner Basis G bereits das gesuchte homogene Verschwindungsideal erzeugt.

Speicherort:    $contrib\eisenmann\bm.pkg

benötigte Funktionen:   ----

TOP


---  END OF LIST  ---