Landau: language for dynamical systems with automatic differentiation
Most numerical solvers used to determine free variables of dynamical systems rely on first-order derivatives of the state of the system w.r.t. the free variables. The number of the free variables can be fairly large. One of the approaches of obtaining those derivatives is the integration of the deri...
Gespeichert in:
Hauptverfasser: | , |
---|---|
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext bestellen |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | Most numerical solvers used to determine free variables of dynamical systems
rely on first-order derivatives of the state of the system w.r.t. the free
variables. The number of the free variables can be fairly large. One of the
approaches of obtaining those derivatives is the integration of the derivatives
simultaneously with the dynamical equations, which is best done with the
automatic differentiation technique. Even though there exist many automatic
differentiation tools, none have been found to be scalable and usable for
practical purposes of dynamic systems modeling. Landau is a Turing incomplete
statically typed domain-specific language aimed to fill this gap. The Turing
incompleteness provides the ability of sophisticated source code analysis and,
as a result, a highly optimized compiled code. Among other things, the language
syntax supports functions, compile-time ranged for loops, if/else branching
constructions, real variables and arrays, and the ability to manually discard
calculation where the automatic derivatives values are expected to be
negligibly small. In spite of reasonable restrictions, the language is rich
enough to express and differentiate any cumbersome paper-equation with
practically no effort. |
---|---|
DOI: | 10.48550/arxiv.1905.10206 |