BLAS-like Routines

Internally most numerical routines build on a few BLAS-like routines for efficiency reasons. On the first reading we recommend to skip this part entirely and to use only the operations given in

The purpose of the BLAS-like routines is to further reduce the typical C++ problem of superfluous copying of elements due to temporary variables in places where high effeciency is in demand. The recommended procedure is to first develop the code with overloaded operators. Once the code works perfectly, split the statements into calls to these BLAS-like routines for efficiency.

Most of the BLAS-like routines are of level-1-type but follow a slightly different naming scheme more aligned to the syntax of C++. Some typical names are

The only level-2-type routine in heavy use is

The genmult() routine exists for almost any sensible combination of matrix classes, sensible meaning, e.g., that the product of a symmetric matrix with a square matrix is a square matrix that is typically not symmetric. So in most combinations C will need to be the most general type of class, a Matrix.