          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

# cgemv.f

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

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

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.  