This paper describes additions to the set of FORTRAN Basic Linear Algebra Subprograms, or BLAS. The original set of BLAS [1] has been widely accepted and many published programs refer to it. Special machine-code implementations of the BLAS that take advantage of specific machine features have been shown to speed up programs that use them, with no changes to the FORTRAN source. To quote the present paper: “[The BLAS] are an aid to clarity, portability, modularity and maintenance of software and have become a de facto standard for the elementary vector operations.”
While the original set included only vector operations, the additions proposed here are matrix and vector operations that occur frequently in mathematical programs. The choice of operations was made after much consultation with workers in the field at meetings during 1984 and 1985. The paper further describes the naming conventions and calling sequences for the subprograms as well as the various matrix storage schemes that may be used.
Textbooks always point out the power and utility of matrix-vector notation as an aid to mathematical thought, and systems such as APL have demonstrated its advantages in programming. Now, as the BLAS with these extensions become available on more FORTRAN programming systems, programmers for scientific and engineering applications can also benefit without losing speed or storage efficiency.