FriCAS

Aus testwiki
Zur Navigation springen Zur Suche springen

Vorlage:Infobox Programmiersprache FriCAS ist ein Allzweck-Computeralgebrasystem mit einem starken Fokus auf mathematische Forschung und Entwicklung neuer Algorithmen. Es besteht aus einem Interpreter, einem Compiler und einer immer noch wachsenden Bibliothek[1] mit mehr als 1.000 Domänen und Kategorien.

FriCAS bietet eine stark typisierte höhere Programmiersprache namens SPAD und eine ähnliche interaktive Sprache, die zur Vereinfachung die Typinferenzierung verwendet. Aldor wurde ursprünglich als Compiler der nächsten Generation für Axiom und Abspaltungen entwickelt. Mit FriCAS können (optional) Aldor-Programme ausgeführt werden. Beide Sprachen haben eine ähnliche Syntax und ein ausgeklügeltes (abhängiges) Typsystem.[2][3][4]

FriCAS ist umfassend dokumentiert und sowohl als Quellcode als auch in binärer Form für die gängigsten Plattformen erhältlich. Das Kompilieren der Quellen erfordert neben anderen Voraussetzungen eine Common-Lisp-Umgebung (wobei viele der wichtigsten Implementierungen unterstützt werden und als Open Source frei verfügbar sind).

FriCAS läuft auf diversen POSIX-Plattformen wie Linux, MacOS, Unix, BSD sowie unter Cygwin und Microsoft Windows WSL.

FriCAS besitzt neben der Kommandozeile verschiedene Front-Ends, z. B. Emacs, TeXmacs, Jupyter.

Geschichte

FriCAS ist ein Nachkomme von Axiom, das seinen Ursprung in Scratchpad hat, einem Projekt, das 1965 von James Griesmer[5] in IBM Laboratories gestartet wurde. Weitere Details finden sich unter Axiom/Geschichte.[6]

Beispiele

FriCAS hat eine ziemlich vollständige Implementierung des Risch-Bronstein-Trager-Algorithmus (kurz Risch-Algorithmus).

Ein weiteres nützliches Feature ist Stream:

)set stream calculate 5
exp_series := series(exp x, x=0)
1+x+12x2+16x3+124x4+1120x5+𝒪(x6)
Type: UnivariatePuiseuxSeries(Expression(Integer),x,0)

So kann jeder Koeffizient abgerufen werden, zum Beispiel: n=40:

coefficient(exp_series,40)
1815915283247897734345611269596115894272000000000
Type: Expression(Integer)

Verwandt:

Einzelnachweise