Boost logo

Boost Users :

From: ajb_at_[hidden]
Date: 2005-01-24 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 Policy-Based Design (PBD) is
> for.

The purpose of Policy-Based 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 general-purpose 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

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 base-level 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.

Andrew Bromage

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at