SEARCH NEW RPMS DIRECTORIES ABOUT FAQ VARIOUS BLOG DONATE YUM REPOSITORY

MAN page from openSUSE Leap 42 blas-man-3.5.0-9.1.noarch.rpm

# cgbmv.f

Section: LAPACK (3)
Updated: Fri Nov 4 2016
Index

cgbmv.f -

## SYNOPSIS

### Functions/Subroutines

subroutine CGBMV (TRANS, M, N, KL, KU, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
CGBMV

## Function/Subroutine Documentation

### subroutine CGBMV (character TRANS, integer M, integer N, integer KL, integer KU, complex ALPHA, complex, dimension(lda,*) A, integer LDA, complex, dimension(*) X, integer INCX, complex BETA, complex, dimension(*) Y, integer INCY)

CGBMV

Purpose:

` CGBMV  performs one of the matrix-vector operations    y := alpha*A*x + beta*y,   or   y := alpha*A**T*x + beta*y,   or    y := alpha*A**H*x + beta*y, where alpha and beta are scalars, x and y are vectors and A is an m by n band matrix, with kl sub-diagonals and ku super-diagonals.`

Parameters:

TRANS

`          TRANS is CHARACTER*1           On entry, TRANS specifies the operation to be performed as           follows:              TRANS = 'N' or 'n'   y := alpha*A*x + beta*y.              TRANS = 'T' or 't'   y := alpha*A**T*x + beta*y.              TRANS = 'C' or 'c'   y := alpha*A**H*x + beta*y.`

M

`          M is INTEGER           On entry, M specifies the number of rows of the matrix A.           M must be at least zero.`

N

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

KL

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

KU

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

ALPHA

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

A

`          A is COMPLEX array of DIMENSION ( LDA, n ).           Before entry, the leading ( kl + ku + 1 ) by n part of the           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 super-diagonal           starting at position 2 in row ku, the first sub-diagonal           starting at position 1 in row ( ku + 2 ), and so on.           Elements in the array A that do not correspond to elements           in the band matrix (such as the top left ku by ku triangle)           are not referenced.           The following program segment will transfer 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`

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           ( kl + ku + 1 ).`

X

`          X is COMPLEX array of DIMENSION at least           ( 1 + ( n - 1 )*abs( INCX ) ) when TRANS = 'N' or 'n'           and at least           ( 1 + ( m - 1 )*abs( INCX ) ) otherwise.           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. When BETA is           supplied as zero then Y need not be set on input.`

Y

`          Y is COMPLEX array of DIMENSION at least           ( 1 + ( m - 1 )*abs( INCY ) ) when TRANS = 'N' or 'n'           and at least           ( 1 + ( n - 1 )*abs( INCY ) ) otherwise.           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

Univ. of Colorado Denver

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 cgbmv.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,kl,ku,lda,m,n198       CHARACTER trans199 *     ..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 temp214       INTEGER i,info,ix,iy,j,jx,jy,k,kup1,kx,ky,lenx,leny215       LOGICAL noconj216 *     ..217 *     .. External Functions ..218       LOGICAL lsame219       EXTERNAL lsame220 *     ..221 *     .. External Subroutines ..222       EXTERNAL xerbla223 *     ..224 *     .. Intrinsic Functions ..225       INTRINSIC conjg,max,min226 *     ..227 *228 *     Test the input parameters.229 *230       info = 0231       IF (.NOT.lsame(trans,'N') .AND. .NOT.lsame(trans,'T') .AND.232      +    .NOT.lsame(trans,'C')) THEN233           info = 1234       ELSE IF (m.LT.0) THEN235           info = 2236       ELSE IF (n.LT.0) THEN237           info = 3238       ELSE IF (kl.LT.0) THEN239           info = 4240       ELSE IF (ku.LT.0) THEN241           info = 5242       ELSE IF (lda.LT. (kl+ku+1)) THEN243           info = 8244       ELSE IF (incx.EQ.0) THEN245           info = 10246       ELSE IF (incy.EQ.0) THEN247           info = 13248       END IF249       IF (info.NE.0) THEN250           CALL xerbla('CGBMV ',info)251           RETURN252       END IF253 *254 *     Quick return if possible.255 *256       IF ((m.EQ.0) .OR. (n.EQ.0) .OR.257      +    ((alpha.EQ.zero).AND. (beta.EQ.one))) RETURN258 *259       noconj = lsame(trans,'T')260 *261 *     Set  LENX  and  LENY, the lengths of the vectors x and y, and set262 *     up the start points in  X  and  Y.263 *264       IF (lsame(trans,'N')) THEN265           lenx = n266           leny = m267       ELSE268           lenx = m269           leny = n270       END IF271       IF (incx.GT.0) THEN272           kx = 1273       ELSE274           kx = 1 - (lenx-1)*incx275       END IF276       IF (incy.GT.0) THEN277           ky = 1278       ELSE279           ky = 1 - (leny-1)*incy280       END IF281 *282 *     Start the operations. In this version the elements of A are283 *     accessed sequentially with one pass through the band part of A.284 *285 *     First form  y := beta*y.286 *287       IF (beta.NE.one) THEN288           IF (incy.EQ.1) THEN289               IF (beta.EQ.zero) THEN290                   DO 10 i = 1,leny291                       y(i) = zero292    10             CONTINUE293               ELSE294                   DO 20 i = 1,leny295                       y(i) = beta*y(i)296    20             CONTINUE297               END IF298           ELSE299               iy = ky300               IF (beta.EQ.zero) THEN301                   DO 30 i = 1,leny302                       y(iy) = zero303                       iy = iy + incy304    30             CONTINUE305               ELSE306                   DO 40 i = 1,leny307                       y(iy) = beta*y(iy)308                       iy = iy + incy309    40             CONTINUE310               END IF311           END IF312       END IF313       IF (alpha.EQ.zero) RETURN314       kup1 = ku + 1315       IF (lsame(trans,'N')) THEN316 *317 *        Form  y := alpha*A*x + y.318 *319           jx = kx320           IF (incy.EQ.1) THEN321               DO 60 j = 1,n322                   IF (x(jx).NE.zero) THEN323                       temp = alpha*x(jx)324                       k = kup1 - j325                       DO 50 i = max(1,j-ku),min(m,j+kl)326                           y(i) = y(i) + temp*a(k+i,j)327    50                 CONTINUE328                   END IF329                   jx = jx + incx330    60         CONTINUE331           ELSE332               DO 80 j = 1,n333                   IF (x(jx).NE.zero) THEN334                       temp = alpha*x(jx)335                       iy = ky336                       k = kup1 - j337                       DO 70 i = max(1,j-ku),min(m,j+kl)338                           y(iy) = y(iy) + temp*a(k+i,j)339                           iy = iy + incy340    70                 CONTINUE341                   END IF342                   jx = jx + incx343                   IF (j.GT.ku) ky = ky + incy344    80         CONTINUE345           END IF346       ELSE347 *348 *        Form  y := alpha*A**T*x + y  or  y := alpha*A**H*x + y.349 *350           jy = ky351           IF (incx.EQ.1) THEN352               DO 110 j = 1,n353                   temp = zero354                   k = kup1 - j355                   IF (noconj) THEN356                       DO 90 i = max(1,j-ku),min(m,j+kl)357                           temp = temp + a(k+i,j)*x(i)358    90                 CONTINUE359                   ELSE360                       DO 100 i = max(1,j-ku),min(m,j+kl)361                           temp = temp + conjg(a(k+i,j))*x(i)362   100                 CONTINUE363                   END IF364                   y(jy) = y(jy) + alpha*temp365                   jy = jy + incy366   110         CONTINUE367           ELSE368               DO 140 j = 1,n369                   temp = zero370                   ix = kx371                   k = kup1 - j372                   IF (noconj) THEN373                       DO 120 i = max(1,j-ku),min(m,j+kl)374                           temp = temp + a(k+i,j)*x(ix)375                           ix = ix + incx376   120                 CONTINUE377                   ELSE378                       DO 130 i = max(1,j-ku),min(m,j+kl)379                           temp = temp + conjg(a(k+i,j))*x(ix)380                           ix = ix + incx381   130                 CONTINUE382                   END IF383                   y(jy) = y(jy) + alpha*temp384                   jy = jy + incy385                   IF (j.GT.ku) kx = kx + incx386   140         CONTINUE387           END IF388       END IF389 *390       RETURN391 *392 *     End of CGBMV .393 *`

## Author

Generated automatically by Doxygen for LAPACK from the source code.

## Index

NAME
SYNOPSIS
Functions/Subroutines
Function/Subroutine Documentation
subroutine CGBMV (character TRANS, integer M, integer N, integer KL, integer KU, 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.