8 Feb 2021

heyoka

The heyókȟa is a kind of sacred clown in the culture of the Sioux (Lakota and Dakota people) of the Great Plains of North America. The heyoka is a contrarian, jester, and satirist, who speaks, moves and reacts in an opposite fashion to the people around them.

Numerical integration in aerospace research as well as in celestial dynamics and astronomy is dominated by Runge-Kutta type of methods such as Heun–Euler, Fehlberg, Cash-Karp, Dormand–Prince, Crank-Nicolson, Lobatto, Radau, etc... All can be said to be based on some finite difference formula able to approximate, at different levels of accuracy, the Taylor expansion of the system state. A Taylor method, on the other hand, works directly with such a Taylor expansion evaluating the expansion terms to machine precision. The absence of errors in the expansion terms results in a method of unparalleled precision. The use of efficient automated (not numerical) differentiation results in a method of unparalleled speed.

Taylor methods are not used by practitioners as per their difficulty of implementation and use.

heyoka is a C++ (and python) library for the simple integration of generic ordinary differential equations (ODEs) via Taylor's method. It aims at bringing Taylors method one step closer to a widespread use by eliminating the complexities involved in their implementation offering to the generic user a unified and simple API.

Notable features include:

  • a high-performance implementation of Taylor's method based on automatic differentiation techniques and aggressive just-in-time compilation via LLVM.
  • support for both double-precision and extended-precision floating-point types (80-bit and 128-bit)
  • the ability to maintain machine precision accuracy over tens of billions of timesteps
  • batch mode integration to harness the power of modern SIMD instruction sets

Links

Hamburger icon
Menu
Advanced Concepts Team