|
Boost Users : |
From: ajb_at_[hidden]
Date: 2005-01-23 20:32:14
G'day all.
Quoting Hossein Haeri <powerprogman_at_[hidden]>:
> 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.
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. This means that if you want
to invert a matrix, you have to pick an algorithm appropriate to your
problem. It's therefore impossible to supply an operation of the form
inverse(m) which is generally useful.
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".
Cheers,
Andrew Bromage
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net