ger(3F)
dger, sger, zgeru, cgeru, zgerc, cgerc - BLAS Level Two Rank 1 Operation
As shipped in IRIX 6.5. First release of IRIX 6.5.
NAME dger, sger, zgeru, cgeru, zgerc, cgerc - BLAS Level Two Rank 1 Operation FORTRAN 77 SYNOPSIS subroutine dger( m, n, alpha, x, incx, y, incy, a, lda ) integer m, n, lda, incx, incy double precision alpha double precision a( lda,*), x(*), y(*) subroutine sger( m, n, alpha, x, incx, y, incy, a, lda ) integer m, n, lda, incx, incy real alpha real a( lda,*), x(*), y(*) subroutine zgeru( m, n, alpha, x, incx, y, incy, a, lda ) integer m, n, lda, incx, incy complex*16 alpha complex*16 a( lda,*), x(*), y(*) subroutine cgeru( m, n, alpha, x, incx, y, incy, a, lda ) integer m, n, lda, incx, incy complex alpha complex a( lda,*), x(*), y(*) subroutine zgerc( m, n, alpha, x, incx, y, incy, a, lda ) integer m, n, lda, incx, incy complex*16 alpha complex*16 a( lda,*), x(*), y(*) subroutine cgerc( m, n, alpha, x, incx, y, incy, a, lda ) integer m, n, lda, incx, incy complex alpha complex a( lda,*), x(*), y(*) C SYNOPSIS void dger( m, n, alpha, x, incx, y, incy, a, lda ) Integer m, n, lda, incx, incy; double alpha; double (*a)[lda*n], (*x)[ n ], (*y)[ n ]; void sger( m, n, alpha, x, incx, y, incy, a, lda ) Integer m, n, lda, incx, incy; float alpha; float (*a)[lda*n], (*x)[ n ], (*y)[ n ]; void zgeru( m, n, alpha, x, incx, y, incy, a, lda ) Integer m, n, lda, incx, incy; Zomplex alpha; Zomplex (*a)[lda*n], (*x)[ n ], (*y)[ n ]; void cgeru( m, n, alpha, x, incx, y, incy, a, lda ) Integer m, n, lda, incx, incy; Complex alpha; Complex (*a)[lda*n], (*x)[ n ], (*y)[ n ]; void zherc( m, n, alpha, x, incx, y, incy, a, lda ) Integer m, n, lda, incx, incy; Zomplex alpha; Zomplex (*a)[lda*n], (*x)[ n ], (*y)[ n ]; void cgerc( m, n, alpha, x, incx, y, incy, a, lda ) Integer m, n, lda, incx, incy; Complex alpha; Complex (*a)[lda*n], (*x)[ n ], (*y)[ n ]; DESCRIPTION dger , sger , zheru and cgeru perform the rank 1 operation A := alpha*x*y' + A, zgerc and cgerc perform the rank 1 operation A := alpha*x*conjg( y' ) + A, where alpha is a scalar, x is an m element vector, y is an n element vector and A is an m by n matrix. PARAMETERS m On entry, m specifies the number of rows of the matrix A. m must be at least zero. Unchanged on exit. n On entry, n specifies the number of columns of the matrix A. n must be at least zero. Unchanged on exit. alpha On entry, alpha specifies the scalar alpha. Unchanged on exit. x Array of size at least ( 1 + ( m - 1 )*abs( incx ) ). Before entry, the incremented array x must contain the m element vector x. Unchanged on exit. incx On entry, incx specifies the increment for the elements of x. incx must not be zero. Unchanged on exit. y Array of size at least ( 1 + ( n - 1 )*abs( incy ) ). Before entry, the incremented array y must contain the n element vector y. Unchanged on exit. incy On entry, incy specifies the increment for the elements of y. incy must not be zero. Unchanged on exit. a An array containing the matrix A. FORTRAN Array of dimension ( lda, n ). C A pointer to an array of size lda*n. See note below about array storage convention for C. Before entry, the leading m by n part of the array A must contain the matrix of coefficients. On exit, A is overwritten by the updated matrix. lda On entry, lda specifies the first dimension of a as declared in the calling (sub) program. lda must be at least max( 1, m ). Unchanged on exit. C ARRAY STORAGE CONVENTION The matrices are assumed to be stored in a one dimensional C array in an analogous fashion as a Fortran array (column major). Therefore, the element A(i+1,j) of matrix A is stored immediately after the element A(i,j), while A(i,j+1) is lda elements apart from A(i,j). The element A(i,j) of the matrix can be accessed directly by reference to a[ (j-1)*lda + (i-1) ]. AUTHORS Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd. TUNING Optimized and parallelized for SGI R3000, R4x00 and R8000 platforms.