F_SSPR/F_DSPR/F_CSPR/F_ZSPR

Symmetric packed rank-1 update

Name

F_SSPR/F_DSPR/F_CSPR/F_ZSPR

 

Symmetric packed rank-1 update

Purpose

F_xSPR performs the symmetric rank-1 update

 

 

A ← αxxT + βA with A=AT

 

where A is an n-by-nreal symmetric matrix stored in packed form, α and β are

 

real or complex scalars, x is a real or complex n-vector, and xT is the transpose

 

of x. The routine returns immediately if n is less than or equal to zero.

 

This F_xSPR interface encompasses the legacy BLAS routine SSPR with added

 

functionality for complex symmetric matrices. Refer to

 

“SSPR/DSPR/CHPR/ZHPR” on page 254 for a description of the equivalent HP

 

MLIB legacy BLAS subprograms and an illustration of the packed storage of

 

symmetric or Hermitian matrices.

Matrix

Because either triangle of A can be obtained from the other, you only need to

Storage

provide one triangle of A, either the upper or the lower triangle. Compared to

 

storing the entire matrix, you save memory by supplying that triangle stored

 

column-by-column in packed form in a one-dimensional array (refer to the AP

 

matrix).

 

Usage

VECLIB

 

 

INTEGER*4

INCX, N, UPLO

 

REAL*4

ALPHA, BETA, AP( * ), X( * )

 

SUBROUTINE F_SSPR (UPLO, N, ALPHA, X, INCX, BETA, AP)

 

INTEGER*4

INCX, N, UPLO

 

REAL*8

ALPHA, BETA, AP( * ), X( * )

 

SUBROUTINE F_DSPR (UPLO, N, ALPHA, X, INCX, BETA, AP)

 

INTEGER*4

INCX, N, UPLO

 

COMPLEX*8

ALPHA, BETA, AP( * ), X( * )

 

SUBROUTINE F_CSPR (UPLO, N, ALPHA, X, INCX, BETA, AP)

 

INTEGER*4

INCX, N, UPLO

 

COMPLEX*16

ALPHA, BETA, AP( * ), X( * )

SUBROUTINE F_ZSPR (UPLO, N, ALPHA, X, INCX, BETA, AP)

VECLIB8

INTEGER*8

INCX, N, UPLO

REAL*4

ALPHA, BETA, AP( * ), X( * )

SUBROUTINE F_SSPR (UPLO, N, ALPHA, X, INCX, BETA, AP)

384HP MLIB User’s Guide