|
Boost : |
From: David Abrahams (david.abrahams_at_[hidden])
Date: 2001-08-22 10:48:48
----- Original Message -----
From: "Jeremy Siek" <jsiek_at_[hidden]>
> On Wed, 22 Aug 2001, David Abrahams wrote:
> david.>
> david.> > In libs/numberic/doc you will find LinearAlgebraConcepts.html
which
> david.> > describes the high-level concepts for linear algebra operations.
> david.>
> david.> One thing I think is missing from this document is
> david.> InvertibleLinearOperator. Do you agree, or did you imagine
> david.> the role of that concept being filled in some other way?
>
> Hmm, I've always thought of creating an inverse as something an algorithm,
> or collection of algorithms, would do. That it would not just be a single
> "operation" that could be described in a concept. However, if we could fit
> taking an inverse into a nice interface that fits as an "operation"
> without sacrificing performance, that would be nice, so I'm open to that
> approach.
I agree that it's a design question. Here's the scenario I'm describing in
more detail:
A matrix is not a linear operator by itself; it's more of a container.
You could make any of several linear operators from a given matrix, e.g. by
sticking the matrix in a wrapper.
In particular, if the matrix describes a linear operator with an exact
inverse, you could make an InvertibleLinearOperator whose inverse_type
contains the matrix's LU factorization and uses the usual forward/backsolve
internally when the inverse is applied to a vector. Note that the inverse is
NOT the inverse of the matrix (you can't efficiently index its elements),
but it /is/ the inverse of the LinearOperator described by the matrix. Even
if the matrix is singular, you may be able to make an
ApproximatelyInvertibleLinearOperator (or something shorter ;0) from it,
whose inverse uses, say, GMRES when it is applied to a vector.
I guess what I'm trying to emphasize here is that the factorization of a
matrix is useful as a LinearOperator but is not, by itself, a matrix in the
usual sense.
> david.> I'd like to work with you on that (but perhaps after the
> david.> tmpw01 paper is polished ;-)).
>
> Yeah, I'm going to be a busy little bee. I've also got the final draft of
> the BGL book due on the 27th!
Likewise, I'm sure!
-Dave
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk