Purpose
To compute one of the symmetric rank 2k operations R := alpha*R + beta*H*E' + beta*E*H', or R := alpha*R + beta*H'*E + beta*E'*H, where alpha and beta are scalars, R, E, and H are N-by-N matrices, with H upper Hessenberg and E upper triangular.Specification
SUBROUTINE MB01OE( UPLO, TRANS, N, ALPHA, BETA, R, LDR, H, LDH, E, $ LDE ) C .. Scalar Arguments .. DOUBLE PRECISION ALPHA, BETA INTEGER LDE, LDH, LDR, N CHARACTER TRANS, UPLO C .. Array Arguments .. DOUBLE PRECISION E(LDE,*), H(LDH,*), R(LDR,*)Arguments
Mode Parameters
UPLO CHARACTER*1 Specifies which triangle of the symmetric matrix R is given as follows: = 'U': the upper triangular part is given; = 'L': the lower triangular part is given. TRANS CHARACTER*1 Specifies the form of H to be used in the matrix multiplication as follows: = 'N': R := alpha*R + beta*H*E' + beta*E*H'; = 'T': R := alpha*R + beta*H'*E + beta*E'*H; = 'C': R := alpha*R + beta*H'*E + beta*E'*H.Input/Output Parameters
N (input) INTEGER The order of the matrices R, E, and H. N >= 0. ALPHA (input) DOUBLE PRECISION The scalar alpha. When alpha is zero then R need not be set before entry. BETA (input) DOUBLE PRECISION The scalar beta. When beta is zero then E and H are not referenced. R (input/output) DOUBLE PRECISION array, dimension (LDR,N) On entry with UPLO = 'U', the leading N-by-N upper triangular part of this array must contain the upper triangular part of the symmetric matrix R. On entry with UPLO = 'L', the leading N-by-N lower triangular part of this array must contain the lower triangular part of the symmetric matrix R. In both cases, the other strictly triangular part is not referenced. On exit, the leading N-by-N upper triangular part (if UPLO = 'U'), or lower triangular part (if UPLO = 'L'), of this array contains the corresponding triangular part of the computed matrix R. LDR INTEGER The leading dimension of array R. LDR >= MAX(1,N). H (input) DOUBLE PRECISION array, dimension (LDH,N) On entry, the leading N-by-N upper Hessenberg part of this array must contain the upper Hessenberg matrix H. The remaining part of this array is not referenced. LDH INTEGER The leading dimension of array H. LDH >= MAX(1,N). E (input) DOUBLE PRECISION array, dimension (LDE,N) On entry, the leading N-by-N upper triangular part of this array must contain the upper triangular matrix E. The remaining part of this array is not referenced. LDE INTEGER The leading dimension of array E. LDE >= MAX(1,N).Method
E particularization of the algorithm used in the BLAS 3 routine DSYR2K is used.Numerical Aspects
The algorithm requires approximately N**3/3 operations.Further Comments
NoneExample
Program Text
NoneProgram Data
NoneProgram Results
None