Article ID Journal Published Year Pages File Type
434694 Science of Computer Programming 2006 22 Pages PDF
Abstract

The Gaussian Elimination algorithm is in fact an algorithm family — common implementations contain at least six (mostly independent) “design choices”. A generic implementation can easily be parametrized by all these design choices, but this usually leads to slow and bloated code. Using MetaOCaml’s staging facilities, we show how we can produce a natural and type-safe implementation of Gaussian Elimination which exposes its design choices at code-generation time, so that these choices can effectively be specialized away, and where the resulting code is quite efficient.

Related Topics
Physical Sciences and Engineering Computer Science Computational Theory and Mathematics