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

chemv.f

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

NAME

chemv.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 *
 

Author

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