Article ID | Journal | Published Year | Pages | File Type |
---|---|---|---|---|
434694 | Science of Computer Programming | 2006 | 22 Pages |
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