Boost logo

Boost :

From: David Abrahams (david.abrahams_at_[hidden])
Date: 2001-08-21 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.


  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.


Boost list run by bdawes at, gregod at, cpdaniel at, john at