### Matrix Arguments in BLAS and LAPACK

To pass matrices to BLAS or LAPACK routines, you need to use (some or all of) the following parameters:

array that holds the matrix elements (for example, `a` contains elements of the matrix `a` in single precision); see also Matrix Storage Schemes and Naming Conventions.

leading dimension of the array (for example, `lda`). For full-storage matrices, the leading dimension must not be less than the number of rows in the matrix. For band matrices, it must not be less than the matrix band width.

numbers of rows and columns in the matrix, or the matrix order (for example, `m`, `n`, or `k`).

`uplo` parameter for triangular, symmetric, or Hermitian matrices. This parameter specifies whether the upper or lower triangle of the matrix is stored. See Matrix Storage Schemes for more information.

transposition parameter (for example, `transa`). This parameter specifies whether to transpose/conjugate the passed matrix `a`.
If `transa='N'` or `'n'`, the routine works with the matrix `a` without transposition or conjugation. In the routine description, `op(a) = a`.
If `transa='T'` or `'t'`, the routine works with the transposed matrix (`a'`). In the routine description, `op(a) = a'`.
If `transa='C'` or `'c'`, the routine works with the conjugated transposed matrix (`conjg(a)'`). In the routine description, `op(a) = conjg(a)'`.
Similar conventions apply to the parameter `transb` and the matrix `b`.

`diag` parameter. This parameter specifies whether the matrix has unit diagonal elements.
If `diag ='U'` or `'u'`, all diagonal elements are assumed to be 1; the routine does not actually reference the corresponding locations in the array.
If `diag ='N'` or `'n'`, the routine works with the values of diagonal matrix elements stored in the array.

* Legal Information © 1999, 2002-2004, Intel Corporation