# ?syr

Performs the symmetric rank-1 update of a complex symmetric matrix.

## Syntax

call csyr( uplo, n, alpha, x, incx, a, lda )

call zsyr( uplo, n, alpha, x, incx, a, lda )

## Description

These routines perform the symmetric rank 1 operation defined as

`a := alpha*x*x' + a`,

where:

alpha is a complex scalar

x is an n-element complex vector

a is an n-by-n complex symmetric matrix.

These routines have their real equivalents in BLAS (see ?syr in Chapter “BLAS and Sparse BLAS Routines”).

## Input Parameters

uplo

  CHARACTER*1. Specifies whether the upper or lower triangular part of the array a is used:

  If `uplo = 'U'` or 'u', then the upper triangular part of the array a is used.

  If `uplo = 'L'` or 'l', then the lower triangular part of the array a is used.

n

  INTEGER. Specifies the order of the matrix a. The value of n must be at least zero.

alpha

  COMPLEX for csyr

  COMPLEX*16 for zsyr

  Specifies the scalar alpha.

x

  COMPLEX for csyr

  COMPLEX*16 for zsyr

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

incx

  INTEGER. Specifies the increment for the elements of x. The value of incx must not be zero.

a

  COMPLEX for csyr

  COMPLEX*16 for zsyr

  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.

lda

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

## Output Parameters

a

  With `uplo = 'U'` or 'u', the upper triangular part of the array a is overwritten by the upper triangular part of the updated matrix.

  With `uplo = 'L'` or 'l', the lower triangular part of the array a is overwritten by the lower triangular part of the updated matrix.

Parent topic: Auxiliary Routines