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/
Go to the corresponding LIPIcs Volume Portal


Makwana, Dhruv C. ; Krishnaswami, Neelakantan R.

NumLin: Linear Types for Linear Algebra

pdf-format:
LIPIcs-ECOOP-2019-14.pdf (0.7 MB)


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


DROPS-Home | Fulltext Search | Imprint | Privacy Published by LZI