Document Open Access Logo

NumLin: Linear Types for Linear Algebra

Authors Dhruv C. Makwana , Neelakantan R. Krishnaswami

Thumbnail PDF


  • Filesize: 0.73 MB
  • 25 pages

Document Identifiers

Author Details

Dhruv C. Makwana
  • Unaffiliated
Neelakantan R. Krishnaswami
  • Department of Computer Science and Technology, University of Cambridge, United Kingdom


We would like to thank Stephen Dolan for his advice and support with the implementation and evaluation of NumLin. We would also like to thank the (anonymous) reviewers for their feedback and suggestions.

Cite AsGet BibTex

Dhruv C. Makwana and Neelakantan R. Krishnaswami. NumLin: Linear Types for Linear Algebra. In 33rd European Conference on Object-Oriented Programming (ECOOP 2019). Leibniz International Proceedings in Informatics (LIPIcs), Volume 134, pp. 14:1-14:25, Schloss Dagstuhl - Leibniz-Zentrum für Informatik (2019)


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.

Subject Classification

ACM Subject Classification
  • Theory of computation → Program specifications
  • numerical
  • linear
  • algebra
  • types
  • permissions
  • OCaml


  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    PDF Downloads
Questions / Remarks / Feedback

Feedback for Dagstuhl Publishing

Thanks for your feedback!

Feedback submitted

Could not send message

Please try again later or send an E-mail