×

Landau: a language for dynamical systems with automatic differentiation. (English) Zbl 1471.65002

J. Math. Sci., New York 251, No. 3, 354-362 (2020) and Zap. Nauchn. Semin. POMI 485, 78-89 (2019).
Summary: Most numerical solvers used to determine the free variables of dynamical systems rely on firstorder derivatives of the state of the system with respect to the free variables. The number of free variables can be fairly large. One of the approaches to obtaining these derivatives is the integration of the derivatives simultaneously with the dynamical equations, which is best done with automatic differentiation techniques. Even though there exist many automatic differentiation tools, none has been found to be scalable and usable for practical purposes of modeling dynamical systems. Landau is a Turing incomplete statically typed domain-specific language aimed to fill this gap. The Turing incompleteness allows for a 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 allows for manually discarding calculations where the automatic derivative values are expected to be negligibly small. In spite of reasonable restrictions, the language is rich enough to express and differentiate any cumbersome equation with practically no effort.

MSC:

65-04 Software, source code, etc. for problems pertaining to numerical analysis
65P10 Numerical methods for Hamiltonian systems including symplectic integrators
65L04 Numerical methods for stiff equations
PDFBibTeX XMLCite
Full Text: DOI arXiv

References:

[1] Abad, A.; Barrio, R.; Marco-Buzunariz, M.; Rodríguez, M., Automatic implementation of the numerical Taylor series method: A Mathematica and Sage approach, Appl. Math. Comput., 268, 227-245 (2015) · Zbl 1410.65243
[2] Bischof, C.; Carle, A.; Corliss, G.; Griewank, A.; Hovland, P., ADIFOR-generating derivative codes from Fortran programs, Sci. Programming, 1, 1, 11-29 (1992)
[3] Bischof, C.; Roh, L.; Mauer-Oats, AJ, ADIC: an extensible automatic differentiation tool for ANSI-C, Software: Practice and Experience, 27, 12, 1427-1456 (1997)
[4] F. C. Botelho, R. Pagh, and N. Ziviani, “Simple and space-efficient minimal perfect hash functions,” in: Workshop on Algorithms and Data Structures (2007), pp. 139-150. · Zbl 1209.68152
[5] Coleman, TF; Verma, A., ADMAT: An automatic differentiation toolbox for MATLAB, Proceedings of the SIAM Workshop on Object Oriented Methods for Inter- Operable Scientific and Engineering Computing, 2 (1998), Philadelphia: SIAM, Philadelphia
[6] Felleisen, M.; Findler, RB; Flatt, M.; Krishnamurthi, S.; Barzilay, E.; McCarthy, J.; Tobin-Hochstadt, S., A programmable programming language, Comm. ACM, 61, 3, 62-71 (2018)
[7] Griewank, A.; Juedes, D.; Utke, J., Algorithm 755: ADOL-C: a package for the automatic differentiation of algorithms written in C/C++, ACM Trans. Math. Software, 22, 2, 131-167 (1996) · Zbl 0884.65015
[8] Jorba, Á.; Zou, M., A software package for the numerical integration of ODEs by means of high-order Taylor methods, Experiment. Math., 14, 1, 99-117 (2005) · Zbl 1108.65072
[9] Siskind, JM; Pearlmutter, BA, Nesting forward-mode AD in a functional framework, Higher-Order Symbol. Comput., 21, 4, 361-376 (2008) · Zbl 1175.68104
[10] Siskind, JM; Pearlmutter, BA, Efficient implementation of a higher-order language with built-in AD, 7th International Conference on Algorithmic Differentiation, Oxford (2016)
[11] Tadjouddine, M.; Forth, SA; Pryce, JD, “AD tools and prospects for optimal AD in CFD flux Jacobian calculations,” in, 255-261 (2002), Automatic Differentiation of Algorithms: Springer, Automatic Differentiation of Algorithms
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. In some cases that data have been complemented/enhanced by data from zbMATH Open. This attempts to reflect the references listed in the original paper as accurately as possible without claiming completeness or a perfect matching.