SEARCH
NEW RPMS
DIRECTORIES
ABOUT
FAQ
VARIOUS
BLOG
DONATE


YUM REPOSITORY

 
 

MAN page from openSUSE Leap 15 blas-man-3.5.0-lp150.20.1.noarch.rpm

cgbmv.f

Section: LAPACK (3)
Updated: Thu Mar 29 2018
Index 

NAME

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.