|
 |
 |
 |
MAN page from openSUSE Leap 42 blas-man-3.5.0-9.1.noarch.rpm
cgbmv.fSection: LAPACK (3) Updated: Fri Nov 4 2016 Index NAMEcgbmv.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 * AuthorGenerated 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. |
|
|