G'day all.
Quoting Hossein Haeri
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