Hermitian rank-2 update

 

 

 

 

 

 

 

 

 

F_CHER2/F_ZHER2

 

INTEGER*8

INCX, INCY, LDA, N, UPLO

 

 

 

REAL*8

BETA

 

 

 

 

 

 

 

 

 

COMPLEX*16

ALPHA, A( LDA, * ), X( * ), Y( * )

 

 

 

SUBROUTINE F_ZHER2 (UPLO, N, ALPHA, X, INCX, Y, INCY, BETA, A,

 

LDA)

 

 

 

 

 

 

 

 

 

Input

UPLO

Specifies whether a triangular matrix is upper or lower

 

 

triangular. Use either BLAS_UPPER or BLAS_LOWER.

 

N

Number of elements of vector x.

 

 

 

ALPHA

The scalar ALPHA.

 

 

 

 

 

X

COMPLEX array, minimum length

 

 

 

(N - 1) x incx + 1.

 

 

 

 

 

INCX

Increment for the array x. A vector x having component

 

 

xi, i = 1,..., n, is stored in an array X() with increment

 

 

argument incx. If incx > 0 then xi is stored in

 

 

X (1 + (i - 1) x incx). If incx < 0 then xi is stored in

 

 

X (1 + (N - i) x incx). incx = 0 is an illegal value.

 

Y

COMPLEX array, minimum length

 

 

 

(N - 1) x incy + 1.

 

 

 

 

 

INCY

Increment for the array y. A vector y having component

 

 

yi, i = 1,..., n, is stored in an array Y() with increment

 

 

argument incy. If incy > 0 then yi is stored in

 

 

Y(1 + (i - 1) x incy). If incy < 0 then yi is stored in

 

 

Y(1 + (N - i) x incy). incy = 0 is an illegal value.

 

BETA

The scalar BETA.

 

 

 

 

 

A

COMPLEX array, dimension (LDA, N).

 

LDA

Leading dimension of array A. If lda < 1 or lda < n, an

 

 

error condition is generated.

 

 

Output

A

The upper or lower triangle of the updated A matrix, as

 

 

specified by uplo, replaces the upper or lower triangle

 

 

of the input, respectively. The other triangle of A is

 

 

unchanged.

 

 

 

+ βA with

 

 

 

A ← αx y

 

+ a yx

 

A=A

 

Chapter 3 Basic Matrix Operations 347