ESMF_DSYMV Subroutine

subroutine ESMF_DSYMV(UPLO, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)

\brief \b ESMF_DSYMV \par Purpose:

\verbatim

ESMF_DSYMV performs the matrix-vector operation

y := alphaAx + beta*y,

where alpha and beta are scalars, x and y are n element vectors and A is an n by n symmetric matrix. \endverbatim \param[in] UPLO \verbatim 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.

\endverbatim

\param[in] N \verbatim N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero. \endverbatim

\param[in] ALPHA \verbatim ALPHA is DOUBLE PRECISION. On entry, ALPHA specifies the scalar alpha. \endverbatim

\param[in] A \verbatim A is DOUBLE PRECISION array, 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 symmetric 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 symmetric matrix and the strictly upper triangular part of A is not referenced. \endverbatim

\param[in] LDA \verbatim 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 ). \endverbatim

\param[in] X \verbatim X is DOUBLE PRECISION array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x. \endverbatim

\param[in] INCX \verbatim INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero. \endverbatim

\param[in] BETA \verbatim BETA is DOUBLE PRECISION. On entry, BETA specifies the scalar beta. When BETA is supplied as zero then Y need not be set on input. \endverbatim

\param[in,out] Y \verbatim Y is DOUBLE PRECISION array, 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. \endverbatim

\param[in] INCY \verbatim INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero. \endverbatim \author Univ. of Tennessee \author Univ. of California Berkeley \author Univ. of Colorado Denver \author NAG Ltd. \date December 2016 \ingroup double_blas_level2 \par Further Details:

\verbatim

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. \endverbatim

Arguments

Type IntentOptional Attributes Name
character(len=1) :: UPLO
integer :: N
double precision :: ALPHA
double precision :: A(LDA,*)
integer :: LDA
double precision :: X(*)
integer :: INCX
double precision :: BETA
double precision :: Y(*)
integer :: INCY