?la_heamv

Computes a matrix-vector product using a Hermitian indefinite matrix to calculate error bounds.

Syntax

FORTRAN 77:

call cla_heamv(uplo, n, alpha, a, lda, x, incx, beta, y, incy)

call zla_heamv(uplo, n, alpha, a, lda, x, incx, beta, y, incy)

Include Files

  • Fortran: mkl.fi
  • C: mkl.h

Description

The ?la_heamv routines perform a matrix-vector operation defined as

y := alpha*abs(A)*abs(x) + beta*abs(y),

where:

alpha and beta are scalars,

x and y are vectors,

A is an n-by-n Hermitian matrix.

This function is primarily used in calculating error bounds. To protect against underflow during evaluation, the function perturbs components in the resulting vector away from zero by (n + 1) times the underflow threshold. To prevent unnecessarily large errors for block structure embedded in general matrices, the function does not perturb symbolically zero components. A zero entry is considered symbolic if all multiplications involved in computing that entry have at least one zero multiplicand.

Input Parameters

uplo

CHARACTER*1.

Specifies whether the upper or lower triangular part of the array A is to be referenced:

If uplo = 'BLAS_UPPER', only the upper triangular part of A is to be referenced,

If uplo = 'BLAS_LOWER', only the lower triangular part of A is to be referenced.

n

INTEGER. Specifies the number of rows and columns of the matrix A. The value of n must be at least zero.

alpha

REAL for cla_heamv

DOUBLE PRECISION for zla_heamv

Specifies the scalar alpha.

a

COMPLEX for cla_heamv

DOUBLE COMPLEX for zla_heamv

Array, DIMENSION (lda, *). Before entry, the leading m-by-n part of the array a must contain the matrix of coefficients. The second dimension of a must be at least max(1,n).

lda

INTEGER. Specifies the leading dimension of a as declared in the calling (sub)program. The value of lda must be at least max(1, n).

x

COMPLEX for cla_heamv

DOUBLE COMPLEX for zla_heamv

Array, DIMENSION at least (1+(n-1)*abs(incx)). Before entry, the incremented array x must contain the vector X.

incx

INTEGER. Specifies the increment for the elements of x.

The value of incx must be non-zero.

beta

REAL for cla_heamv

DOUBLE PRECISION for zla_heamv

Specifies the scalar beta. When beta is zero, you do not need to set y on input.

y

REAL for cla_heamv

DOUBLE PRECISION for zla_heamv

Array, DIMENSION at least (1 +(n - 1)*abs(incy)) otherwise. Before entry with non-zero beta, the incremented array y must contain the vector Y.

incy

INTEGER. Specifies the increment for the elements of y.

The value of incy must be non-zero.

Output Parameters

y

Updated vector Y.

For more complete information about compiler optimizations, see our Optimization Notice.