Loading...
Searching...
No Matches

## ssbmv()

subroutine ssbmv | ( | character | uplo,
|  | integer | n,
|  | integer | k,
|  | real | alpha,
|  | real, dimension(lda,*) | a,
|  | integer | lda,
|  | real, dimension(*) | x,
|  | integer | incx,
|  | real | beta,
|  | real, dimension(*) | y,
|  | integer | incy )

SSBMV

Purpose:

      !>
      !> SSBMV  performs the matrix-vector  operation
      !>
      !>    y := alpha*A*x + beta*y,
      !>
      !> 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

  [in]

  UPLO

      !>          UPLO is CHARACTER*1
      !>           On entry, UPLO specifies whether the upper or lower
      !>           triangular part of the band matrix A is being supplied 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.
      !>

  [in]

  N

      !>          N is INTEGER
      !>           On entry, N specifies the order of the matrix A.
      !>           N must be at least zero.
      !>

  [in]

  K

      !>          K is INTEGER
      !>           On entry, K specifies the number of super-diagonals of the
      !>           matrix A. K must satisfy  0 .le. K.
      !>

  [in]

  ALPHA

      !>          ALPHA is REAL
      !>           On entry, ALPHA specifies the scalar alpha.
      !>

  [in]

  A

      !>          A is REAL array, dimension ( LDA, N )
      !>           Before entry with UPLO = 'U' or 'u', the leading ( k + 1 )
      !>           by n part of the array A must contain the upper triangular
      !>           band part of the symmetric matrix, supplied column by
      !>           column, with the leading diagonal 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 program 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    CONTINUE
      !>              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 diagonal 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
      !>

  [in]

  LDA

      !>          LDA is INTEGER
      !>           On entry, LDA specifies the first dimension of A as declared
      !>           in the calling (sub) program. LDA must be at least
      !>           ( k + 1 ).
      !>

  [in]

  X

      !>          X is REAL array, dimension at least
      !>           ( 1 + ( n - 1 )*abs( INCX ) ).
      !>           Before entry, the incremented array X must contain the
      !>           vector x.
      !>

  [in]

  INCX

      !>          INCX is INTEGER
      !>           On entry, INCX specifies the increment for the elements of
      !>           X. INCX must not be zero.
      !>

  [in]

  BETA

      !>          BETA is REAL
      !>           On entry, BETA specifies the scalar beta.
      !>

  [in,out]

  Y

      !>          Y is REAL array, dimension at least
      !>           ( 1 + ( n - 1 )*abs( INCY ) ).
      !>           Before entry, the incremented array Y must contain the
      !>           vector y. On exit, Y is overwritten by the updated vector y.
      !>

  [in]

  INCY

      !>          INCY is INTEGER
      !>           On entry, INCY specifies the increment for the elements of
      !>           Y. INCY must not be zero.
      !>

Author
  Univ. of Tennessee
  Univ. of California Berkeley
  Univ. of Colorado Denver
  NAG Ltd.

Further Details:

      !>
      !>  Level 2 Blas routine.
      !>  The vector and matrix arguments are not referenced when N = 0, or M = 0
      !>
      !>  -- 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.
      !>