Willkommen
**********

   Willkommen by [3mLAPLACE[0m V0.7 (Arbeitsversion). Dieses
Programmdokumentation beschreibt die Installation und Benutzung des
Programmes [3mLAPLACE[0m. Die Dokumentation wurde zuletzt am 17.9.1996
bearbeitet.

   [3mLAPLACE[0m ist MAILWARE!! Schicke mir eine e-Mail oder Postkarte,
wenn es Dir gefällt. Werfe bitte einen Blick auf Copyright für weitere
Informationen!

Einleitung
**********

Beschreibung
============

   [3mLAPLACE[0m ist (oder soll es zumindest sein..) ein universelles
Werkzeug, um mathematische Probleme zu behandeln. Im Gegensatz zu den
meisten anderen Matheprogrammen, die es für den AMIGA gibt, besitzt es
keine Oberfläche mit hunderten verschiedener Fenster. Stattdessen
arbeitet mensch mit einer Shell-ähnlichen Oberfläche, Ausdrücke
werden eingegeben und das Ergebnis wird ausgegeben.

   Als ich für mein Studium ein Programm suchte, das in der Lage ist,
Matrixoperationen durchzuführen, fand ich nur Programme, die mit
Fließkommazahlen arbeiten, was schnell zu erhebliche Fehlern führt.
Also schrieb ich [3mLAPLACE[0m, das in der Lage war mit Bruchzahlen zu
rechnen. Anschließend schrieb ich es nocheinmal völlig neu, so daß
es in der Lage ist, symbolisch zu rechnen. Was daraus geworden ist,
kannst Du selber beurteilen.

Copyright
=========

   (C)1996 by A VISION OF PARADISE

   Dies ist noch eine Arbeitsversion von [3mLAPLACE[0m. Sobald es einen
ekzeptablen Zustand erreicht, plane ich, es als SHAREWARE zu
veröffentliche. Momentan is [3mLAPLACE[0m noch MAILWARE, daß heißt, Du
sollst mir eine kurze e-Mail oder Postkarte (wenn Du keinen
Internetzugang hast) schicken. Auf diese Weise erfahre ich dann, ob
eine Nachfrage nach meinem Programm besteht. Dies hat aber nichts mit
einer Registrierung oder ähnlich zu tun; sollte es einmal eine
SHAREWARE Version geben, so mußt Du trotzdem dafür löhnen (wenn Du
willst ;-)

   Es ist nicht erlaubt, Geld für die Verbreitung von [3mLAPLACE[0m zu
nehmen, mit Ausnahme von Urban Mueller und seiner AMINET CD-Sammlung.

   [3mLAPLACE[0m darf nur im Orginalarchiv ([1mLaplace.lha[0m) vertrieben
werden, das im AMINET, Verzeichnis [1mmisc/math/[0m, zu finden ist.

   Es ist nicht gestattet, modifizierte Version von [3mLAPLACE[0m in Umlauf
zu bringen.  Du kannst eine veränderte Version für dich selbst
benutzen, aber ich übernehme in diesem Falle keinerlei Verantwortung
für irgentwas (selbst ich habe teilweise Schwierigkeiten zu verstehen,
was in [3mLAPLACE[0m manchmal vor sich geht, warum sollte es bei Dir dann
anders sein ;-)

   Die Benutzung erfolg auf eigene Gefahr. Ich übernehme keine
Verantwortung für nukleare Störfälle oder ähnliches, die durch
falsche Ergebnisse von [3mLAPLACE[0m verursacht werden.

   Die folgenden Programme wurden benutzt, um [3mLAPLACE[0m zu erstellen:

   * MUI V3.3 von Stefan Stuntz (siehe auch [1mDocs/Readme.mui[0m).

   * DICE V2.07 von Matthew Dillon.

   * ENFORCER V37 von Michael Sinz.

   * GOLDED V3.1.4 von Dietmar Eilert.

   * REVUP V1.3 von Boris Folgmann.

   * FLEXCAT V1.3 von Jochen Wiedmann.

   * MAKEGUIDE V1.54 von Reinhard Spisser and Sebastiano Vigna.

   * MUCHMORE V4.1 von Fiedtjof Siebert und Christian Stiens.

Registrierung
=============

   Solange [3mLAPLACE[0m noch FREEWARE ist, gibt es keinen Grund sich zu
registrieren. Selbst verständlich können Kommentare, Fehlerberichte,
etc.  an mich geschickt werden.

Addresse
========

   Dieses Meisterwerk wurde geschaffen von:

    [1mP!\K of /|_ __   . /\  |\__: /|____  /\__:__/\  .
    [0m [1m      /   |  \  :/  \ |   |/      \/    |    \ :
    [0m [1m    _/    |   \_|  \ \|  _/   |\   \___   ___/ |
    [0m [1m    \     |     |   \ \  \    |/   /         \ |
    [0m [1m     \ _________|____\  _/\ ______/\  __|__  / :
    [0m [1m      \|        :     \/   \|       \/  ·  \/  .
    [0m

                                s-mail:

                          Benjamin Stegemann

                          Rohrbacher Str. 66

                           69115 Heidelberg

                                Germany

                                e-mail:

                   bstegema@ix.urz.uni-heidelberg.de

                bstegema@urz-mail.urz.uni-heidelberg.de

                                 WWW:

             http://www.rzuser.uni-heidelberg.de/~bstegema

   Aktuelle Versionen von [3mLAPLACE[0m können im AMINET, Verzeichnis
[1mmisc/math/[0m gefunden werden.

   Falls Du an anderen Programmen von mir interessiert bist, wirf' doch
einen Blick auf die folgenden:

   * [3mShuffleRun[0m - Arcarde Spiel für zwei Spieler, 300 Level, Editor
     und Tourniermodus.

   * [3mWriter[0m - Erstellt absolut sinnlose Texte aus jeden ASCII Text.
     Entstellt sogar die größer literarischen Meisterwerke!!

   * [3mTreeGrow[0m - Erzeugt Fraktale Bäume.

   Die Programme sind nicht im AMINET erhältlich, sie sind schon recht
alt.
Aber sie sind auf Fish-Disketten veröffentlicht:
    [3mShuffleRun[0m ist auf Diskette #815, [3mTreeGrow[0m auf #814.
[3mWriter[0m würde nur in einigen MailBoxen veröffentlicht.
Solltest Du tatsächlich interessiert sein, kannst Du mir gerne eine
Mail schicken.

   * [3mGED_Syntax[0m - LaTeX und Texinfo Syntax parser für GoldED4. Ist
     im AMINET zu finden: [1mtext/edit/GED_Syntax.lha[0m.

   * [3mPGP_GED4[0m - PGP für GoldED4. (Ich hab' nur ein ARexx Skript von
     Lunz O. Wolfgang modifiziert). Im AMINET:
     [1mtext/edit/PGP_GED4.lha[0m.

Greets
======

   Thanks must go to (in alphabetical order):

       [3mLauri Aalto[0m (support), [3mAnders Bakkevold[0m (Amiga Translators'
Organisation), [3mVolker Barthelmann[0m (support), [3mLars Bischoff[0m
(support), [3mMichael Bock[0m (support), [3mDirk Burkamp[0m (support),
[3mChristoph Dahlen[0m (support), [3mMatthew Dillon[0m (DICE), [3mWalter
Dörwald[0m (icons), [3mDietmar Eilert[0m (GOLDED), [3mMattias p. Eriksson[0m
(icons), [3mBoris Folgmann[0m (REVUP), [3mGrazgur[0m (support), [3mMichael 'Mick'
Hohmann[0m (icons), [3mMartin Huttenloher[0m (icons), [3mMario Kemper[0m
(support), [3mLars Malmborg[0m (support) [3mKonstantinos Margaritis[0m
(support), [3mAndreas Mayer[0m (support) [3mFrederik Orinius[0m (support),
[3mSotirios Pappas[0m (support) [3mChristoph Rickers[0m (support), [3mThomas
Schraitle[0m (support), [3mFiedtjof Siebert[0m (MUCHMORE), [3mMichael Sinz[0m
(ENFORCER), [3mReinhard Spisser[0m (MAKEGUIDE), [3mChristian Stiens[0m
(MUCHMORE), [3mStefan Stuntz[0m (MUI), [3mTracer[0m, [3mKen Tyler[0m (support),
[3mSebastiano Vigna[0m (MAKEGUIDE), [3mJochen Wiedmann[0m (FLEXCAT)

   And all other folks around this crazy planet, who support the
AMIGA!!!!

    [1mP!\K of /|_ __   . /\  |\__: /|____  /\__:__/\  .
    [0m [1m      /   |  \  :/  \ |   |/      \/    |    \ :
    [0m [1m    _/    |   \_|  \ \|  _/   |\   \___   ___/ |
    [0m [1m    \     |     |   \ \  \    |/   /         \ |
    [0m [1m     \ _________|____\  _/\ ______/\  __|__  / :
    [0m [1m      \|        :     \/   \|       \/  ·  \/  .[0m

Erste Schritte
**************

Voraussetzungen
===============

   * 68020 CPU oder besser.

   * OS3.0 (V38) oder besser.

   * MUI3.3 (siehe auch [1mDocs/Readme.mui[0m).

   * und einen schnellen AMIGA!!!

Installation
============

   Da [3mLAPLACE[0m immernoch in Arbeit ist, habe ich noch kein
Installer-Skript geschrieben.

   Aber keine Angst! Die Installation ein äußerst einfach, einfach
die Schublade [1mLaplace[0m in das Verzeichnis ziehen, wo es hin soll.
Fertig! Keine Fonts, keine Bibliotheken, nicht einmal ein Assign wird
benötigt.

   Außer mir wird dies zwar keiner benötigen, aber wenn ein Assign
[1mLaplace:[0m auf das Verzeichnis [1mLaplace[0m erstellt wird, so wird dieses
als [1mPROGDIR:[0m benutzt, anstelle des Verzeichnisses aus dem es
gestartet wurde.

Tooltypes
=========

   Im Piktogramm von [3mLAPLACE[0m können einige Einstellungen gemacht
werden. Dazu muß nur das Piktogramm angewählt werden und dann
[1mPiktogramm/Informationen[0m im Menü gewählt werden. Anschließend
kann die Liste der Tooltypes modifiziert werden.

   Tooltypes haben immer folgendes Format:

     1. SCHLÜSSELWORT
     2. SCHLÜSSELWORT=wert

   Format 1 ist für Schlüsselwörter die mit [1mSchalter[0m
gekennzeichnet sind. Die beschriebene Aktion tritt in Kraft, wenn
dieses Schlüsselwort angegeben ist. Um es zu deaktivieren, sind
einfach Klammern um das Schlüsselwort zu setzen.

   Für Tooltypes, die mit [1mZeichenkette[0m gekennzeichnet sind, ist
Format 2 zu verwenden.

   Unbekannte Schlüsselwörter werden ignoriert, auf
Groß-/Kleinschreibung wird nicht geachtet.

   Zur Zeit werden folgende Schlüsselwörter unterstützt:

[1mAREXXONLY[0m
     (Schalter)
     Wird dieses Schlüsselword gesetzt, wird beim Start kein
     Projektfenster geöffnet, sondern Laplace wartet im Hintergrund,
     und es erscheint ein neues Piktogramm auf der WorkBench.
     [3mLAPLACE[0m kann dann über die ARexx-Schnittstelle benutzt
     werden. Ein Doppelklick auf das Piktogramm öffnet ein neues
     Arbeitsfenster.

[1mQUIETEXIT[0m
     (Schalter)
     Wenn angegeben, werden beim Verlassen von [3mLAPLACE[0m keine
     Meldungen über vergessene Objekte gemacht.

[1mAUTOLOAD[0m
     (Zeichenkette)
     Hiermit läßt sich ein Projekt angeben, welches jedesmal geladen
     wird, wenn [3mLAPLACE[0m startet. Dies habe ich lediglich während des
     Programm testens benötigt...

[1mPREFS[0m
     (Zeichenkette)
     Es läßt sich ein Pfad für die Einstellungsdatei angeben, der an
     stelle von
         [1mPROGDIR:Laplace.prefs[0m benutzt werden soll.

Benutzung
*********

Arbeiten mit Laplace
====================

   [3mLAPLACE[0m arbeitet so ähnlich wie ein Shell-Fenster, Du gibst einen
Ausdruck ein und erhältst das Ergebnis (evtl. nach einiger Zeit;-).
Siehe auch Editing oder Menus für weiter Details über die Texteingabe
mit [3mLAPLACE[0m.

   [3mLAPLACE[0m's interne Organisation basiert auf Objekten. Objekte
können definiert werden, um später benutzt zu werden. Siehe dazu auch
Definitions und Expressions.

   Wenn ein neues Fenster geöffnet wird, werden verschiedene Dinge
gemacht, um die Arbeitsumgebung einzurichten:

   * die Optionen werden aus [1mPresets/Default.opts[0m geladen.

   * die F-Tasten Belegung wird aus [1mPresets/Default.fkey[0m geladen.

   * das Kommando [1minclude(Init.lh)[0m wird ausgeführt.  Diese Dateien
können modifiziert werden, um die Arbeitsumgebung den eigenen Wünsche
anzupassen.  Siehe auch Presets und Libraries.

   Um Projekte zu laden und zu speichern, siehe Project.

Editieren
=========

   Das Clipboard wird unterstützt, jedoch können zur Zeit nur ganze
Zeilen [3mausgeschnitten[0m, [3mkopiert[0m und [3meingefügt[0m werden.

       [3mZeile einfügen[0m fügt eine Zeile vor der aktuellen Zeile ein;
um eine Zeile am Ende anzufügen, drücke einfach [1m<return>[0m in der
letzten Zeile.  Ein [3mDoppelklick[0m auf eine Zeile hat den gleichen
Effekt, wie [1m<return>[0m zu betätigen.

   Folgende Tasten(-kombinationen) können zum Editieren benutzt werden:

[1mbackspace[0m
[1mdel[0m
[1mleft[0m
[1mright[0m
[1mup[0m
[1mdown[0m
     das Übliche...

[1mshift left[0m
[1mshift right[0m
     ein Wort weiter

[1malt left[0m
     zum Zeilenanfang

[1malt right[0m
     zum Zeilenende

[1malt up[0m
     zur ersten Zeile

[1malt down[0m
     zur letzten Zeile

[1mctrl up[0m
     einen Eintrag in der Historieliste nach oben

[1mctrl down[0m
     einen Eintrag in der Historieliste nach unten

[1mctrl-shift up[0m
     zum ersten Eintrag in der Historieliste

[1mctrl-shift down[0m
     zum letzten Eintrag in der Historieliste

[1mesc[0m
     die Änderungen in der aktuellen Zeile rückgängig machen. Dies
     is nur möglich, solange Du die Zeile nicht verläßt.

[1mreturn[0m
     die aktuelle Zeile auswerten und in die nächste springen

[1mshift return[0m
     die aktuelle Zeile auswerten und eine neue Zeile danach einfügen

[1malt return[0m
     die aktuelle Zeile an der Schreibmarke in zwei Zeilen aufteilen

[1mshift backspace[0m
     die Zeile von der Schreibmarke bis an den Anfang löschen

[1mshift del[0m
     die Zeile von der Schreibmarke bis ans Ende löschen

[1malt backspace[0m
     die Zeile ganz löschen

[1malt del[0m
     das Ergebnis der Zeile löschen

[1mctrl tab[0m
     eine Liste mit allen bekannten Objekten öffnen. Der ausgewählte
     Eintrag wird dann in die Zeile eingefügt

[1malt tab[0m
     eine Liste mit allen Funktionen öffnen. Der ausgewählte Eintrag
     wird dann in die Zeile eingefügt

[1mFn[0m
[1mshift Fn[0m
     eine Zeichenkette in den Text einfügen.

Menues
======

[1mProjekt[0m
    [1mÜber[0m
          ;-)

    [1mÜber MUI[0m
          über MUI, was sonst

    [1mNeues Fenster[0m
          Öffnet ein neues, leeren Fenster

    [1mLöschen[0m
          Löscht alle Einträge des aktuellen Fensters

    [1mLaden..[0m
          Lädt eine Projektdatei

    [1mSchnell laden[0m
          Eine Liste von Projektdateien für schnellen Zugriff. Siehe
              [1mProjekt/Einstellungen[0m, um sie zu verändern.

    [1mSpeichern[0m
          Speichert eine Projektdatei unter dem bekannten Name

    [1mSpeichern als..[0m
          Speichert eine Projektdatei mit neuem Namen

    [1mEntfernen[0m
          Löscht Projektdateien (für immer!)

    [1mEinstellungen[0m
          Öffnet das Einstellungs Fenster. Siehe unten für genaueres.

    [1mMUI Einstellungen[0m
          Öffnet das MUI Einstellungs Fenster

    [1mBeenden[0m
          NEIIIIN :-O

[1mBearbeiten[0m
    [1mAusschneiten[0m
    [1mKopieren[0m
    [1mEinfügen[0m
    [1mZeile einfügen[0m
    [1mZeile löschen[0m
          siehe Editing

[1mFenster[0m
    [1mDebug[0m
          Öffnet das Debug Fenster mit einer Liste aller bisherigen
          Debug-Texte

[1mOptionen[0m
    [1mBearbeiten...[0m
          Hier werden die Standartwerte für dynamische Optionen (siehe
          Options für eine nähere Beschreibung) und die Zeichenketten,
          die mit den F-Tasten verknüpft sind, angegeben.

          Die Zeichenketten werden an der Schreibmarke eingefügt, wenn
          die entsprechende F-Taste gedrückt wird. Es lassen sich
          einige besondere Bezeichner einfügen, die mit einem [1m%[0m
          gekennzeichnet werden. Um ein 'normales' [1m%[0m einzufügen,
          muß [1m%%[0m angeben werden. Die möglichen Bezeichner sind:

         [1m%l[0m
               bewegt die Schreibmarke eine Position nach links.

         [1m%(l n)[0m
               bewegt die Schreibmarke n Positionen nach links.

         [1m%r[0m
               bewegt die Schreibmarke eine Position nach rechts.

         [1m%(r n)[0m
               bewegt die Schreibmarke n Positionen nach rechts.

         [1m%(run Kommando)[0m
               das angegebene Shell-Kommando wird ausgeführt.

          Die Optionen und F-Tastenbelegung wird mit jeder Projektdatei
          abgespeichert, sie können aber auch explizit aus/in
          Einstellungsdateien geladen und gespeichert werden.

    [1mLaden...[0m
          Lädt Optionen oder eine F-Tastenbelegung aus einer
          Einstellungsdatei. Es kann auch eine Projektdatei angegeben
          werden, in diesem Fall werden die Optionen/F-Tasten aus dem
          Projekt extrahiert.

    [1mSpeichern...[0m
          Speichert Optionen oder eine F-Tastenbelegunf in eine
          Einstellungsdatei.

[1mARexx[0m
     Eine Liste mit ARexx Skripten. Siehe [1mProjekt/Einstellungen[0m, um
     sie zu verändern.

[1mHilfe[0m
    [1mIndex[0m
          Lädt diese Datei und zeigt das Hauptmenü an

    [1mFunktionen[0m
          Lädt die Datei [1mDocs/../Funktionen[0m und zeigt eine Liste
          aller verfügbaren intern Funktionen.

    [1mARexx[0m
          Lädt die Datei [1mDocs/../ARexx[0m, die die Benutzung der ARexx
          Schnittstelle beschreibt

    [1mSuchen...[0m
          Öffnet ein Fenster, in dem Du ein Schlüsselwort angeben
          kann, nach welchem dann gesucht wird. Falls es gefunden wird,
          wird die entprechende Seite angezeigt.  Das Text Fenster
          läuft parallel, es muß also nicht geschlossen werden, um
          weiterzuarbeiten. Um die Suche fortzusetzen, kann einfach das
          'Suche...' Fenster wieder nach vorne gebracht werden, und
          'Weiter suchen' angewählt werden.

Einstellungen
-------------

   bla bla bla...

Projektdateien
==============

   [3mLAPLACE[0m speichert Projekte als einfache ASCII Dateien, die mit
jedem Texteditor bearbeitet werden können. Normalerweise werden sie im
[1mProjects[0m Verzeichnis abgespeichert.

   Die Optionen und F-Tastenbelegung (siehe Menus) wird mit in der
Projektdatei gepeichert. Dazu wird das gleiche Format wie in
Optionsdateien verwendet.

Optionen
========

   Optionen werden in einfachen ASCII Dateien gespeichert. Sie können
mit jedem Texteditor bearbeitet werden und werden normalerweise im
[1mPresets[0m Verzeichnis abgespeichert.

   Das Zeilenformat ist relativ einfach: eine Zeile beginnt mit einem
[1m#[0m, gefolgt von einem Schlüsselwort, einem [1m=[0m und dem Wert. Es
dürfen keine Leerstellen eingefügt werden. Ein Beispiel:
     #USEFLOAT=TRUE
     #ERRBND=12

Optionen
--------

   Die Optionen werden gewöhnlich in Dateien mit [1m.opts[0m Endung
abgespeichert.  Folgede Schlüsselwörter sind erlaubt:

[1m#USEFLOAT[0m
     auf [1mTRUE[0m oder [1mFALSE[0m zu setzten

[1m#SIMPLIFY[0m
     auf [1mTRUE[0m oder [1mFALSE[0m zu setzten

[1m#ERRBND[0m
     eine Ganzzahl zwischen [1m1[0m und [1m32[0m

[1m#EXPDSP[0m
     eine Ganzzahl zwischen [1m1[0m und [1m12[0m

[1m#PREC[0m
     eine Ganzzahl zwischen [1m1[0m und [1m15[0m

F-Tasten
--------

   Die F-Tasten Belegung wird in Dateien mit [1m.fkey[0m Endung
gespeichert. Der ganze Rest der Zeile, mit allen Leerstellen, nach dem
[1m=[0m wird als Zeichenkette übernommen.

[1m#F1 ... #F10[0m
     F-Taste 1..10

[1m#F11 ... #F20[0m
     F-Taste 1..10 mit Shift-Taste

Ausdruecke
==========

   Ausdrücke werden so eingegeben, wie Du es wahrscheinlich gewohnt
bist, z.B.:
     1+2/3*(4-2) [1m<return>[0m

   Was ist wohl das Ergebnis...

   Etwas formaler ist ein korrekter Ausdruck:

   * ein Objekt (Types) oder

   * eine Referenz (Definitions) oder

   * ein Funktionsaufruf (Funktionen/Funktionen) oder

   * eine Ausdrucksliste (siehe unten) oder

   * Ausdruck binärer_Operator Ausdruck

   * unärer_Operator Ausdruck

   Binäre Operatoren sind:

[1m[1m+[0m, [1m-[0m, [1m*[0m, [1m/[0m, [1m^[0m[0m
     die sollten eigentlich bekannt sein...

[1m[1m×[0m[0m
     Vektorprodukt. Dies is kein normales [1mx[0m, sondern kann mit
     [1malt-x[0m erreicht werden!

[1m[1m||[0m[0m
     boolsches Oder

[1m[1m&&[0m[0m
     boolsches Und

[1m[1m==[0m, [1m!=[0m, [1m>[0m, [1m<[0m, [1m<=[0m, [1m>=[0m[0m
     Vergleichsoperatoren

   Der einzige unäre Operator ist:

[1m[1m![0m[0m
     boolsche Negation

   Es können mehrere Ausdrücke ein einer Zeile eingegeben werden. Sie
müssen dann von Kommas getrennt werden, und die Ergebnisse werden
untereinander ausgegeben, z.B.:
     1+2,2/4,12+10 [1m<return>[0m

Ausdruckslisten
---------------

   Eine Ausdrucksliste ist eine Folge von durch Kommas getrennten
Ausdrücken, die von einem geschwiftem Klammerpaar [1m{}[0m umgeben sind
oder mit der [1mdo()[0m Funktion erstellt werden.

   Alle Ausdrücke werden ausgewertet, aber nur die Ergebnis des
letzten Ausdruckes wird zurückgegeben. Dies macht also nur Sinn, wenn
die ersten Ausdrücke irgentwelche Nebeneffekte haben, wie z.B.
[1mdebug[0m.

   Ein Beispiel:
     sin({debug("Hallo Welt!"), pi/2}) [1m<return>[0m

Typen und Objekte
=================

   [3mLAPLACE[0m unterstützt zur Zeit sechs verschieden Objekttypen:
[1mNumber[0m (Zahlen), [1mBoolean[0m (boolsche Werte), [1mVector[0m (Vektoren),
[1mMatrix[0m (Matrizen), [1mEquation[0m (Gleichungen) und [1mSets[0m (Mengen).

   Normalerweise bestimmt [3mLAPLACE[0m den Typ eines Objectes, wenn es
erzeugt wird.  Wenn Du jedoch eine Konstante deklarierst, muß des Typ
explizit angegeben werden. Dazu wird die [1mconst()[0m Funktion benutzt mit
Namen in folgendem Format: [1mBezeichner:Typ[0m. Damit wird eine Konstante
mit dem angebenen [1mBezeichner[0m und [1mTyp[0m erstellt. Erlaubte Typen sind:

[1mn[0m, [1mnumber[0m
     Zahl (Standard, wenn kein Typ angegeben ist)

[1mv[0m, [1mvec[0m, [1mvector[0m
     Vektor beliebiger Dimension

[1mv[d][0m, [1mvec[d][0m, [1mvector[d][0m
     Vektor der Dimension [1md[0m

[1mm[0m, [1mmat[0m, [1mmatrix[0m
     Matrix beliebiger Größe

[1mm[r,c][0m, [1mmat[r,c][0m, [1mmatrix[r,c][0m
     Matrix mit [1mr[0m Zeilen und [1mc[0m Spalten

   Zum Beispiel:
     const(a:vec[3])
     [1,2,3;4,5,6;7,8,9] * a

Number (Zahl)
-------------

   Die üblichen Zahlen..

   Zahlen können auch in exponentieller Schreibweise eingegeben
werden, das Format ist
    [1m{+/-/<nothing>}ddddd[.ddddd][e{+/-/<nothing>}dddd][0m. Das sieht
komplizierter aus, als es ist;-) Um z.B. [1m6.626 * 10^(-34)[0m einzugeben,
ist einfach [1m6.626e-34[0m zu schreiben. Die (ganze) Zahl nach dem [1me[0m ist
einfach der Exponent. Es dürfen für den Exponenten keine Klammern
benutzt werden, auch wenn dieser negativ ist.

   [3mLAPLACE[0m unterstützt auch komplexe Zahlen. Um eine komplexe Zahl
[3mLAPLACE[0m supports complex numbers. To enter a complex number, simply
write something like [1ma + b*i[0m. But they are not fully implemented, e.g.
errordistribution is lost when you have complex value in your
expression and not all functions work now with complex arguments.

   Solange Ganzzahlen eingegeben werden, versucht [3mLAPLACE[0m mit
rationalen Zahlen zu arbeiten. [1m1/2[0m ist also gegenüber [1m0.5[0m
vorzuziehen (in diesem simplen Fall kann [3mLAPLACE[0m die Umwandlung auch
selber durchführen, aber dies ist nicht immer möglich). Auf diese
Weise erhälst Du immer exakte Ergenisse.

   Eine fantastische neue Fähigkeit von [3mLAPLACE[0m ist direkte
Unterstützung von Gauss'scher Fehlerfortpflanzung. Nun ist es möglich,
Werte mit ihrer Standartabweichung einzugeben, die nötigen
Berechnungen vorzunehmen und anschließend das Endergebnis mit
Standartabweichung zu erhalten! Dies ist besonders hilfreich, wenn Du
mit Meßergebnissen arbeitet, wie ich es während meines
Physikpraktikums mußte.

   Zum Beispiel eine Messung der Erdbeschleunigung durch eine
Zeitmessung eines frei fallenden Balles. Du hast die Fallstrecke auf
1.119 Meter mit einer Genauigkeit von einem Millimeter und die Zeit auf
0.50 Sekunden mit der Genauigkeit von 1/50 Sekunden gemessen. Jetzt
gibst Du eine ein:
     t=0.50±0.02
     h=1.119±0.001
     g=2*s/h^2
   und das war alles!! (Nächstes Mal solltest Du etwas genauer
messen..)

   Das [1m±[0m-Zeichen kann mit [1malt-y[0m (mit deutscher Tastatur) oder
[1malt-z[0m (mit anderer Tastatur) eingegeben werden.

   Aber Du solltest Dir bewußt sein, daß Du in einigen Fällen das
falsche Ergebnis erhälst, da [1m10±1 * 10±1[0m nicht das gleiche wie
[1m10±1 ^ 2[0m ist. Wenn der gleiche Wert mehrfach im Ausdruck vorkommt,
wird dieser ausgewertet, also ob diese unabhängige Fehler hätten!

   Die beste Möglichkeit, dies zu umgehen, ist, alle Werte mit Fehlern
als Parameter zu deklarieren, die Formel für das Endergebnis soweit
wie möglich zusammenzufassen, so daß jeder Parameter nur einmal
vorkommt, z.B.:
     x := 10±1
     y := 12±2
     a = 3*x^2*y^3
     b = 5*x^3*y^2
     result = a/b
     eval(result)

   Wenn Du auf der anderen Seite etwas hat wie:
     x := 10±1
     result = x/(x+1)
   wirst Du ein falsches Ergebnis erhalten, und es gibt keine
Möglichkeit, dies zu vermeiden.

Boolean (boolsche Werte)
------------------------

   Ein boolsches Objekt kann nur die beiden Werte [1mTRUE[0m (wahr) and
[1mFALSE[0m (falsch) annehmen.

   Mögliche Operatoren für boolsche Objekte sind: [1m&&[0m (Und), [1m||[0m
(Oder) und [1m![0m (Nicht).

     a=TRUE
     b=FALSE
     c=TRUE
     a && (b || !c)

Vector (Vektor)
---------------

   Ein Vektor ist ein Tupel von Zahlen. Um den Vektor [1m(2,4,1)[0m zu
erzeugen, ist [1m[2,4,1][0m einzugeben. Bei den Komponenten kann es sich
selbstverständlich auch um komplexere Ausdrücke handeln.

   Vektoren können addiert und (skalar) multipliziert werden, oder es
kann eine [1mZahl[0m oder eine [1mMatrix[0m mit einem Vektor multipliziert
werden (in dieser Reihenfolge, nicht [1mVektor * Zahl[0m!). Das
Vektorprodukt zweier 3-dimensionaler Vektoren erhälst Du mit [1mVektor
× Vektor[0m, wobei das [1m×[0m kein normales x ist, sondern (auf der
deutschen Tastatur) über [1malt-x[0m erreicht wird.

Matrix
------

   Eine Matrix ist ein zweidimensionaler Vektor.. Eben eine Matrix! Die
Matrix mit den Spaltenvektoren(!) [1m(1,2,3)[0m, [1m(4,5,6)[0m, [1m(7,8,9)[0m wird
mit [1m[1,2,3;4,5,6;7,8,9][0m erzeugt. Willst Du stattdessen die
Zeilenvektoren benutzen, ist [1m[1,4,7;2,5,8;3,6,9]~[0m zu schreiben (eine
'Tilde' anhängen, was zum selben Ergebnis führt.

   Matrizen können addiert und multiplizert werden, außerdem läßt
sich eine [1mZahl[0m mit einer Matrix multiplizieren (in dieser
Reihenfolge!).

Equation (Gleichung)
--------------------

   Eine Gleichung wird mit der Funktion [1meq()[0m erzeugt.

   Mit Gleichungen läßt sich wie mit jedem anderen Objekt rechnen.
Die Operationen werden dabei auf beide Seiten der Gleichung angewandt.
Werden zwei Gleichungen addiert oder miteinander multipliziert, so
werden jeweils die beiden linken und rechten Seiten miteinander
verknüpft.

   Ein Beispiel:
     a=eq(2*x+4,0) [1m<return>[0m
     a=a-4 [1m<return>[0m
     a=a/2 [1m<return>[0m

   Auch Funktionen können auf Gleichungen angewandt werden, z.B.:
     a=eq(ln(x),12*e) [1m<return>[0m
     a=exp(a) [1m<return>[0m

Set (Menge)
-----------

   Um eine Menge zu erzeugen, wird die [1mset()[0m benutzt.

   Eine Menge muß immer Objekte gleichen Typs enthalten.

   Bis auf einige statistische Funktionen, die die Menge als ganzen
betreffen, werden alle Operationen und Funktionen auf alle Elemente der
Menge angewandt, und das Ergebnis ist wiederum eine Menge, z.B.
     s=set(1,2,3) [1m<return>[0m
     s+2 [1m<return>[0m
   Das Ergebnis ist in diesem Fall die Menge {3,4,5}

Definitionen
============

   Um eine Variable zu definieren, oder um ein Ergebnis an anderer
Stelle verwenden zu können, kann mit [1mname = Ausdruck[0m dem Ausdruck
ein Name zugewiesen werden.  Dieses Objekt kann dann in den
folgenden(!) Zeilen referenziert werden. Wenn nach einer Referenz
gesucht wird, beginnt [3mLAPLACE[0m immer in der aktuellen Zeile und sucht
von dort rückwärts bis zum ersten passenden Objekt. Wird ein Name also
mehrfach verwendet, so wird immer der letzte verwandt, z.B.:
     [1] a=1/2 [1m<return>[0m
     [2] 2*a [1m<return>[0m
     => benutzt 'a' aus [1]
     [3] a=a+1 [1m<return>[0m
     => 'a' auf der rechten Seite referenziert die Definition in [1].
     => Das erzeugt Objekt kann weiter unten als 'a' referenziert werden.
     [4] a [1m<return>[0m
     => benutzt 'a' aus [3]

   Auch wenn Du im nachhinein wieder zu [2] zurückgeht, wirst Du das
gleiche Ergebnis erhalten, da das Objekt 'a' in [1] durch die neue
Definition in [3] nicht überschrieben wird. Die neue Definition läßt
sich nur ab Zeile [4] ansprechen.

   Falls [3mLAPLACE[0m einen Bezeichner findet, der noch nicht definiert
ist, wird automatisch eine Konstante erzeugt:
     f(x) = x^2 [1m<return>[0m
     f(a) [1m<return>[0m
     => a^2
   Das ist das Selbe, wie:
     f(x) = x^2 [1m<return>[0m
     const(a) [1m<return>[0m
     f(a) [1m<return>[0m
     => a^2

   Dies funktioniert jedoch nur für Zahlen. Wenn Du z.B. eine
Vektor-Konstante benötigst, mußt Du dies explizit mit [1mconst()[0m
angeben.

   Für gewöhnlich sollten Konstanten immer mit [1mconst()[0m deklariert
werden, ansonsten läufst Du Gefahr, daß der Bezeichner schon vorher
(z.B. in einer Bibliotheksdatei) verwendet wurde, was auf einen
Typ-Fehler hinauslaufen kann. Betracht zum Beispiel dies:
     a=[1,2]
     ....
     [tausende Zeilen...]
     ....
     f(x)=x^2
     f(a)
     error--> Nicht für Vektoren definiert.

Namenskonventionen
------------------

   Die Namen für eine Zuweisung müssen bestimmte Eigenschaften
erfüllen. Erlaubte Zeichen sin [1mA..Z Ö Ä Ü a..z ö ä ü 0..9 @ § $
' ~ _[0m, wobei das erste Zeichen keine Zahl sein darf.

   Zwei Zeichen haben besondere Eigenschaften: [1m~[0m (Tilde) und [1m_[0m
(Unterstrich). Ist [1m_[0m das erste Zeichen, wird über dem folgenden
Namen ein Querstrich gezeichnet. Ein weiteres Vorkommen von [1m_[0m erzeugt
einen Index rechts unten vom vorhergehenden Name, während [1m~[0m den
Index recht ober erzeugt. Dabei wird der Rest des Names nach dem [1m_[0m
oder [1m~[0m als Index verwendet, z.B. [1m_a[0m, [1ma_1[0m, [1ma~1[0m oder alles
zusammen [1m_a~2_1[0m.

   Seit Version 0.3 unterstützt [3mLAPLACE[0m griechische Buchstaben. Wenn
ein Name oder Index mit der Bezeichnung eines griechischen Buchstabens
übereinstimmt, wird dieser benutzt. Nach der Bezeichnung können evtl.
noch Ziffern folgen, z.B.  [1malpha1_beta[0m. Wird die Bezeichnung groß
geschrieben, wird der große griechische Buchstabe benutzt, ansonsten
der kleine. Die Bezeichnungen lauten wie folgt:

       [3malpha[0m, [3mbeta[0m, [3mgamma[0m, [3mdelta[0m, [3mepsilon[0m, [3mzeta[0m, [3meta[0m,
[3mtheta[0m, [3mjota[0m, [3mkappa[0m, [3mlambda[0m, [3mmy[0m, [3mny[0m, [3mxi[0m, [3momikron[0m,
[3mpi[0m, [3mrho[0m, [3msigma[0m, [3mtau[0m, [3mypsilon[0m, [3mphi[0m, [3mchi[0m, [3mpsi[0m,
[3momega[0m, [3mAlpha[0m, [3mBeta[0m, [3mGamma[0m, [3mDelta[0m, [3mEpsilon[0m, [3mZeta[0m,
[3mEta[0m, [3mTheta[0m, [3mJota[0m, [3mKappa[0m, [3mLambda[0m, [3mMy[0m, [3mNy[0m, [3mXi[0m,
[3mOmikron[0m, [3mPi[0m, [3mRho[0m, [3mSigma[0m, [3mTau[0m, [3mYpsilon[0m, [3mPhi[0m, [3mChi[0m,
[3mPsi[0m, [3mOmega[0m

Arten von Definitionen
----------------------

   Es gibt drei verschiedene Arten von Definitionen : [1mVariablen[0m,
[1mParameter[0m und [1mKonstanten[0m.

Variablen
.........

   Wenn eine Variable referenziert wird, wird das ihr zugeweisene Objekt
in den Ausdruck eingefügt. Variablen werden in der Form [1mName =
Ausdruck[0m definiert, z.B.:
     a=3 [1m<return>[0m
     a+1 [1m<return>[0m
     => 4

Parameter
.........

   Eine Referenz auf einen Parameter wird nicht weiter ausgewertet,
sondern bleibt als solche im Ausdruck stehen. Um sie dennoch weiter
auszuwerten, muß die [1meval()[0m Funktion benutzt werden. Ein Parameter
wird mit [1mName := Ausdruck[0m definiert, z.B.:
     a:=3 [1m<return>[0m
     2*(a+2) [1m<return>[0m
     => 2*a+4
     eval(2*(a+2)) [1m<return>[0m
     => 10

Konstanten
..........

   Eine Konstante besitzt keinen eigentlichen Wert, kann also auch
nicht mit [1meval()[0m ersetzt werden. Konstanten werden von der
[1mconst()[0m Funktion erzeugt:
     const(a) [1m<return>[0m
     2*(a+2) [1m<return>[0m
     => 2*a+4
     eval(2*(a+2)) [1m<return>[0m
     => 2*a+4

Funktionen
..........

   Funktionen werden analog zu Variablen und Parametern erstellt, nur
das zusätzlich die Liste der Argumente in Klammern dem Namen angefügt
wird:
     f(x):=x^3 [1m<return>[0m
     g(x,y):=sqrt(x^2+y^2) [1m<return>[0m

   Um zu kennzeichnen, daß die Argumente einen anderen Typ als Zahl
haben, wird das gleiche Format wie bei der [1mconst()[0m Funktion benutzt.
Wird der Ausdruck ausgewertet, werden die Argumente zuerst wie
Konstanten behandelt. Wird die Funktione dann benutzt, werden die
übergebenen Argumente für die Konstanten eingesetzt:
     f(3) [1m<return>[0m
     => 27
     const(a) [1m<return>[0m
     f(a+1) [1m<return>[0m
     => (a+1)^2

   Es ist auch möglich, die Argumente wegzulassen; in diesem Fall wird
[3mLAPLACE[0m die Argumente einfügen, wie sie bei der Definition angegeben
wurden, z.B.
     f(x,y) = x^2 + y^2 [1m<return>[0m
     f'(x,y) = diff(f(x,y),x) [1m<return>[0m
     f'(x,y) = diff(f,x) [1m<return>[0m
   Beachte, daß die letzten beiden Zeilen identisch sind, da [1mf[0m zu
[1mf(x,y)[0m erweitert wird.

Bibliotheken
============

   [3mLAPLACE[0m bietet die Möglichkeit, externe Dateien zu bearbeiten.
Dabei handelt es sich um normale Projektdateien. In diesen Dateien
können häufig verwendete Definition abgelegt werden, die dann mit der
[1minclude()[0m Funktion eingebunden werden können.  Obwohl beliebige
Berechnungen darin abgespeichert werden können, machen doch nur
Definition Sinn, da die Ergebnisse nicht angezeigt werden.

   Einige Standartbibliothek liegen dem Paket bei:

[1mInit.lh[0m
     Diese Datei wird jedesmal ausgewertet, wenn ein neues Fenster
     geöffnet wird.

[1mInitARexx.lh[0m
     Diese Datei wird während der Initialisierung des ARexx-Portes
     ausgewertet.

[1mmath.lh[0m
     Enhält einige nützliche mathematische Definitionen.

[1mphysic.lh[0m
     Enhält einige nützliche physicalische Definitionen.

   Damit eine Biblothek bei jedem Start eingebunden wird kann der
entsprechende Aufruf [1minclude([1mlibname.lh[0m)[0m in die Datei
[1mInclude/Init.lh[0m eingefügt werden.

Optionen
========

   Mit den Optionen läßt sich die Verarbeitung und Darstellung von
Ausdrücken beeinflussen.  Optionen beginnen mit einem [1m$[0m
(Dollarzeichen), gefolgt von einem Schlüsselwort, einem [1m=[0m und dem
neuen Wert für die Option.

   Wie üblich sucht [3mLAPLACE[0m rückwärts, bis es eine Option gefunden
hat; auf diese Weise werden die Zeilen oberhalb einer neu gesetzten
Option nicht beeinflußt.  Falls eine Option nicht explizit angegeben
wurde, wird ein Standartwert benutzt. Um diese Standartwerte zu
verändern, ist der Menüpunkt [1mOptionen/Bearbeiten...[0m zu verwenden.

   Folgen Schlüsselwörter werden erkannt:

[1m$usefloat[0m
     Mögliche Werte: [1mTRUE[0m, [1mFALSE[0m. Falls es auf [1mTRUE[0m gesetzt ist,
     benutzt [3mLAPLACE[0m immer Fließkommazahlen und konvertiert diese
     nicht in Bruchzahlen.

[1m$useerror[0m
     Mögliche Werte: [1mTRUE[0m, [1mFALSE[0m. Falls es auf [1mFALSE[0m gesetzt
     ist, wird keine Gauss'sche Fehlerfortpflanzung benutzt und
     angezeigt.

[1m$simplify[0m
     Mögliche Werte: [1mTRUE[0m, [1mFALSE[0m. Ein-/Ausschalten des
     Vereinfachungs-Durchlaufes.  Ohne Vereinfachung ist die
     Verarbeitung schneller, aber das Ergebnis sie eventuell nicht sehr
     schön aus.

[1m$dispprec[0m
     Mögliche Werte: [1m1..15[0m. Legt die maximale Anzahl von
     Dezimalstellen fest, die angezeigt wird.

[1m$dispexp[0m
     Mögliche Werte: [1m1..12[0m. Legt die maximale Anzahl von Stellen
     fest, bevor auf Exponentialdarstellung umgeschaltet wird.

[1m$convprec[0m
     Mögliche Werte: [1m1..32[0m. [3mLAPLACE[0m versucht wenn möglich
     Fließkommazahlen in Bruchzahlen umzuwandeln. Da die
     Fließkommaroutinen nicht beliebig genau sind, entstehen kleine
     Abweichungen von den Werten, die 'eigentlich' herauskommen sollen
     (z.B. 1.200000000000001 wenn es eigentlich 1.2 sein sollte). Wenn
     die Differenz kleiner ist als die angegebene Genauigkeit (eine
     Genauigkeit von 12 entspricht 10^(-12)), geht [3mLAPLACE[0m davon aus,
     daß es sich um einen Bruch handelt und wandelt es um (in diesem
     Fall zu 6/5). Dies gilt jedoch nicht für werde nahe Null, 1e-30
     wird also nie zu 0 konvertiert.

   Ein Beispiel:
     $usefloat=FALSE
     sin(2) => sin(2)
     $usefloat=TRUE
     $dispprec=5
     sin(2) => 0.9093
     $dispprec=8
     sin(2) => 0.90929743
     a=12000.3
     $dispexp=3
     a => 1.20003*10^4
     $dispexp=6
     a => 12000.3

Online-Hilfe
============

   Um eine kurze Beschreibung eines Befehls zu erhalten, ist einfach
[1m?Funktionsname[0m anzugeben, z.B.
     ?const
     => const(name1[:type],name2[:type],...) : create constant objects

   Um eine komplette Beschreibung zu erhalten, ist [1m??Funktionsname[0m zu
verwenden.

   Du kannst auch [1m??intro[0m als einen Einstieg in die komplette
Online-Hilfe benutzen.

Zukunft
*******

   Wie ich schon des öffteren gesagt habe, handelt es sich noch um
eine Arbeitsversion von [3mLAPLACE[0m; es sind also noch viele Dinge zu
tun, bevor ich es als SHAREWARE veröffentliche. Wenn Du
[3mVorschläge[0m hast, bitte wende dich an mich.

   Hier ist eine Zusammenstellung der wichtigsten Ziele:

   * Verbesserung der Editiermöglichkeiten

   * direkte Unterstützung von CompuGraphics Schriftarten

   * Funktionsplotter, entweder intern oder eine externe Anbindung
     über ARexx

   * TeX Export

   * Integrale (ziemlich haarig..;-)

   * Ein besserer griechischer Zeichensatz, dieser sieht nicht
     sonderlich schön aus (hat jemand vielleicht was Vernünftiges??)

   * Ganzzahlen beliebiger Länge

   * System unabhängiger Programmkern und somit auch verschiedene
     Portierungen

   * Den Parser überarbeiten, so daß folgendes möglich ist:
     [1mProzeduren[0m, [1mfor[0m, [1mwhile[0m, [1mif[0m Ausdrücke, komplexe Zahlen
     als [1m2i[0m, etc.

   * tausend Kleinigkeiten...

Bekannte Fehler
***************

   Falls Du einen Fehler entdecken solltest, bitte benachrichtige mich,
ich bin für jede Unterstützung dankbar.

   Die Folgenden Probleme habe ich bis jetzt noch nicht aus dem Wege
räumen konnen:

   * meine MUI-CustomClass 'verschluckt' alle Tastatureingaben, also
     auch die Tabulatortaste.

   * manchmal gibt es Probleme mit Namen, die auf ein 'e' enden.
     Versuch einmal [1mm_e+pi[0m (ohne Leerzeichen!!). [1mm_e + pi[0m (mit
     Leerzeiche!!) funktioniert hingegen...

   * Die OS Bibliotheken für Fleißkommazahlen
     ([1mmathieeedoub*.library[0m) sind nicht sehr genau; [1m0.4 *
     5.0[0m ergibt zum Beispiel [1m2 ± 1e-16[0m. Das kann zu Ungenauigkeiten
     bei der Umwandlich zu rationalen Zahlen führen, die sich nicht
     genau einschätzen lassen.

   * Die Taylor Näherung läßt den Rechner abstürzen, wenn sie an
     einer nicht definierten Stelle ausgewertet werden soll, z.B.
     [1mtaylor( (ln(x))(x), 0, 2 )[0m.

   * Unterstützung für komplexe Zahlen ist noch nicht voll
     implementiert. Und das was bereits gemacht ist, ist nicht
     besonders gelungen ;-) Versuch etwas wie [1mi^2[0m, und Du siehst, was
     ich meine...

   * Der ARexx-Port funktioniert zur Zeit nicht und die Docs für ihn
     sind weder nach Texinfo umgesetzt, noch ins Deutsche übersetzt.

   * Sachen wie [1mconstant operator set[0m und [1mconstant operator
     equation[0m funktionieren nicht. Das ist weniger ein Bug als ein
     konzeptuelles Problem von [3mLAPLACE[0m. Um es zu ändern sind einige
     (nicht unerhebliche) interne Änderungen vorzunehmen.

   * Es wurde berichtet, daß der [1mamigaguide.datatype[0m V40 Probleme
     mit der Anleitung im AmigaGuide-Format hat (die deutsche
     [1mAnleitung[0m kann nicht geladen werden).  Das passiert nicht
     mit V39. Hat irgentjemand das gleiche Problem und kennt die
     Ursache und/oder eine Lösung?

Konkurrenz
**********

   Es gibt viele ähnliche Programme für diverse Betriebssysteme, ich
werde jedoch nur Programme betrachten, die für den AMIGA erhältlich
sind. Dabei handelt es sich oft um professionelle Projekte, an denen
studierte Programmierer und Mathematiker gearbeitet haben, womit ich
wohl kaum mithalten kann...

MAPLEV
======

   Was soll man dazu sagen? Die AMIGA version kenne ich zwar nicht,
sondern nur die UN*X version, aber ich glaube insbesondere in der
Funktionalität gibt es keine Unterschiede.

   MapleV kann fast alles was Du von ihm willst, egal ob Integrale,
Differentialgleichungen, Eigenvektoren, Funktionsgraphen usw. Da ist
jedoch ein kleines Problem: der Preis. DM1500.- ist ziemlich viel Geld,
was ich mir nicht leisten kann. Dies war wohl ausschlaggebend,
[3mLAPLACE[0m zu schreiben!  Inzwischen gibt es zwar auch für dem
AMIGA eine Studentenversion, ich werde aber trotzdem [3mLAPLACE[0m weiter
entwickeln, ich habe bereits viel zu viel Arbeit hineingesteckt, um es
aufzugeben! Wenn der Preis für Dich jedoch nicht das Problem ist,
solltest Du nicht zögern, [3mLAPLACE[0m von Deiner Festplatte zu löschen!

PARI
====

   PARI ist ein Freeware Projekt der Universität Bordeaux, Frankreich.
Es besitzt keine grafische Oberfläche, bietet dafür aber einige
interessant Fähigkeiten. Der größte Vorteil ist: es ist verdammt
schnell! PARI's Stärken sind linaere Algebra, Polynome und -reihen.
Auf der anderen Seite ist es lediglich in der Lage Polynome zu
integrieren. Tranzendente Funktionen werden zuerst in ein Taylorpolynom
umgewandelt, was nur eine Näherung ist, während gebrochen rationale
Funktion überhaupt nicht integrierbar sind. Es verfügt über eine
einfachen Funktionsplotter, grundlegende Online-Hilfe und ca. 500k
dvi-Anleitung.

   PARI ist im AMINET verfügbar, in den Dateien
[1mmisc/math/gpamiga_1_38_3.lha[0m (Hauptprogramm) und
[1mmisc/math/pari_1_38_3.lha[0m (Quelltext und Dokumentation). Andere
Versionen sind bei [1mmegrez.ceremab.u-bordeaux.fr[0m (147.210.16.17) und
[1mmath.ucla.edu[0m (FTP) erhältlich. Die Autoren können per e-mail
erreicht werden: [1mpari@ceremab.u-bordeaux.fr[0m.

MuPAD
=====

   MuPAD ist ein Freeware Projekt der Universität Paderborn,
Deutschland.  Die AMIGA version inst momentan noch ein Alpha-Release
und hat keine grafische Oberfläche. Es benötigt eine FPU (die ich
nicht besitze), somit konnte ich es bisher noch nicht testen. Sollte es
eine UN*X Version geben, kann ich es evtl.  an der Universität testen.

   MuPAD ist bei [1mmath-ftp.uni-paderborn.de/pub/MuPAD/[0m (FTP) oder
    [1mhttp://math-www.uni-paderborn.de/MuPAD/[0m (WWW) zu finden.

Biographie
**********

Pierre Simon Laplace (1749 bis 1827)
====================================

   Geboren wurde Laplace am 28. März 1749 in Beaumont-en-Auge,
Frankreich, Dép.  Calvados. Sein Vater was Verwaltungsbeamter der
Gemeinde, während seine Mutter auf einer wohlhabenden Bauernfamilie
stammte. Von seinem 7. bis 16. Lebensjahr besuchte Laplace eine von
Benedektinern geleitete Schule, an der wahrscheinlich auch ein Onkel
Mathematik lehrte. Anschließend trat er in das Jesuiten-Kolleg zu
Cáen ein, um nach humanistischen Studien einen geistliche Beruf zu
ergreifen.  Zwei offenbar geschickten Mathematiklehrern gelang es
jedoch sein Interesse für ihr Fachgebiet zu wecken, und seine Begabung
ließ ihn schnell rasche Fortschritte machen. Sie schickten ihn 1768
mit einem Empfehlungschreiben für D'ALEMBERT nach Paris, der ihn, nach
anfänglichem Zögern, ein Lehramt für Mathematik an der
[3mMilitär-Akademie[0m gab. Dort zählte zum Beispiel auch NAPOLEON I.
zu seinen Schülern. Schon 1773 wurde er bezahltes Mitglied der
[3mPariser Akademie[0m, hatte sich also eine recht sichere Stellung
erworben. 1784 löste er dann BEZOUTS als [3mExaminator der Kadetten[0m ab.

   1788 heiratete er MARIE-CHARLOTTE DE COURTY DE ROMAGNES, mit der er
zwei Kinder, eine Tochter und ein Sohn hatte. In dieser Zeit hat er
sich wohl hauptsächlich um seine Familie und die wissenschaftliche
Arbeit gekümmert; es ist nicht bekannt, daß er in dieser recht
stürmischen Zeit vor der bürgerlichen Revolution, irgentwelche
politischen Interessen gezeigt hätte.

   Als 1794 die [3mEcole polytechnique[0m gegründet wurde, übertrug man
Laplace eine Professur für Mathematik, nachdem er bereits an der
Planung der mathematischen Lehrveranstaltungen beteiligt war. Außerdem
hatte er noch ein Lehramt an der [3mEcole normale[0m inne und war
Vorsitzender der [3mKommission für Maße und Gewichte[0m.

   In der folgenden Zeit zeigte Laplace einen ausgeprägten politischen
Opportunismus.  Mal war er ein tätiger Republikaner, dann ein
überzeugter Royalist, ebenso wechselhaft wie die politischen
Gegebenheiten dieser stürmischen Zeit.

   Unter dem Konsulat (1) wurde Laplace 1799 von NAPOLEON I. zum
[3mMinister für Inneres[0m ernannt, wurde jedoch schon nach sechs
Wochen aufgrund seiner Unfähigkeit des Amtes enthoben. Stattdessen
berief man ihn in den [3mSenat[0m. Die Verehrung NAPOLEONS brachte er durch
Widmungen seiner Werke zu Ausdruck, diese ließ er jedoch aus den
unverkauften Exemplaren entfernen, als 1814 der Bourbone LUDWIG XVIII.
die Macht ergriff! Diesem bot er eifrig seine Dienste an und wurde so
zum [3mMarquis und Pair von Frankreich[0m ernannt. Diese politische
Charakterlosigkeit ist von seinen Zeitgenossen scharf verurteilt worden.

   Am 5. März 1827 starb Laplace und wurde auf dem Friedhof Père
Lachaise in Paris beigesetzt.

   Das Wirken von Laplace läßt sich in vier Epochen einteilen: die
Zeit von 1768 bis 1778, in denen er seinen wissenschaftliche Stil und
seine philosophischen Positionen ausprägte; die Jahre von 1778 bis
1789 in denen er viele Resultate fand, die später zu seinen
bedeutesten Beiträgen zu den Wissenschaften gehörten; die Periode von
1789 bis 1805, wo er sich im Zenit seines Wirkens befand und seine
Resultate in umfassenden Darstellungen zusammenfaßte; und schließlich
der Zeit von 1805 bis 1827, in der er sich physikalischen Problemen
zuwandte und sich immer mehr in die private Spähre zurückzog.

   Obwohl er sich um die Jahrhundertwende im Zenit seines Schaffens
befunden hat, war er doch ein Wissenschaftler des 18. Jahrhunderts.
Sein wirken konzentrierte sich auf die großen Akademien, gelehrte
Gesellschaften und die Salons der Aristokratie. Die Lehrtätigkeit an
den noch jungen Universitäten stand dagegen im Hintergrund.

   Seine bedeutensten Beiträge hat Laplace in den Gebieten der
[3mHimmelsmechanik[0m und [3mKosmologie[0m, der
[3mWahrscheinlichkeitstheorie[0m sowie der [3mmathematischer Physik[0m
erbracht.

   Seine ersten Veröffentlichungen erschienen in der Zeit von 1766 und
1769 und befaßten sich mit der Wahrscheinlichkeitsrechnung, die er
dann 1812 mit seiner `Théorie analytique des probabilités'
zusammenfaßte. Dieses Werk bot eine geschlossenen Darstellung des
damals bekannten Wissens um die Probleme der Wahrscheinlichkeit, zu der
auch Laplace entscheidende Beträge liefern konnte.  Den wesentlichen
Gedanken seines Werkes legte er in einer populär-wissenschaftlichen
Darstellung dem `Essai philosophique sur les probabitités'. Darin bot
er insbesondere eine klare Definition des [3mklassischen mechanischen
Determinismus[0m, der wesentlichen Einfluß auf die Naturwissenschaften
in der Folgezeit hatte. Laplace schrieb dazu:

         [3m"Eine Intelligenz, welche für einen gegebenen Augenblick
     alle in der Natur wirkenden Kräfte sowie die gegenseitige Lage
     der sie zusammensetzenden Elemente kennt, und überdies umfassend
     genug wäre, um diese gegebenen Größen der Analysis zu
     unterwerfen, würde in derselben Formel die Bewegung der größten
     Weltkörper wie des leichtesten Stoms umschließen; nichts würde
     ihr ungewiß sein und Zukunft wie Vergangenheit würden ihr offen
     vor Augen liegen."[0m (2)

   E. DU BOIS-REYMOND prägte im 19. Jahrhundert die Bezeichnung
[3mLaplacescher Dämon[0m für solche eine Intelligenz. Der Zufall lag
für ihn lediglich im Unvermögen des menschlichen Geistes begründet,
die tatsächlichen vorhandenen Gesetzmäßigkeiten zu erkennen.

   Laplace bedeutenstes Werk, die `Mécanique céleste' erschien
zwischen 1799 und 1825 in fünf Bänden und stellt ein großartige
Zusammenfassung der seiner Zeit bekannten astronomischen
Gesetzmäßigkeiten dar. Ihm gelang es alle diese Erkenntnisse aus dem
einheitlichen Prinzip der allgemeinen Gravitation herzuleiten und somit
ein rein materialistisches Weltbild zu schaffen. Auch zu diesem
Themenkomplex verfaßte er eine allgemeinverständliche Zusammenfassung,
die `Exposition du système du monde', nach deren Lektüre NAPOLEON I.
gefragt haben soll: [3m"Citoyen, ich habe ihr Buch gelesen, und ich
verstehe nicht, daß sie dem Schöpfer keinen Platz einräumen."[0m,
waraufhin Laplace erwiderte: [3m"Citoyen Erster Konsul, ich habe diese
Hypothese nicht nötig."[0m Damit nahm sein Werk einen zentralen Platz im
Rahmen der französischen Aufklärung un der weiteren Geschichte des
materialistischen Denkens ein.

   In den Jahren von 1779 bis 1784 beschäftigte sich Laplace zusammen
mit A.L. LAVOISIER mit verschiedenen Problemen der Wärmelehre. 1809
wandte er sich schließlich der Akustik zu und konnte unter anderem
eine Formel für die Schallgeschwindigkeit in Luft angeben, sowie die
barometrische Höhenformel verbessern.

   Laplace war einer der herausragenden Naturwissenschaftler seiner
Zeit, es sind ihm auch einige Dinge vorzuwerfen. Neben seiner
politischen Rückgratlosigkeit, machte er sich oft der Aneignung
fremden geistigen Eigentums schuldig, indem er Resultate seiner
Vorgänger und Zeitgenossen ohne Quellenangabe in seine Werke
aufgenommen hat. Der [3mWissenschaftler[0m Laplace hatte dies keinesfalls
nötig, so das hier wohl die [3mPerson[0m Laplace zu Tage tritt.

   Die bedeutensten Veröffentlichungen von Laplace:

   * 1796 `Exposition du système du monde'

   * 1799-1825 `Mécanique céleste'

   * 1812 `Théorie analytique des probabilités'

   * 1814 `Essai philosophique sur les probabilités'

   Weitere Literatur:

   * Grattan-Guinness, I.
     `P.-S. Marquis de Laplace'
     in `Dictionary of scientific biography'
     herausgegeben von C. C. Gillispie, Band 15
     Neuausgabe New York 1981

   * Andoyer, H.
     `P.S. Laplace'
     Paris 1922

   * Woronzow-Weljaminow, W.A.
     `Laplace'
     Moskau 1937

   * Durtain, Luc
     `P.S. Laplace'
     in: `Les grandes Figures de la science française'
     Paris 1952

   aus:
Wussig, H. und Arnold, W.
`Biographien bedeutender Mathematiker'
Aulis Verlag, Köln 1989

P!\K (1975 bis ??)
==================

   Der Author dieses Programmes, Benjamin Stegemann, wurde am 9. März
1975 in Hamburg geboren. Dort besuchte er, wie seine drei Schwestern,
das [3mGymnasium Heidberg[0m (1976-96: 20 Jahre [3mStegemann Dynastie[0m!!!) Er
hatte schon früh ein reges Interesse an Mathematik und
Naturwissenschaften und nahm während der Schulzeit z.B. am
Mathezirkel, einem Begabtenförderungsprogramm der Universität Hamburg
teil. Auf den meisten anderen Gebieten zeigte er jedoch eine extrem
ausgeprägte Faulheit. Als er mit ca. 16 Jahren (3) eine AMIGA 500
bekommen hat, war bereits alles verloren. Immer mehr Zeit verbrachte er
vor der hypnotisierenden Bildröhre, so daß kaum noch Zeit für andere
Tätigkeiten blieb.

   Nachdem er das Abitur hinter sich gebracht hat, ist er 1995 nach
[3mHeidelberg[0m ausgewandert, um sich dem Physikstudium zu wittmen.
Entgegen den Erwartungen, das sein anfängliches Interesse für die
Mathematik im Studium fortwähren würde, zeigte sich bald ein extremer
Widerwillen gegen jede Art von mathematischen Satz oder Beweis.
Insbesondere auf deren Kombination entwickelte er schnell eine
ausgeprägte Allergie.

   Die genauen Umstände sind im Laufe der Zeit verschollen gegangen,
aber in diese Zeit ist paradoxer Weise das Entstehen von [3mLAPLACE[0m zu
datieren. Offenbar handelt es sich um eine Art Trauma, daß er sich
selbst immer wieder mit dem einst geliebten, nun verhaßten Thema
konfrontieren muß.

   Obwohl er schon mehrere größere Projekte begonnen hatte (z.B. eine
relationale Datenbank [3mMADE[0m, eine Wirtschaftssimulation [3mAirline
Manager[0m, ein Rollenspiel [3mGenesis[0m), ist jedoch keines von ihnen über
ein [3mhalb-fertig[0m Stadium hinausgekommen. Auch Versuche, sich in der
Demo-Szene zu etablieren, sind fehlgeschlagen, da es ihm nie gelungen
ist, ein Intro soweit fertigzustellen, daß es zu veröffentlichen
wäre. Neben dem kleinen Spiel `ShuffleRun', welches er [3mnur so
zwischendurch[0m geschrieben hat, ist [3mLAPLACE[0m seine erste große
Veröffentlichung. Es ist anzunehmen, daß dieses Projekt ein der
Vollendung nahes Stadium erreichen wird, da viele Benutzer ihm mit
ihren e-Mails ein äußerst schlechtes Gewissen machen, so daß er sich
kaum noch traut, etwas anderes zu machen. Wann dieses Stadium jedoch
erreicht wird, steht jedoch in den Sternen(4).

   Die bedeutensten Veröffentlichungen von P!\K:

   * ?? `ShuffleRun'

   * 1996 [3mLAPLACE[0m

   Weitere Literatur:

   * Oskar, A. D. M.
     `Gesammelte Aufzeichnungen aus dem Papierkorb'
     Heidelberg 1996
     an Selbstabholer

   ---------- Footnotes ----------

   (1)  Militärdiktatur von NAPOLEON I., 1799 bis 1804

   (2)  Laplace, P.S.:
`Philosophischer Versuch über die Wahrscheinlichkeit' (1814)
deutsch von R. von Mises
in `Ostwalds Klassiker der exakten Wissenschaften', Nr. 233
Leipzig 1932

   (3)  der genaue Zeitpunkt läßt sich nicht mehr rekonstruiren.

   (4)  Dies scheint der ausschlaggebende Grund gewesen zu sein, daß
er sich auf ein Astronomiestudium spezialisiert hat.

Index
*****



 MAPLEV                                 Competitors
 PARI                                   Competitors
 Addresse                               Address
 Allg. Hinweise                         GeneralUsage
 Ausdrücke                             Expressions
 Ausdruckslisten                        Expressions
 Bekannte Fehler                        KnownBugs
 Benutzung                              Usage
 Benutzung                              GeneralUsage
 Beschreibung                           About
 Bibliotheken                           Libraries
 binäre Operatoren                     Expressions
 Boolean                                Bool
 boolean Werte                          Bool
 Copyright                              Copyright
 Definitionen                           Definitions
 Editieren                              Editing
 Einleitung                             Introduction
 Equation                               Equation
 errordistribution                      Number
 Erste Schritte                         Getting started
 F-Tasten                               Menus
 F-Tasten                               Presets
 Fehler                                 KnownBugs
 Funktionen                             Definitions
 Gleichung                              Equation
 Greets                                 Greets
 griechische Buchstaben                 Definitions
 Installation                           Installation
 Komplexe Zahlen                        Number
 Konkurrenz                             Competitors
 Konstanten                             Definitions
 Laplace, P. S. Marquis de              Biography
 Matrix                                 Matrix
 Menüs                                 Menus
 Menge                                  Set
 MuPAD                                  Competitors
 Namenskonventionen                     Definitions
 Number                                 Number
 Objekte                                Types
 Online-Hilfe                           OnlineHelp
 Operatoren                             Expressions
 Optionen                               Presets
 Optionen                               Options
 P!\K                                   Biography
 Parameter                              Definitions
 Projektdateien                         Project
 Registrierung                          Registration
 Set                                    Set
 Stegemann, Benjamin                    Biography
 Tooltypes                              Tooltypes
 Typen                                  Types
 unäre Operatorer                      Expressions
 Variablen                              Definitions
 Vector                                 Vector
 Vektor                                 Vector
 Voraussetzungen                        Requirements
 Zahlen                                 Number
 Zukunft                                ToDo

