SEARCH
NEW RPMS
DIRECTORIES
ABOUT
FAQ
VARIOUS
BLOG
DONATE


YUM REPOSITORY

 
 

MAN page from OpenSuSE blas-man-3.4.2-3.6.16.noarch.rpm

cgemv.f

Section: LAPACK (3)
Updated: Thu Jun 23 2016
Index 

NAME

cgemv.f -  

SYNOPSIS


 

Functions/Subroutines


subroutine CGEMV (TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
CGEMV  

Function/Subroutine Documentation

 

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

CGEMV

Purpose:

 CGEMV 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 matrix.


 

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.


ALPHA

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


A

          A is COMPLEX array of DIMENSION ( LDA, n ).           Before entry, the leading m by n part of the array A must           contain the matrix of coefficients.


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, m ).


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 with BETA non-zero, 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 160 of file cgemv.f.

160 *161 *  -- Reference BLAS level2 routine (version 3.4.0) --162 *  -- Reference BLAS is a software package provided by Univ. of Tennessee,    --163 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--164 *     November 2011165 *166 *     .. Scalar Arguments ..167       COMPLEX alpha,beta168       INTEGER incx,incy,lda,m,n169       CHARACTER trans170 *     ..171 *     .. Array Arguments ..172       COMPLEX a(lda,*),x(*),y(*)173 *     ..174 *175 *  =====================================================================176 *177 *     .. Parameters ..178       COMPLEX one179       parameter(one= (1.0e+0,0.0e+0))180       COMPLEX zero181       parameter(zero= (0.0e+0,0.0e+0))182 *     ..183 *     .. Local Scalars ..184       COMPLEX temp185       INTEGER i,info,ix,iy,j,jx,jy,kx,ky,lenx,leny186       LOGICAL noconj187 *     ..188 *     .. External Functions ..189       LOGICAL lsame190       EXTERNAL lsame191 *     ..192 *     .. External Subroutines ..193       EXTERNAL xerbla194 *     ..195 *     .. Intrinsic Functions ..196       INTRINSIC conjg,max197 *     ..198 *199 *     Test the input parameters.200 *201       info = 0202       IF (.NOT.lsame(trans,'N') .AND. .NOT.lsame(trans,'T') .AND.203      +    .NOT.lsame(trans,'C')) THEN204           info = 1205       ELSE IF (m.LT.0) THEN206           info = 2207       ELSE IF (n.LT.0) THEN208           info = 3209       ELSE IF (lda.LT.max(1,m)) THEN210           info = 6211       ELSE IF (incx.EQ.0) THEN212           info = 8213       ELSE IF (incy.EQ.0) THEN214           info = 11215       END IF216       IF (info.NE.0) THEN217           CALL xerbla('CGEMV ',info)218           RETURN219       END IF220 *221 *     Quick return if possible.222 *223       IF ((m.EQ.0) .OR. (n.EQ.0) .OR.224      +    ((alpha.EQ.zero).AND. (beta.EQ.one))) RETURN225 *226       noconj = lsame(trans,'T')227 *228 *     Set  LENX  and  LENY, the lengths of the vectors x and y, and set229 *     up the start points in  X  and  Y.230 *231       IF (lsame(trans,'N')) THEN232           lenx = n233           leny = m234       ELSE235           lenx = m236           leny = n237       END IF238       IF (incx.GT.0) THEN239           kx = 1240       ELSE241           kx = 1 - (lenx-1)*incx242       END IF243       IF (incy.GT.0) THEN244           ky = 1245       ELSE246           ky = 1 - (leny-1)*incy247       END IF248 *249 *     Start the operations. In this version the elements of A are250 *     accessed sequentially with one pass through A.251 *252 *     First form  y := beta*y.253 *254       IF (beta.NE.one) THEN255           IF (incy.EQ.1) THEN256               IF (beta.EQ.zero) THEN257                   DO 10 i = 1,leny258                       y(i) = zero259    10             CONTINUE260               ELSE261                   DO 20 i = 1,leny262                       y(i) = beta*y(i)263    20             CONTINUE264               END IF265           ELSE266               iy = ky267               IF (beta.EQ.zero) THEN268                   DO 30 i = 1,leny269                       y(iy) = zero270                       iy = iy + incy271    30             CONTINUE272               ELSE273                   DO 40 i = 1,leny274                       y(iy) = beta*y(iy)275                       iy = iy + incy276    40             CONTINUE277               END IF278           END IF279       END IF280       IF (alpha.EQ.zero) RETURN281       IF (lsame(trans,'N')) THEN282 *283 *        Form  y := alpha*A*x + y.284 *285           jx = kx286           IF (incy.EQ.1) THEN287               DO 60 j = 1,n288                   IF (x(jx).NE.zero) THEN289                       temp = alpha*x(jx)290                       DO 50 i = 1,m291                           y(i) = y(i) + temp*a(i,j)292    50                 CONTINUE293                   END IF294                   jx = jx + incx295    60         CONTINUE296           ELSE297               DO 80 j = 1,n298                   IF (x(jx).NE.zero) THEN299                       temp = alpha*x(jx)300                       iy = ky301                       DO 70 i = 1,m302                           y(iy) = y(iy) + temp*a(i,j)303                           iy = iy + incy304    70                 CONTINUE305                   END IF306                   jx = jx + incx307    80         CONTINUE308           END IF309       ELSE310 *311 *        Form  y := alpha*A**T*x + y  or  y := alpha*A**H*x + y.312 *313           jy = ky314           IF (incx.EQ.1) THEN315               DO 110 j = 1,n316                   temp = zero317                   IF (noconj) THEN318                       DO 90 i = 1,m319                           temp = temp + a(i,j)*x(i)320    90                 CONTINUE321                   ELSE322                       DO 100 i = 1,m323                           temp = temp + conjg(a(i,j))*x(i)324   100                 CONTINUE325                   END IF326                   y(jy) = y(jy) + alpha*temp327                   jy = jy + incy328   110         CONTINUE329           ELSE330               DO 140 j = 1,n331                   temp = zero332                   ix = kx333                   IF (noconj) THEN334                       DO 120 i = 1,m335                           temp = temp + a(i,j)*x(ix)336                           ix = ix + incx337   120                 CONTINUE338                   ELSE339                       DO 130 i = 1,m340                           temp = temp + conjg(a(i,j))*x(ix)341                           ix = ix + incx342   130                 CONTINUE343                   END IF344                   y(jy) = y(jy) + alpha*temp345                   jy = jy + incy346   140         CONTINUE347           END IF348       END IF349 *350       RETURN351 *352 *     End of CGEMV .353 *
 

Author

Generated automatically by Doxygen for LAPACK from the source code.


 

Index

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