License: Creative Commons Attribution 3.0 Unported license (CC BY 3.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.ECOOP.2019.14
URN: urn:nbn:de:0030-drops-108069
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2019/10806/
Makwana, Dhruv C. ;
Krishnaswami, Neelakantan R.
NumLin: Linear Types for Linear Algebra
Abstract
We present NumLin, a functional programming language whose type system is designed to enforce the safe usage of the APIs of low-level linear algebra libraries (such as BLAS/LAPACK). We do so through a brief description of its key features and several illustrative examples. We show that NumLin's type system is sound and that its implementation improves upon naïve implementations of linear algebra programs, almost towards C-levels of performance. By doing so, we demonstrate (a) that linear types are well-suited to expressing the APIs of low-level linear algebra libraries accurately and concisely and (b) that, despite the complexity of prior work on it, fractional permissions can actually be implemented using simple, well-known techniques and be used practically in real programs.
BibTeX - Entry
@InProceedings{makwana_et_al:LIPIcs:2019:10806,
author = {Dhruv C. Makwana and Neelakantan R. Krishnaswami},
title = {{NumLin: Linear Types for Linear Algebra}},
booktitle = {33rd European Conference on Object-Oriented Programming (ECOOP 2019)},
pages = {14:1--14:25},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-95977-111-5},
ISSN = {1868-8969},
year = {2019},
volume = {134},
editor = {Alastair F. Donaldson},
publisher = {Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
address = {Dagstuhl, Germany},
URL = {http://drops.dagstuhl.de/opus/volltexte/2019/10806},
URN = {urn:nbn:de:0030-drops-108069},
doi = {10.4230/LIPIcs.ECOOP.2019.14},
annote = {Keywords: numerical, linear, algebra, types, permissions, OCaml}
}
Keywords: |
|
numerical, linear, algebra, types, permissions, OCaml |
Collection: |
|
33rd European Conference on Object-Oriented Programming (ECOOP 2019) |
Issue Date: |
|
2019 |
Date of publication: |
|
10.07.2019 |
Supplementary Material: |
|
ECOOP 2019 Artifact Evaluation approved artifact available at https://dx.doi.org/10.4230/DARTS.5.2.3; https://github.com/dc-mak/NumLin |