subroutine zhpr ( uplo, n, alpha, x, incx, ap ) * .. scalar arguments .. double precision alpha integer incx, n character*1 uplo * .. array arguments .. complex*16 ap( * ), x( * ) * .. * * purpose * ======= * * zhpr performs the hermitian rank 1 operation * * a := alpha*x*conjg( x' ) + a, * * where alpha is a real scalar, x is an n element vector and a is an * n by n hermitian matrix, supplied in packed form. * * parameters * ========== * * uplo - character*1. * on entry, uplo specifies whether the upper or lower * triangular part of the matrix a is supplied in the packed * array ap as follows: * * uplo = 'u' or 'u' the upper triangular part of a is * supplied in ap. * * uplo = 'l' or 'l' the lower triangular part of a is * supplied in ap. * * unchanged on exit. * * n - integer. * on entry, n specifies the order of the matrix a. * n must be at least zero. * unchanged on exit. * * alpha - double precision. * on entry, alpha specifies the scalar alpha. * unchanged on exit. * * x - complex*16 array of dimension at least * ( 1 + ( n - 1 )*abs( incx ) ). * before entry, the incremented array x must contain the n * element vector x. * unchanged on exit. * * incx - integer. * on entry, incx specifies the increment for the elements of * x. incx must not be zero. * unchanged on exit. * * ap - complex*16 array of dimension at least * ( ( n*( n + 1 ) )/2 ). * before entry with uplo = 'u' or 'u', the array ap must * contain the upper triangular part of the hermitian matrix * packed sequentially, column by column, so that ap( 1 ) * contains a( 1, 1 ), ap( 2 ) and ap( 3 ) contain a( 1, 2 ) * and a( 2, 2 ) respectively, and so on. on exit, the array * ap is overwritten by the upper triangular part of the * updated matrix. * before entry with uplo = 'l' or 'l', the array ap must * contain the lower triangular part of the hermitian matrix * packed sequentially, column by column, so that ap( 1 ) * contains a( 1, 1 ), ap( 2 ) and ap( 3 ) contain a( 2, 1 ) * and a( 3, 1 ) respectively, and so on. on exit, the array * ap is overwritten by the lower triangular part of the * updated matrix. * note that the imaginary parts of the diagonal elements need * not be set, they are assumed to be zero, and on exit they * are set to zero. * * * level 2 blas routine. * * -- written on 22-october-1986. * jack dongarra, argonne national lab. * jeremy du croz, nag central office. * sven hammarling, nag central office. * richard hanson, sandia national labs. *