archives

Kay no longer at HP

Jst so you know.

Lazy linear algebra

Lazy Linear Algebra

I wonder if any of the LtU readers would be able to advise me about
lazy languages/libraries for LinearAlgebra.html">linear algebra (vector-matrix numerics). It
strikes me that this is an problem domain in which the lazy approach
might be able to offer significant advantages. For example, it is
often the case that one wants to obtain certain elements of a matrix
resulting from some expression (e.g. one or more rows or columns, or
some elements from some row(s) or column(s)). Linear algebra can be
computationally expensive, especially if you don't want all the
values that would be computed by a naive implementation of some
expression. The lazy approach might be particularly useful if you
don't know a priori which elements you are going to need (e.g.
if the answer you seek depends upon the properties of the matrices in
question, which you may not know until you start in on the
calculations). It is certainly true that one could hand-code this
kind of laziness, but that way lies bugs and hard work on the part of
the programmer. Further, certain matrix operations yield matrices
with properties that could be lazily exploited (e.g. symmetric
matrices may be specified by only the upper or lower triangle),
yielding potential time and space savings. I realise that libraries
such as LAPACK contain
functions that exploit the properties of the matrices, but I
understand that it is the programmer who decides which functions
should be called rather than the machine. As someone with no formal
PL education, can anyone tell me what if any research has been done
on lazy linear algebra and how I might start playing around in such
an area?

(posted for Chris Rose)