OON: Re: oon-digest V1 #19

From: David B. Serafini (dbs@mothra.lbl.gov)
Date: Mon Mar 23 1998 - 13:56:46 EST


> From: oleg@pobox.com
> Date: Mon, 9 Mar 1998 17:33:16 GMT
> Subject: OON: Announcing LinAlg 4.1, The next incarnation
>
> Another overarching idea is that of Streams. It has become my
> conviction that many Numerical Math algorithms don't actually require
> a direct access to matrix elements. Surprisingly many algorithms in
> essence merely sweep along a matrix or some parts of it. This _serial_
> access is faster than the random one: one does not need to bother
> computing index expressions. The whole issue of index boundary
> checking simply goes away: thus safety is _built-in_. To prove that it
> is indeed possible to use the serial access in non-trivial
> applications, I rewrote the computations of a determinant and of a
> matrix inverse with only a sequential access to a matrix, _without
> ever_ using a familiar 'A(i,j)'.

A lot of linear algebra algorithms are defined in terms of matrix-vector and
matrix-matrix operations for just this reason. For example, many sparse linear
system solvers take the matrix-vector multiply operator as an input, and
require no access to the matrix except through this operator. These streams
sound like a nice mechanism for implementing low-level code, but I do not think
they are as good for application level code. I think it's better to promote
use of large granularity operations in the application wherever possible.

It's interesting that you pick determinant and inverse as examples, since these
are two operations that computational linear algebraists recommend avoiding
if at all possible.

-David



This archive was generated by hypermail 2b29 : Wed Feb 20 2002 - 03:20:06 EST