CXML

ssbmv, dsbmv, chbmv, zhbmv 


FORMAT

  {S,D}SBMV (uplo, n, k, alpha, a, lda, x, incx, beta, y, incy) {C,Z}HBMV
  (uplo, n, k, alpha, a, lda, x, incx, beta, y, incy)

Arguments

  uplo                character*1
                      On entry, specifies whether the upper- or lower-
                      triangular part of the array A is referenced:

     If uplo = 'U' or 'u', the upper-triangular part of A is referenced.

     If uplo = 'L' or 'l', the lower-triangular part of A is referenced.
     On exit, uplo is unchanged.

  n                   integer*4
                      On entry, the order of the matrix A; n >= 0.
                      On exit, n is unchanged.

  k                   integer*4
                      On entry, if uplo specifies the upper portion of matrix
                      A, k represents the number of super-diagonals of the
                      matrix. If uplo specifies the lower portion, k is the
                      number of subdiagonals; k >= 0.
                      On exit, k is unchanged.

  alpha               real*4 | real*8 | complex*8 | complex*16
                      On entry, the scalar alpha*.
                      On exit, alpha is unchanged.

  a                   real*4 | real*8 | complex*8 | complex*16
                      On entry, a two-dimensional array with dimensions lda
                      by n.

  When uplo specifies the upper portion of the matrix, the leading (k + 1) by
  n part of the array must contain the upper-triangular band part of the
  matrix, supplied column by column. The main diagonal of the matrix is
  stored in row (k + 1) of the array, the first super-diagonal is stored in
  row k starting at position 2, and so on.  The top left k by k triangle of
  the array A is not referenced.

  When uplo specifies the lower portion of the matrix, the leading (k + 1) by
  n part of the array must contain the lower-triangular band part of the
  matrix, supplied column by column. The main diagonal of the matrix is
  stored in row 1 of the array, the first sub-diagonal is stored in row 2,
  starting at position 1, and so on. The bottom right k by k triangle of the
  array A is not referenced.

  For CHBMV and ZHBMV routines,  the imaginary parts of the diagonal elements
  are not accessed, need not be  set, and are assumed to be zero.
  On exit, a is unchanged.

  lda                 integer*4
                      On entry, the first dimension of array A; lda >= (k+1).
                      On exit, lda is unchanged.

  x                   real*4 | real*8 | complex*8 | complex*16
                      On entry, a one-dimensional array X of length at least
                      (1+(n-1)*|incx|).  Array X contains the vector x.
                      On exit, x is unchanged.

  incx                integer*4
                      On entry, the increment for the elements of X; incx
                      must not equal zero.
                      On exit, incx is unchanged.

  beta                real*4 | real*8 | complex*8 | complex*16
                      On entry, the scalar beta.
                      On exit, beta is unchanged.

  y                   real*4 | real*8 | complex*8 | complex*16
                      On entry, a one-dimensional array Y of length at least
                      (1+(n-1)*|incy|).

  If beta= 0, y need not be set.  If betais not equal to zero, the
  incremented array Y must contain the vector y.
  On exit, y is overwritten by the updated vector y.

  incy                integer*4
                      On entry, the increment for the elements of Y; incy
                      must not equal zero.
                      On exit, incy is unchanged.

Description

  SSBMV and DSBMV compute a matrix-vector product for a real symmetric band
  matrix. CHBMV and ZHBMV compute a matrix-vector product for a complex
  Hermitian band matrix. Both products are described by the following
  operation: y  = alpha*Ax + beta*y

  alphaand betaare scalars, and x and y are vectors with n elements. In the
  case of SSBMV and DSBMV, A is a symmetric matrix and in the case of CHBMV
  and ZHBMV, A is a Hermitian matrix.

Example

  REAL*8 A(2,10), X(10), Y(10), alpha, beta
  N = 10
  K = 1
  alpha = 2.0D0
  LDA = 2
  INCX = 1
  beta = 1.0D0
  INCY = 1
  CALL DSBMV('U',N,K,alpha,A,LDA,X,INCX,beta,Y,INCY)

  This FORTRAN code computes the product y  =  alpha*Ax + y) where A is a
  symmetric tridiagonal matrix, with A stored in upper-triangular form.

  COMPLEX*8 A(2,10), X(10), Y(10), alpha, beta
  N = 10
  K = 1
  alpha = (2.0, 2.2)
  LDA = 2
  INCX = 1
  beta = (1.0, 0.0)

  This FORTRAN code computes the product y  =  alpha*Ax + y) where A is a
  Hermitian tridiagonal matrix, with the upper diagonal of A stored.

CXML Home Page

Index of CXML Routines