syr2(3F)
dsyr2, ssyr2, zher2, cher2 - BLAS Level Two (Symmetric/Hermitian)Matrix Rank 2 Update
As shipped in IRIX 6.5. First release of IRIX 6.5.
NAME dsyr2, ssyr2, zher2, cher2 - BLAS Level Two (Symmetric/Hermitian)Matrix Rank 2 Update FORTRAN 77 SYNOPSIS subroutine dsyr2( uplo, n, alpha, x, incx, y, incy, a, lda ) character*1 uplo integer n, incx, incy, lda double precision alpha double precision a( lda,*), x(*), y(*) subroutine ssyr2( uplo, n, alpha, x, incx, y, incy, a, lda) character*1 uplo integer n, incx, incy, lda real alpha real a( lda,*), x(*), y(*) subroutine zher2( uplo, n, alpha, x, incx, y, incy, a, lda) character*1 uplo integer n, incx, incy, lda complex*16 alpha complex*16 a( lda,*), x(*), y(*) subroutine cher2( uplo, n, alpha, x, incx, y, incy, a, lda) character*1 uplo integer n, incx, incy, lda complex alpha complex a( lda,*), x(*), y(*) C SYNOPSIS void dsyr2( uplo, n, alpha, x, incx, y, incy, a, lda ) MatrixTriangle uplo; Integer n, incx, incy, lda; double alpha double (*a)[lda*n], (*x)[ n ], (*y)[ n ]; void ssyr2( uplo, n, alpha, x, incx, y, incy, a, lda ) MatrixTriangle uplo; Integer n, incx, incy, lda; float alpha float (*a)[lda*n], (*x)[ n ], (*y)[ n ]; void zher2( uplo, n, alpha, x, incx, y, incy, a, lda ) MatrixTriangle uplo; Integer n, incx, incy, lda; Zomplex alpha Zomplex (*a)[lda*n], (*x)[ n ], (*y)[ n ]; void cher2( uplo, n, alpha, x, incx, y, incy, a, lda ) MatrixTriangle uplo; Integer n, incx, incy, lda; Complex alpha Complex (*a)[lda*n], (*x)[ n ], (*y)[ n ]; DESCRIPTION dsyr2 and ssyr2 perform the symmetric rank 2 operation A := alpha*x*y' + alpha*y*x' + A, zher2 and cher2 perform the hermitian rank 2 operation A := alpha*x*conjg( y' ) + conjg( alpha )*y*conjg( x' ) + A, where alpha is a scalar, x and y are n element vectors and A is an n by n symmetric/hermitian matrix. PARAMETERS uplo On entry, uplo specifies whether the upper or lower triangular part of the array A is to be referenced a follows: FORTRAN 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. C uplo = UpperTriangle Only the lower triangular part of A is to be referenced. uplo = LowerTriangle Only the lower triangular part of A is to be referenced. Unchanged on exit. n On entry, n specifies the the order of the matrix A. n must be at least zero. Unchanged on exit. alpha specifies the scalar alpha. Unchanged on exit. x Array of size at least ( 1 + ( n - 1 )*abs( incx ) ). Before entry, the incremented array x must contain the n 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. On exit, Y is overwritten by the updated vector y. 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 with uplo = 'U' or 'u' or , the array elements corresponding to the leading n by n upper triangular part of the matrix A must contain the uppertriangular part of the symmetric/hermitian matrix and the corresponding strictly lower triangular part of A is not referenced. On exit, the array elements corresponding to the upper triangular part of the matrix A is overwritten by the upper triangular part of the updated matrix. Before entry with uplo = 'L' or 'l' or , the array elements corresponding to the leading n by n lower triangular part of the matrix A must contain the lower triangular part of the symmetric/hermitian matrix and the corresponding strictly upper triangular part of A is not referenced. On exit, the array elements corresponding to the lower triangular part of the matrix A is overwritten by the lower triangular part of the updated matrix. Note that the imaginary parts of the diagonal elements need not be set and are assumed to be zero. lda On entry, lda specifies the first dimension of A as declared in the calling (sub) program. lda must be at least ( k + 1 ). 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.