This chapter is concerned with basic linear algebra functions which perform elementary algebraic operations involving vectors and matrices.
The functions in this chapter follow the specification of
The BLAS Technical Forum Standard (2001). They are called extensively by functions in other chapters of the NAG C Library, especially in the linear algebra chapters. They are intended to be useful building-blocks for users of the Library who are developing their own applications.
The functions fall into three main groups:
- scalar and vector operations, also referred to as Level 1 BLAS;
- matrix-vector operations or Level 2 BLAS;
- matrix operations which includes single matrix operations (Level 2 BLAS), matrix-matrix operations (Level 3 BLAS) and data movement operations on matrices.
The terminology reflects the number of operations involved, so for example a Level 2 function involves operations, for vectors and matrices of order .
In many implementations of the NAG C Library, the functions in this chapter serve as interfaces to an efficient machine-specific implementation of the BLAS, usually provided by the vendor of the machine. Such implementations are stringently tested before being used with the NAG
Library, to ensure that they correctly meet the specifications of the
BLAS, and that they return the desired accuracy.
The functions in this chapter make available only some of the
Basic Linear Algebra Subprograms which carry out the low level operations required by linear algebra applications.
It should be noted that, in some cases,
The BLAS Technical Forum Standard (2001) extends the functionality of earlier BLAS specifications. For example,
nag_daxpby (f16ecc) carrying out the operation
is
replaced by
nag_daxpby (f16ecc),
which performs the operation
The operator arguments
diag,
norm,
order,
side,
trans and
uplo are defined as enumeration types.
The
order argument allows for 2D arrays to be supplied in either row or column ordering. The precise meaning of this for the packed and banded matrix storage schemes which are used by some of the
functions in this chapter is described in
the
f07 and
f08 Chapter Introductions.
Functions in this chapter do not use the usual NAG C Library error-handling mechanism, involving the argument ifail.
If one of the BLAS functions is called with an invalid value of one of its arguments, then an error message is output, giving the name of the function and the number of the first invalid argument, and execution of the program is terminated. The following values of arguments are invalid:
- – any value of the operator arguments whose meaning is not specified;
- – a negative value of any problem dimension or bandwidth;
- – too small a value for any of the leading dimension arguments;
- – a zero value for the increment arguments.
Zero values for the matrix dimensions are considered valid.
None.
The BLAS Technical Forum Standard (2001)
http://www.netlib.org/blas/blast-forum