[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

24. Laufzeitumgebung


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

24.1 Einführung in die Laufzeitumgebung

Die Datei maxima-init.mac wird automatisch geladen, wenn Maxima startet. Die Datei maxima-init.mac kann genutzt werden, um bevorzugte Einstellungen vorzunehmen. Die Datei wird üblicherweise in dem Verzeichnis maxima_userdir abgelegt. Sie kann aber auch in jedes andere Verzeichnis abgelegt werden, das von der Funktion file_search gefunden wird.

Dies ist eine Beispiel für eine maxima-init.mac-Datei:

setup_autoload ("specfun.mac", ultraspherical, assoc_legendre_p);
showtime:all;

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

24.2 Interrupts

Eine Berechnung kann mit dem Kommando ^c (control-c) abgebrochen werden. Standardmäßig kehrt Maxima zu der Eingabeaufforderung der Konsole zurück.

Wird die Lisp-Variable *debugger-hook* mit dem folgenden Kommando :lisp (setq *debugger-hook* nil) auf den Wert nil gesetzt, dann startet Maxima den Lisp-Debugger, wenn das Kommando ^c ausgeführt wird. Im Lisp-Debugger kann mit dem Kommando continue zu Maxima zurückgekehrt werden.

In Unix-Systemen kann die Ausführung auch mit Kommando ^z (control-z) abgebrochen werden. In diesem Fall wird eine Unix-Shell gestartet. Das Kommando fg kehrt zu Maxima zurück.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

24.3 Funktionen und Variablen der Laufzeitumgebung

Systemvariable: maxima_tempdir

Die Systemvariable maxima_tempdir enthält das Verzeichnis in dem Maxima temporäre Dateien abgelegt. Insbesondere werden temporäre Grafikausgaben in diesem Verzeichnis abgelegt. Der Standardwert von maxima_tempdir ist das Home-Verzeichnis des Nutzers, sofern Maxima dieses feststellen kann. Andernfalls initialisiert Maxima die Systemvariable maxima_tempdir mit einer geeigneten Annahme.

Der Systemvariablen maxima_tempdir kann eine Zeichenkette zugewiesen werden, die ein Verzeichnis bezeichnet.

Systemvariable: maxima_userdir

Die Systemvariable maxima_userdir enthält ein Verzeichnis, das Maxima durchsucht, um Maxima- und Lisp-Dateien zu finden. Maxima sucht in weiteren Verzeichnissen. Die vollständige Liste der Suchverzeichnisse ist den Variablen file_search_maxima und file_search_lisp enthalten. Der Standardwert der Systemvariablen maxima_userdir ist ein Unterverzeichnis des Home-Verzeichnis des Nutzers, sofern Maxima dieses bestimmen kann. Ansonsten initialisiert Maxima die Systemvariable maxima_userdir mit einer geeigneten Annahme.

Der Systemvariablen maxima_userdir kann eine Zeichenkette zugewiesen werden, die ein Verzeichnis bezeichnet. Wenn der Wert von maxima_userdir geändert wird, werden die Variablen file_search_maxima und file_search_lisp nicht automatisch angepasst.

Funktion: room ()
Funktion: room (true)
Funktion: room (false)

Gibt eine Beschreibung der Speicherplatznutzung aus. Die Darstellung und der Inhalt der Informationen hängen von dem Maxima zugrundeliegenden Lisp ab. Mit den Argumenten true und false wird der Umfang der auszugebenen Information kontrolliert. Mit dem Argument true wird die umfangreichste Darstellung ausgegeben und mit dem Argument false die kürzeste.

Beispiel:

Das folgende Beispiel zeigt die Ausgabe auf einem Linux-System mit der Lisp-Implementierung SBCL 1.0.45.

(%i1) build_info();

Maxima version: 5.22post
Maxima build date: 18:52 12/28/2010
Host type: i686-pc-linux-gnu
Lisp implementation type: SBCL
Lisp implementation version: 1.0.45
(%o1)
 
(%i2) room(false);
Dynamic space usage is:   63,719,856 bytes.
Read-only space usage is:      3,512 bytes.
Static space usage is:         2,256 bytes.
Control stack usage is:        1,440 bytes.
Binding stack usage is:          184 bytes.
Control and binding stack usage is for the current thread only.
Garbage collection is currently enabled.
(%o2)                         false

Funktion: sstatus (keyword, item)

Hat das Argument keyword den Wert feature, wird das Argument item der internen Lisp-Eigenschaftsliste *features* hinzugefügt. Das Kommando status(feature, item) hat dann das Ergebnis true. Hat das Argument keyword den Wert false, wird das Argument item von der internen Lisp-Eigenschaftsliste *features* entfernt.

Siehe auch status.

Funktion: status (feature)
Funktion: status (feature, item)

status(feature) gibt die vollständige interne Lisp-Eigenschaftsliste *features* zurück. status(feature,item) gibt true zurück, wenn das Argument item in der internen Lisp-Eigenschaftsliste *features* enthalten ist. Ansonsten ist die Rückgabe false. status wertet die Argumente nicht aus. Eine Systemeigenschaft item, die Sonderzeichen wie - oder * enthält, muss als Zeichenkette angegeben werden.

Siehe auch sstatus.

Die Systemvariable features enthält eine Liste mit Eigenschaften, die einer mathematischen Funktionen zugeordnet werden können. Siehe features und featurep.

Beispiel:

Das folgende Beispiel zeigt die Ausgabe für ein Linux-System mit SBCL als Lisp.

(%i1) status(feature);
(%o1) [sb-bsd-sockets-addrinfo, asdf2, asdf, cl, mk-defsystem, 
cltl2, ansi-cl, common-lisp, sbcl, sb-doc, sb-test, sb-ldb, 
sb-package-locks, sb-unicode, sb-eval, sb-source-locations, 
ieee-floating-point, x86, unix, elf, linux, sb-thread, 
largefile, gencgc, stack-grows-downward-not-upward, 
c-stack-is-control-stack, compare-and-swap-vops, 
unwind-to-frame-and-call-vop, raw-instance-init-vops, 
stack-allocatable-closures, stack-allocatable-vectors, 
stack-allocatable-lists, stack-allocatable-fixed-objects, 
alien-callbacks, cycle-counter, inline-constants, 
memory-barrier-vops, linkage-table, os-provides-dlopen, 
os-provides-dladdr, os-provides-putwc, os-provides-suseconds-t, 
os-provides-getprotoby-r, os-provides-poll]

(%i2) status(feature,"ansi-cl");
(%o2)                         true

Funktion: time (%o1, %o2, %o3, ...)

Gibt eine Liste mit den Ausführungszeiten zurück, die benötigt wurden, um die Ergebnisse %o1, %o2, %o3, … zu berechnen. Die Argumente der Funktion time können nur Ausgabemarken sein. Für andere Argumente ist das Ergebnis unknown.

Siehe die Optionsvariable showtime, um die Ausführungszeiten für jede einzelne Berechnung anzuzeigen.

Beispiel:

Die Zeit für die Berechnung der Fakultät einer großen ganzen Zahl wird mit time ausgegeben. Das Ergebnis muss nicht angezeigt werden. Das Ergebnis hat 456573 Stellen.

(%i1) factorial(100000)$

(%i2) time(%o1);
(%o2)                        [7.585]
(%i3) bfloat(%o1);
(%o3)               2.824229407960348b456573

Funktion: timedate ()

Gibt eine Zeichenkette zurück, die das aktuelle Datum und die aktuelle Zeit enthält. Die Zeichenkette hat das Format yyyy-mm-dd HH:MM:SS (GMT-n).

Beispiel:

(%i1) timedate();
(%o1)               2010-12-28 21:56:32+01:00

Funktion: absolute_real_time ()

Gibt die Sekunden zurück, die seit dem 1. Januar 1990 UTC verstrichen sind. Die Rückgabe ist eine ganze Zahl.

Siehe auch elapsed_real_time und elapsed_run_time.

Beispiel:

(%i1) absolute_real_time ();
(%o1)                      3502559124
(%i2) truncate(1900+absolute_real_time()/(365.25*24*3600));
(%o2)                         2010

Funktion: elapsed_real_time ()

Gibt die Sekunden zurück, die seit dem letzten Start von Maxima verstrichen sind. Die Rückgabe ist eine Gleitkommazahl.

Siehe auch absolute_real_time und elapsed_run_time.

Beispiel:

(%i1) elapsed_real_time ();
(%o1)                       2.559324
(%i2) expand ((a + b)^500)$
(%i3) elapsed_real_time ();
(%o3)                       7.552087

Funktion: elapsed_run_time ()

Gibt eine Schätzung der Zeit in Sekunden zurück, die Maxima für Berechnungen seit dem letzten Start benötigt hat. Der Rückgabewert ist eine Gleitkommazahl.

Siehe auch absolute_real_time und elapsed_real_time.

Beispiel:

(%i1) elapsed_run_time ();
(%o1)                         0.04
(%i2) expand ((a + b)^500)$
(%i3) elapsed_run_time ();
(%o3)                         1.26

[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Robert Dodier on April, 4 2011 using texi2html 1.76.