SSBMV   -  perform  the  matrix-vector  operation    y  :=
       alpha*A*x + beta*y,


SYNOPSIS

       SUBROUTINE SSBMV ( UPLO, N, K, ALPHA,  A,  LDA,  X,  INCX,
                        BETA, Y, INCY )

           REAL         ALPHA, BETA

           INTEGER      INCX, INCY, K, LDA, N

           CHARACTER*1  UPLO

           REAL         A( LDA, * ), X( * ), Y( * )


PURPOSE

       SSBMV  performs the matrix-vector  operation

       where  alpha  and  beta are scalars, x and y are n element
       vectors and A is an n by n symmetric band matrix,  with  k
       super-diagonals.


PARAMETERS

       UPLO   - CHARACTER*1.
              On entry, UPLO specifies whether the upper or lower
              triangular part of the band matrix A is being  sup­
              plied as follows:

              UPLO  = 'U' or 'u'   The upper triangular part of A
              is being supplied.

              UPLO = 'L' or 'l'   The lower triangular part of  A
              is being supplied.

              Unchanged on exit.

       N      - INTEGER.
              On entry, N specifies the order of the matrix A.  N
              must be at least zero.  Unchanged on exit.

       K      - INTEGER.
              On entry, K specifies the number of super-diagonals
              of  the  matrix  A.  K  must  satisfy   0  .le.  K.
              Unchanged on exit.

       ALPHA  - REAL            .
              On  entry,  ALPHA  specifies  the   scalar   alpha.
              Unchanged on exit.

       A      - REAL             array of DIMENSION ( LDA, n ).
              Before  entry with UPLO = 'U' or 'u', the leading (
              k + 1 ) by n part of the array A must  contain  the

              supplied column by column, with the leading  diago­
              nal  of  the  matrix in row ( k + 1 ) of the array,
              the first super-diagonal starting at position 2  in
              row  k,  and so on. The top left k by k triangle of
              the array A is not referenced.  The following  pro­
              gram  segment  will  transfer  the upper triangular
              part of a symmetric band matrix  from  conventional
              full matrix storage to band storage:

              DO  20, J = 1, N M = K + 1 - J DO 10, I = MAX( 1, J
              - K ), J A( M + I, J ) = matrix( I, J ) 10     CON­
              TINUE 20 CONTINUE

              Before  entry with UPLO = 'L' or 'l', the leading (
              k + 1 ) by n part of the array A must  contain  the
              lower triangular band part of the symmetric matrix,
              supplied column by column, with the leading  diago­
              nal  of the matrix in row 1 of the array, the first
              sub-diagonal starting at position 1 in row  2,  and
              so  on.  The  bottom  right  k by k triangle of the
              array A is not referenced.  The  following  program
              segment  will transfer the lower triangular part of
              a symmetric  band  matrix  from  conventional  full
              matrix storage to band storage:

              DO 20, J = 1, N M = 1 - J DO 10, I = J, MIN( N, J +
              K ) A( M + I, J ) = matrix( I, J )  10     CONTINUE
              20 CONTINUE

              Unchanged on exit.

       LDA    - INTEGER.
              On entry, LDA specifies the first dimension of A as
              declared in the calling (sub) program. LDA must  be
              at least ( k + 1 ).  Unchanged on exit.

       X      - REAL             array of DIMENSION at least
              (  1  + ( n - 1 )*abs( INCX ) ).  Before entry, the
              incremented array X  must  contain  the  vector  x.
              Unchanged on exit.

       INCX   - INTEGER.
              On entry, INCX specifies the increment for the ele­
              ments of X. INCX must not be  zero.   Unchanged  on
              exit.

       BETA   - REAL            .
              On   entry,   BETA   specifies   the  scalar  beta.
              Unchanged on exit.

       Y      - REAL             array of DIMENSION at least
              ( 1 + ( n - 1 )*abs( INCY ) ).  Before  entry,  the
              incremented  array  Y must contain the vector y. On


       INCY   - INTEGER.
              On entry, INCY specifies the increment for the ele­
              ments  of  Y.  INCY must not be zero.  Unchanged on
              exit.

              Level 2 Blas routine.

              --  Written  on  22-October-1986.   Jack  Dongarra,
              Argonne  National Lab.  Jeremy Du Croz, Nag Central
              Office.   Sven  Hammarling,  Nag  Central   Office.
              Richard Hanson, Sandia National Labs.


Man(1) output converted with man2html