Symmetric rank-1 update

 

 

 

F_SSYR/F_DSYR/F_CSYR/F_ZSYR

 

INTEGER*8

INCX, LDA, N, UPLO

 

 

 

REAL*4

ALPHA, BETA

 

 

 

 

REAL*4

A( LDA, * ), X( * )

 

 

 

SUBROUTINE F_SSYR (UPLO, N, ALPHA, X, INCX, BETA, A, LDA)

 

INTEGER*8

INCX, LDA, N, UPLO

 

 

 

REAL*8

ALPHA, BETA

 

 

 

 

REAL*8

A( LDA, * ), X( * )

 

 

 

SUBROUTINE F_DSYR (UPLO, N, ALPHA, X, INCX, BETA, A, LDA)

 

INTEGER*8

INCX, LDA, N, UPLO

 

 

 

COMPLEX*8

ALPHA, BETA

 

 

 

 

COMPLEX*8

A( LDA, * ), X( * )

 

 

 

SUBROUTINE F_CSYR (UPLO, N, ALPHA, X, INCX, BETA, A, LDA)

 

INTEGER*8

INCX, LDA, N, UPLO

 

 

 

COMPLEX*16

ALPHA, BETA

 

 

 

 

COMPLEX*16

A( LDA, * ), X( * )

 

 

 

SUBROUTINE F_ZSYR (UPLO, N, ALPHA, X, INCX, 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

REAL or COMPLEX array, dimension

 

 

(1 + (N - 1) x incx).

 

 

 

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 xiis stored in

 

 

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

 

BETA

The scalar BETA.

 

 

 

A

REAL or COMPLEX array, dimension (LDA, N).

 

LDA

Leading dimension of array A. lda < 1 and lda < n are

 

 

illegal values.

 

 

 

 

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.

T

+ βA with

A=A

T

 

 

A ← αxx

 

 

Chapter 3 Basic Matrix Operations 393