114      DOUBLE PRECISION FUNCTION zlanhp( NORM, UPLO, N, AP, WORK )
 
  125      DOUBLE PRECISION   work( * )
 
  132      DOUBLE PRECISION   one, zero
 
  133      parameter( one = 1.0d+0, zero = 0.0d+0 )
 
  137      DOUBLE PRECISION   absa, scale, sum, value
 
  147      INTRINSIC          abs, dble, sqrt
 
  153      ELSE IF( 
lsame( norm, 
'M' ) ) 
THEN 
  158         IF( 
lsame( uplo, 
'U' ) ) 
THEN 
  161               DO 10 i = k + 1, k + j - 1
 
  163                  IF( 
VALUE .LT. sum .OR. 
disnan( sum ) ) 
VALUE = sum
 
  166               sum = abs( dble( ap( k ) ) )
 
  167               IF( 
VALUE .LT. sum .OR. 
disnan( sum ) ) 
VALUE = sum
 
  172               sum = abs( dble( ap( k ) ) )
 
  173               IF( 
VALUE .LT. sum .OR. 
disnan( sum ) ) 
VALUE = sum
 
  174               DO 30 i = k + 1, k + n - j
 
  176                  IF( 
VALUE .LT. sum .OR. 
disnan( sum ) ) 
VALUE = sum
 
  181      ELSE IF( ( 
lsame( norm, 
'I' ) ) .OR.
 
  182     $         ( 
lsame( norm, 
'O' ) ) .OR.
 
  183     $         ( norm.EQ.
'1' ) ) 
THEN 
  189         IF( 
lsame( uplo, 
'U' ) ) 
THEN 
  193                  absa = abs( ap( k ) )
 
  195                  work( i ) = work( i ) + absa
 
  198               work( j ) = sum + abs( dble( ap( k ) ) )
 
  203               IF( 
VALUE .LT. sum .OR. 
disnan( sum ) ) 
VALUE = sum
 
  210               sum = work( j ) + abs( dble( ap( k ) ) )
 
  213                  absa = abs( ap( k ) )
 
  215                  work( i ) = work( i ) + absa
 
  218               IF( 
VALUE .LT. sum .OR. 
disnan( sum ) ) 
VALUE = sum
 
  221      ELSE IF( ( 
lsame( norm, 
'F' ) ) .OR.
 
  222     $         ( 
lsame( norm, 
'E' ) ) ) 
THEN 
  229         IF( 
lsame( uplo, 
'U' ) ) 
THEN 
  231               CALL zlassq( j-1, ap( k ), 1, scale, sum )
 
  236               CALL zlassq( n-j, ap( k ), 1, scale, sum )
 
  243            IF( dble( ap( k ) ).NE.zero ) 
THEN 
  244               absa = abs( dble( ap( k ) ) )
 
  245               IF( scale.LT.absa ) 
THEN 
  246                  sum = one + sum*( scale / absa )**2
 
  249                  sum = sum + ( absa / scale )**2
 
  252            IF( 
lsame( uplo, 
'U' ) ) 
THEN 
  258         VALUE = scale*sqrt( sum )
 
 
double precision function zlanhp(norm, uplo, n, ap, work)
ZLANHP returns the value of the 1-norm, or the Frobenius norm, or the infinity norm,...
subroutine zlassq(n, x, incx, scale, sumsq)
ZLASSQ updates a sum of squares represented in scaled form.