
Boost Users : 
From: ajb_at_[hidden]
Date: 20050124 20:32:20
G'day all.
I wrote:
> > This
> > means that if you want
> > to invert a matrix, you have to pick an algorithm
> > appropriate to your
> > problem.
Quoting Hossein Haeri <powerprogman_at_[hidden]>:
> And that's, AFAIK, what PolicyBased Design (PBD) is
> for.
The purpose of PolicyBased Design, as I understand it, is to cleanly
separate mechanism and policy, even in places where mechanism needs to
call on policy. In the case of inverting matrices, policy can be
perfectly well implemented as a layer above (e.g. LAPACK), so BLAS
doesn't need to know about it.
> 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?
BLAS officially stands for Basic Linear Algebra Subprograms. A little
history might help here. (Note: I've taken liberties with the "history"
that follows, because I'm not a historian and the purpose of what follows
is not to be an accurate chronicle, but rather to talk about the purpose
of BLAS.)
BLAS dates from the early days of numeric supercomputing. Supercomputers
have various capabilities (vector pipelines and so forth) which are not
easily used by a compiler for a generalpurpose language like Fortran. A
lot of research has gone into automatically finding opportunities to use
these hardware features with varying degrees of success, but no real
guarantees.
So rather than wait for Sufficiently Smart Compilers to appear, people
used a standard library instead. This library is BLAS. Supercomputer
vendors might ship their own version BLAS, tuned to take advantage of the
available hardware and do the rest in software.
In other words, BLAS is really, really Basic.
An analogy is that baselevel OpenGL is really, really basic too. In
fact, it's not terribly useful by itself; at the very least, you generally
want GLU as well.
Cheers,
Andrew Bromage
Boostusers 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