๐Ÿ“–
Sundials/ML: Connecting OCaml to the Sundials Numeric Solvers
Timothy Bourke, Jun Inoue, Marc Pouzet

Sundials/ML: Connecting OCaml to the Sundials Numeric Solvers

Science & Mathematics Published 2018 Verification Pending

Overview & Synopsis

This paper describes the design and implementation of a comprehensive OCaml interface to the Sundials library of numeric solvers for ordinary differential equations, differential algebraic equations, and non-linear equations. The interface provides a convenient and memory-safe alternative to using Sundials directly from C and facilitates application development by integrating with higher-level language features, like garbage-collected memory management, algebraic data types, and exceptions. Our benchmark results suggest that the interface overhead is acceptable: the standard examples are rarely twice as slow in OCaml than in C, and often less than 50% slower. The challenges in interfacing with Sundials are to efficiently and safely share data structures between OCaml and C, to support multiple implementations of vector operations and linear solvers through a common interface, and to manage calls and error signalling to and from OCaml. We explain how we overcame these difficulties using a combination of standard techniques such as phantom types and polymorphic variants, and carefully crafted data representations.

Indexed from repository: HAL Open Science (hal.science)
Loading document from verified source...
Keyboard Shortcuts: ← / → for pages • + / - for zoom • 0 to fit width Powered by Mozilla PDF.js v3.11

Document Information

Document Title Sundials/ML: Connecting OCaml to the Sundials Numeric Solvers
Author / Organization Timothy Bourke, Jun Inoue, Marc Pouzet
Subject & Discipline Multidisciplinary Academic Open Research
Categories Science & Mathematics
Publication Year 2018
License / Rights Open Access / Creative Commons
Resource Verification Listed PDF (Verification Pending)
Original Host Website HAL Open Science (hal.science)
File Format application/pdf (Portable Document Format)
Language EN
Catalog ID DOC-154691
Original Source Link Visit Source Page on hal.science »