|
Compile
Compile[ , , ... , ausdr] erzeugt eine kompilierte Funktion, die ausdr unter Annahme numerischer Werte für die evaluiert.
Compile[  ,  , ... , ausdr] geht davon aus, daß von einem Typ ist, der zu paßt.
Compile[  , ,  , ... , ausdr] geht davon aus, daß ein Array mit Rang ist und jedes Element dieses Objektes von einem Typ ist, der zu paßt.
Compile[vars, ausdr,   ,  , ... ] geht davon aus, daß Unterausdrücke in ausdr, die zu passen, von einem Typ sind, der zu paßt.
Die von Compile verarbeiteten Typen sind:

Verschachtelte Listen, die als Eingabe einer kompilierten Funktion angegeben werden, müssen vollständige Zahlen-Arrays sein.
Compile kann numerische Funktionen, Matrix-Operationen, prozedurale Programmkonstrukte, Funktionen zur Listenmanipulation, funktionale Programmkonstrukte usw. verarbeiten.
Compile erzeugt ein CompiledFunction-Objekt.
Kompilierter Code behandelt numerische Präzision und lokale Variablen nicht auf dieselbe Weise wie gewöhnlicher Mathematica-Code.
Kann eine kompilierte Funktion bei bestimmten Argumenten mit dem kompilierten Code nicht evaluiert werden, so wird stattdessen gewöhnlicher Mathematica-Code verwendet.
Gewöhnlicher Mathematica-Code kann von kompiliertem Code aus aufgerufen werden. Bei Ergebnissen, die mit Mathematica-Code erhalten werden, wird angenommen, daß sie Gleitpunktzahlen sind, sofern das dritte Argument von Compile dies nicht anders bestimmt.
Die Häufigkeit und die Reihenfolge, in der Objekte durch Compile evaluiert werden, können anders als bei gewöhnlichem Mathematica-Code sein.
Compile hat das Attribut HoldAll und führt in der Voreinstellung vor der Kompilierung keine Evaluierung durch.
Mit Compile[ ... , Evaluate[ausdr]] läßt sich spezifizieren, daß ausdr vor der Kompilierung symbolisch evaluiert werden soll.
Siehe Das Mathematica Buch: 1.11.8 und 2.5.14.
Siehe auch: Dispatch, Function, InterpolatingFunction, CForm.
Further Examples
|