|
 |
 |
 |
MAN page from openSUSE Leap 42 blas-man-3.5.0-9.1.noarch.rpm
chemv.fSection: LAPACK (3) Updated: Fri Nov 4 2016 Index NAMEchemv.f - SYNOPSIS Functions/Subroutines subroutine CHEMV (UPLO, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY) CHEMV
Function/Subroutine Documentation subroutine CHEMV (character UPLO, integer N, complex ALPHA, complex, dimension(lda,*) A, integer LDA, complex, dimension(*) X, integer INCX, complex BETA, complex, dimension(*) Y, integer INCY)CHEMV Purpose: CHEMV 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 matrix.
Parameters: - UPLO
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the array A is to be referenced as follows: UPLO = 'U' or 'u' Only the upper triangular part of A is to be referenced. UPLO = 'L' or 'l' Only the lower triangular part of A is to be referenced. N
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero. 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 n by n upper triangular part of the array A must contain the upper triangular part of the hermitian matrix and the strictly lower triangular part of A is not referenced. Before entry with UPLO = 'L' or 'l', the leading n by n lower triangular part of the array A must contain the lower triangular part of the hermitian matrix and the strictly upper triangular part of A is not referenced. 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 max( 1, n ). X
X is COMPLEX array of dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element 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 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the n element 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 156 of file chemv.f. 156 *157 * -- Reference BLAS level2 routine (version 3.4.0) --158 * -- Reference BLAS is a software package provided by Univ. of Tennessee, --159 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--160 * November 2011161 *162 * .. Scalar Arguments ..163 COMPLEX alpha,beta164 INTEGER incx,incy,lda,n165 CHARACTER uplo166 * ..167 * .. Array Arguments ..168 COMPLEX a(lda,*),x(*),y(*)169 * ..170 *171 * =====================================================================172 *173 * .. Parameters ..174 COMPLEX one175 parameter(one= (1.0e+0,0.0e+0))176 COMPLEX zero177 parameter(zero= (0.0e+0,0.0e+0))178 * ..179 * .. Local Scalars ..180 COMPLEX temp1,temp2181 INTEGER i,info,ix,iy,j,jx,jy,kx,ky182 * ..183 * .. External Functions ..184 LOGICAL lsame185 EXTERNAL lsame186 * ..187 * .. External Subroutines ..188 EXTERNAL xerbla189 * ..190 * .. Intrinsic Functions ..191 INTRINSIC conjg,max,real192 * ..193 *194 * Test the input parameters.195 *196 info = 0197 IF (.NOT.lsame(uplo,'U') .AND. .NOT.lsame(uplo,'L')) THEN198 info = 1199 ELSE IF (n.LT.0) THEN200 info = 2201 ELSE IF (lda.LT.max(1,n)) THEN202 info = 5203 ELSE IF (incx.EQ.0) THEN204 info = 7205 ELSE IF (incy.EQ.0) THEN206 info = 10207 END IF208 IF (info.NE.0) THEN209 CALL xerbla('CHEMV ',info)210 RETURN211 END IF212 *213 * Quick return if possible.214 *215 IF ((n.EQ.0) .OR. ((alpha.EQ.zero).AND. (beta.EQ.one))) RETURN216 *217 * Set up the start points in X and Y.218 *219 IF (incx.GT.0) THEN220 kx = 1221 ELSE222 kx = 1 - (n-1)*incx223 END IF224 IF (incy.GT.0) THEN225 ky = 1226 ELSE227 ky = 1 - (n-1)*incy228 END IF229 *230 * Start the operations. In this version the elements of A are231 * accessed sequentially with one pass through the triangular part232 * of A.233 *234 * First form y := beta*y.235 *236 IF (beta.NE.one) THEN237 IF (incy.EQ.1) THEN238 IF (beta.EQ.zero) THEN239 DO 10 i = 1,n240 y(i) = zero241 10 CONTINUE242 ELSE243 DO 20 i = 1,n244 y(i) = beta*y(i)245 20 CONTINUE246 END IF247 ELSE248 iy = ky249 IF (beta.EQ.zero) THEN250 DO 30 i = 1,n251 y(iy) = zero252 iy = iy + incy253 30 CONTINUE254 ELSE255 DO 40 i = 1,n256 y(iy) = beta*y(iy)257 iy = iy + incy258 40 CONTINUE259 END IF260 END IF261 END IF262 IF (alpha.EQ.zero) RETURN263 IF (lsame(uplo,'U')) THEN264 *265 * Form y when A is stored in upper triangle.266 *267 IF ((incx.EQ.1) .AND. (incy.EQ.1)) THEN268 DO 60 j = 1,n269 temp1 = alpha*x(j)270 temp2 = zero271 DO 50 i = 1,j - 1272 y(i) = y(i) + temp1*a(i,j)273 temp2 = temp2 + conjg(a(i,j))*x(i)274 50 CONTINUE275 y(j) = y(j) + temp1*REAL(A(J,J)) + alpha*temp2276 60 CONTINUE277 ELSE278 jx = kx279 jy = ky280 DO 80 j = 1,n281 temp1 = alpha*x(jx)282 temp2 = zero283 ix = kx284 iy = ky285 DO 70 i = 1,j - 1286 y(iy) = y(iy) + temp1*a(i,j)287 temp2 = temp2 + conjg(a(i,j))*x(ix)288 ix = ix + incx289 iy = iy + incy290 70 CONTINUE291 y(jy) = y(jy) + temp1*REAL(A(J,J)) + alpha*temp2292 jx = jx + incx293 jy = jy + incy294 80 CONTINUE295 END IF296 ELSE297 *298 * Form y when A is stored in lower triangle.299 *300 IF ((incx.EQ.1) .AND. (incy.EQ.1)) THEN301 DO 100 j = 1,n302 temp1 = alpha*x(j)303 temp2 = zero304 y(j) = y(j) + temp1*REAL(a(j,j))305 DO 90 i = j + 1,n306 y(i) = y(i) + temp1*a(i,j)307 temp2 = temp2 + conjg(a(i,j))*x(i)308 90 CONTINUE309 y(j) = y(j) + alpha*temp2310 100 CONTINUE311 ELSE312 jx = kx313 jy = ky314 DO 120 j = 1,n315 temp1 = alpha*x(jx)316 temp2 = zero317 y(jy) = y(jy) + temp1*REAL(a(j,j))318 ix = jx319 iy = jy320 DO 110 i = j + 1,n321 ix = ix + incx322 iy = iy + incy323 y(iy) = y(iy) + temp1*a(i,j)324 temp2 = temp2 + conjg(a(i,j))*x(ix)325 110 CONTINUE326 y(jy) = y(jy) + alpha*temp2327 jx = jx + incx328 jy = jy + incy329 120 CONTINUE330 END IF331 END IF332 *333 RETURN334 *335 * End of CHEMV .336 * AuthorGenerated automatically by Doxygen for LAPACK from the source code. Index- NAME
- SYNOPSIS
- Functions/Subroutines
- Function/Subroutine Documentation
- subroutine CHEMV (character UPLO, integer N, 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. |
|
|