          SEARCH  NEW RPMS  DIRECTORIES  ABOUT  FAQ  VARIOUS  BLOG  DONATE  YUM REPOSITORY    MAN page from OpenSuSE blas-man-3.4.2-3.6.16.noarch.rpm

# chbmv.f

Section: LAPACK (3)
Updated: Thu Jun 23 2016
Index

chbmv.f -

## SYNOPSIS

### Functions/Subroutines

subroutine CHBMV (UPLO, N, K, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
CHBMV

## Function/Subroutine Documentation

### subroutine CHBMV (character UPLO, integer N, integer K, complex ALPHA, complex, dimension(lda,*) A, integer LDA, complex, dimension(*) X, integer INCX, complex BETA, complex, dimension(*) Y, integer INCY)

CHBMV

Purpose:

` CHBMV  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 hermitian band matrix, with k super-diagonals.`

Parameters:

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.`

N

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

K

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

ALPHA

`          ALPHA is COMPLEX           On entry, ALPHA specifies the scalar alpha.`

A

`          A is COMPLEX 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 upper triangular           band part of the hermitian 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 hermitian 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 hermitian 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 hermitian 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           Note that the imaginary parts of the diagonal elements need           not be set and are assumed to be zero.`

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 ).`

X

`          X is COMPLEX array of DIMENSION at least           ( 1 + ( n - 1 )*abs( INCX ) ).           Before entry, the incremented array X must contain the           vector x.`

INCX

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

BETA

`          BETA is COMPLEX           On entry, BETA specifies the scalar beta.`

Y

`          Y is COMPLEX array of 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.`

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

NAG Ltd.

Date:

November 2011

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.`

Definition at line 189 of file chbmv.f.

`189 *190 *  -- Reference BLAS level2 routine (version 3.4.0) --191 *  -- Reference BLAS is a software package provided by Univ. of Tennessee,    --192 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--193 *     November 2011194 *195 *     .. Scalar Arguments ..196       COMPLEX alpha,beta197       INTEGER incx,incy,k,lda,n198       CHARACTER uplo199 *     ..200 *     .. Array Arguments ..201       COMPLEX a(lda,*),x(*),y(*)202 *     ..203 *204 *  =====================================================================205 *206 *     .. Parameters ..207       COMPLEX one208       parameter(one= (1.0e+0,0.0e+0))209       COMPLEX zero210       parameter(zero= (0.0e+0,0.0e+0))211 *     ..212 *     .. Local Scalars ..213       COMPLEX temp1,temp2214       INTEGER i,info,ix,iy,j,jx,jy,kplus1,kx,ky,l215 *     ..216 *     .. External Functions ..217       LOGICAL lsame218       EXTERNAL lsame219 *     ..220 *     .. External Subroutines ..221       EXTERNAL xerbla222 *     ..223 *     .. Intrinsic Functions ..224       INTRINSIC conjg,max,min,real225 *     ..226 *227 *     Test the input parameters.228 *229       info = 0230       IF (.NOT.lsame(uplo,'U') .AND. .NOT.lsame(uplo,'L')) THEN231           info = 1232       ELSE IF (n.LT.0) THEN233           info = 2234       ELSE IF (k.LT.0) THEN235           info = 3236       ELSE IF (lda.LT. (k+1)) THEN237           info = 6238       ELSE IF (incx.EQ.0) THEN239           info = 8240       ELSE IF (incy.EQ.0) THEN241           info = 11242       END IF243       IF (info.NE.0) THEN244           CALL xerbla('CHBMV ',info)245           RETURN246       END IF247 *248 *     Quick return if possible.249 *250       IF ((n.EQ.0) .OR. ((alpha.EQ.zero).AND. (beta.EQ.one))) RETURN251 *252 *     Set up the start points in  X  and  Y.253 *254       IF (incx.GT.0) THEN255           kx = 1256       ELSE257           kx = 1 - (n-1)*incx258       END IF259       IF (incy.GT.0) THEN260           ky = 1261       ELSE262           ky = 1 - (n-1)*incy263       END IF264 *265 *     Start the operations. In this version the elements of the array A266 *     are accessed sequentially with one pass through A.267 *268 *     First form  y := beta*y.269 *270       IF (beta.NE.one) THEN271           IF (incy.EQ.1) THEN272               IF (beta.EQ.zero) THEN273                   DO 10 i = 1,n274                       y(i) = zero275    10             CONTINUE276               ELSE277                   DO 20 i = 1,n278                       y(i) = beta*y(i)279    20             CONTINUE280               END IF281           ELSE282               iy = ky283               IF (beta.EQ.zero) THEN284                   DO 30 i = 1,n285                       y(iy) = zero286                       iy = iy + incy287    30             CONTINUE288               ELSE289                   DO 40 i = 1,n290                       y(iy) = beta*y(iy)291                       iy = iy + incy292    40             CONTINUE293               END IF294           END IF295       END IF296       IF (alpha.EQ.zero) RETURN297       IF (lsame(uplo,'U')) THEN298 *299 *        Form  y  when upper triangle of A is stored.300 *301           kplus1 = k + 1302           IF ((incx.EQ.1) .AND. (incy.EQ.1)) THEN303               DO 60 j = 1,n304                   temp1 = alpha*x(j)305                   temp2 = zero306                   l = kplus1 - j307                   DO 50 i = max(1,j-k),j - 1308                       y(i) = y(i) + temp1*a(l+i,j)309                       temp2 = temp2 + conjg(a(l+i,j))*x(i)310    50             CONTINUE311                   y(j) = y(j) + temp1*REAL(A(KPLUS1,J)) + alpha*temp2312    60         CONTINUE313           ELSE314               jx = kx315               jy = ky316               DO 80 j = 1,n317                   temp1 = alpha*x(jx)318                   temp2 = zero319                   ix = kx320                   iy = ky321                   l = kplus1 - j322                   DO 70 i = max(1,j-k),j - 1323                       y(iy) = y(iy) + temp1*a(l+i,j)324                       temp2 = temp2 + conjg(a(l+i,j))*x(ix)325                       ix = ix + incx326                       iy = iy + incy327    70             CONTINUE328                   y(jy) = y(jy) + temp1*REAL(A(KPLUS1,J)) + alpha*temp2329                   jx = jx + incx330                   jy = jy + incy331                   IF (j.GT.k) THEN332                       kx = kx + incx333                       ky = ky + incy334                   END IF335    80         CONTINUE336           END IF337       ELSE338 *339 *        Form  y  when lower triangle of A is stored.340 *341           IF ((incx.EQ.1) .AND. (incy.EQ.1)) THEN342               DO 100 j = 1,n343                   temp1 = alpha*x(j)344                   temp2 = zero345                   y(j) = y(j) + temp1*REAL(a(1,j))346                   l = 1 - j347                   DO 90 i = j + 1,min(n,j+k)348                       y(i) = y(i) + temp1*a(l+i,j)349                       temp2 = temp2 + conjg(a(l+i,j))*x(i)350    90             CONTINUE351                   y(j) = y(j) + alpha*temp2352   100         CONTINUE353           ELSE354               jx = kx355               jy = ky356               DO 120 j = 1,n357                   temp1 = alpha*x(jx)358                   temp2 = zero359                   y(jy) = y(jy) + temp1*REAL(a(1,j))360                   l = 1 - j361                   ix = jx362                   iy = jy363                   DO 110 i = j + 1,min(n,j+k)364                       ix = ix + incx365                       iy = iy + incy366                       y(iy) = y(iy) + temp1*a(l+i,j)367                       temp2 = temp2 + conjg(a(l+i,j))*x(ix)368   110             CONTINUE369                   y(jy) = y(jy) + alpha*temp2370                   jx = jx + incx371                   jy = jy + incy372   120         CONTINUE373           END IF374       END IF375 *376       RETURN377 *378 *     End of CHBMV .379 *`

## Author

Generated automatically by Doxygen for LAPACK from the source code.

## Index

NAME
SYNOPSIS
Functions/Subroutines
Function/Subroutine Documentation
subroutine CHBMV (character UPLO, integer N, integer K, complex ALPHA, complex, dimension(lda,*) A, integer LDA, complex, dimension(*) X, integer INCX, complex BETA, complex, dimension(*) Y, integer INCY)
Author

This document was created byman2html,using the manual pages.  