Gaussian elimination: a case study in efficient genericity with MetaOCaml

  • Authors:
  • Jacques Carette

  • Affiliations:
  • McMaster University, Hamilton, Canada

  • Venue:
  • Science of Computer Programming - Special issue on the first MetaOCaml workshop 2004
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

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.