# Boost Users :

From: Hossein Haeri (powerprogman_at_[hidden])
Date: 2005-01-24 10:30:44

Andrew,

> > Sure. And, I find it hilarious that they are not
> > assummed as of the basic linear algebraic project.
>
> Not really.
>
> The reason is that while there is only one "obvious"
> way to multiply
> two general matrices (taking shortcuts for matrices
> which exhibit certain
> structure), but given a general matrix, it's often
> not "obvious" how to
> invert it, or even if inverting it is a good idea.

Assuming it is...

> Gaussian elimination, LU decomposition and Cramer's
> rule (to name but
> three) are all ways to invert a general matrix, each
> of which has
> different efficiency and stability properties, and
> which return different
> answers on the same floating point hardware.

Yeap, I'm remembering things... :(

> This
> means that if you want
> to invert a matrix, you have to pick an algorithm
> appropriate to your
> problem.

And that's, AFAIK, what Policy-Based Design (PBD) is
for.

> It's therefore impossible to supply an
> operation of the form
> inverse(m) which is generally useful.

But this is possible: (Assuming that the design is
PBD)

inverse<crammer>(m);

> I can't speak for the developers of uBLAS (or BLAS,
> for that matter),
> but the philosophy seems to be that if there's more
> than one possible
> algorithm for something, and using different
> algorithms make sense under
> different circumstances, and it's not obvious how to
> choose between those
> ways automatically (e.g. using iterator categories
> or the like), then
> it's not "basic".

Sorry, but I'm not with you at all. In fact, I'm about
to give the same answer I gave to Yoann; BLAS,
generally, stands for "basic linear algebraic"
algorithms, and not for "basic algoirthms" of "linear
algebra". Got the point? Am I right? Or, am I missing
anything?

Wishes,
--Hossein

___________________________________________________________
ALL-NEW Yahoo! Messenger - all new features - even more fun! http://uk.messenger.yahoo.com