
Boost : 
From: David Abrahams (david.abrahams_at_[hidden])
Date: 20010821 09:35:29
 Original Message 
From: "Dietmar Kuehl" <dietmar_kuehl_at_[hidden]>
> The same confusion between solvers, algorithms, and their
> implementation will probably arise with matrix libraries, too, and
> it already does with graphs as far as I have seen. I think we should
> define such terms precisely such that we can talk more clearly about
> these issues. Unfortunately, I'm not particularily comfortable with
> the term "solver" used in the text above but I can't think of a better
> term, almost certainly due to the fact that I'm not a native English
> speaker...
In the context of matrix libraries, "solver" usually refers to something
which solves the equation:
A * x = b
given A and b, e.g. by factoring A into L and U parts.
I think a better formulation might be to think of A as an
InvertibleLinearOperator and to think of its LU factorization as the inverse
of A.
Then:
typedef InvertibleLinearOperator::inverse_type inverse_operator;
inverse_operator A_inverse(A);
// or
inverse_operator A_inverse(invert(A));
x = A_inverse * b;
One nice feature of this formulation is that you can hang onto the LU
factorization somewhere, and use it like any other LinearOperator.
Dave
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk