gbmv(3F)

SGBMV, DGBMV, CGBMV, ZGMBV - Multiplies a real or complex vector by a real or complex general band matrix

As shipped in IRIX 6.5.22. Last changed in IRIX 6.5.19.

NAME
     SGBMV, DGBMV, CGBMV, ZGMBV - Multiplies a real or complex vector by a
     real or complex general band matrix

SYNOPSIS
     Real
        CALL SGBMV (trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y,
        incy)

     Double precision

        CALL DGBMV (trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y,
        incy)

     Complex

        CALL CGBMV (trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y,
        incy)

     Double complex

        CALL ZGBMV (trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y,
        incy)

DESCRIPTION
     SGBMV and DGBMV multiply a real vector by a real general band matrix.

     CGBMV and ZGBMV multiply a complex vector by a complex general band
     matrix.

     These routines perform one of the following matrix-vector operations:

          y <-  alpha Ax + beta y


          y <-  alpha ATx + beta y


          y <-  alpha AHx + beta y

     where

     * where alpha and beta are scalars,

     * x and y are vectors

     * A is an m-by-n band matrix with kl subdiagonals and ku
       superdiagonals

     * AT is the transpose of A

     * AH is the conjugate transpose of A

     These routines have the following arguments:

     trans     Character*1.  (input)
               Specifies the operation to be performed:

               trans = 'N' or 'n':  y <- alpha Ax + beta y

               trans = 'T' or 't':  y  <-  alpha ATx + beta y

               trans = 'C' or 'c':  y <- alpha ATx + beta y (SGBMV, DGBMV),
               or

               y  <-  alpha AHx + beta y (CGBMV, ZGBMV)

     m         Integer.  (input)
               Specifies the number of rows in matrix A.  m >= 0.

     n         Integer.  (input)
               Specifies the number of columns in the matrix A.  n >= 0.

     kl        Integer.  (input)
               Specifies the number of subdiagonals of matrix A.  kl >= 0.

     ku        Integer.  (input)
               Specifies the number of superdiagonals of matrix A.  ku >=
               0.

     alpha     Scalar alpha.  (input)
               SGBMV: Real.
               DGBMV: Double precision.
               CGBMV: Complex.
               ZGBMV: Double complex.

     a         Array of dimension (lda,n).  (input)
               SGBMV: Real array.
               DGBMV: Double precision array.
               CGBMV: Complex array.
               ZGBMV: Double complex array.

               Before entry, the leading (kl+ku+1)-by-n part of array a
               must contain the matrix of coefficients, supplied
               column-by-column, with the leading diagonal of the matrix in
               row (ku+1) of the array, the first superdiagonal starting at
               position 2 in row ku, the first subdiagonal starting at
               position 1 in row (ku+2), and so on.  Elements in array a
               that do not correspond to elements in the band matrix (such
               as the top left ku-by-ku triangle) are not referenced.

               See the NOTES section for an example of Fortran code that
               transfers a band matrix from conventional full matrix
               storage to band storage.

     lda       Integer.  (input)
               Specifies the first dimension of a as declared in the
               calling program.  lda >= (kl+ku+1).

     x         Array of dimension 1+(n-1) * |incx| when trans = (input)
               SGBMV: Real array.
               DGBMV: Double precision array.
               CGBMV: Complex array.
               ZGBMV: Double complex array.
               Contains the vector x.  When trans = 'N' or 'n', kx is n;
               otherwise, it is m.

     incx      Integer.  (input)
               Specifies the increment for the elements of x.  incx must
               not be 0.

     beta      Scalar beta.  (input)
               SGBMV: Real.
               DGBMV: Double precision.
               CGBMV: Complex.
               ZGBMV: Double complex.
               When beta is supplied as 0, y need not be set on input.

     y         Array of dimension 1+(m-1) * |incy| when trans = (input and
               output)
               SGBMV: Real array.
               DGBMV: Double precision array.
               CGBMV: Complex array.
               ZGBMV: Double complex array.
               Contains the vector y.  When trans = 'N' or 'n', ky is m;
               otherwise, it is n.  On exit, the updated vector overwrites
               array y.

     incy      Integer.  (input)
               Specifies the increment for the elements of y.
               incy must not be 0.

NOTES
     The following program segment transfers a band matrix from
     conventional full matrix storage to band storage:

              DO 20, J = 1, N
                 K = KU + 1 - J
                 DO 10, I = MAX(1, J - KU), MIN(M, J + KL)
                    A(K + I, J) = MATRIX(I, J)
          10    CONTINUE
          20 CONTINUE

     SGBMV, DGBMV, ZGBMV and CGBMV are Level 2 Basic Linear Algebra
     Subprograms (Level 2 BLAS).

     When working backward (incx < 0 or incy < 0), each routine starts at
     the end of the vector and moves backward, as follows:

          x(1-incx * (n-1)), x(1-incx * (n-2)) , ..., x(1)

          y(1-incy * (n-1)), y(1-incy * (n-2)) , ..., y(1)