116 DOUBLE PRECISION FUNCTION zlanhp( NORM, UPLO, N, AP, WORK )
128 DOUBLE PRECISION work( * )
135 DOUBLE PRECISION one, zero
136 parameter( one = 1.0d+0, zero = 0.0d+0 )
140 DOUBLE PRECISION absa, sum, value
143 DOUBLE PRECISION ssq( 2 ), colssq( 2 )
153 INTRINSIC abs, dble, sqrt
159 ELSE IF(
lsame( norm,
'M' ) )
THEN
164 IF(
lsame( uplo,
'U' ) )
THEN
167 DO 10 i = k + 1, k + j - 1
169 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
178 sum = abs( dble( ap( k ) ) )
179 IF(
VALUE .LT. sum .OR.
disnan( sum ) )
VALUE = sum
180 DO 30 i = k + 1, k + n - j
182 IF(
VALUE .LT. sum .OR.
disnan( sum ) )
VALUE = sum
187 ELSE IF( (
lsame( norm,
'I' ) ) .OR. (
lsame( norm,
'O' ) ) .OR.
188 $ ( norm.EQ.
'1' ) )
THEN
194 IF(
lsame( uplo,
'U' ) )
THEN
198 absa = abs( ap( k ) )
200 work( i ) = work( i ) + absa
203 work( j ) = sum + abs( dble( ap( k ) ) )
208 IF(
VALUE .LT. sum .OR.
disnan( sum ) )
VALUE = sum
215 sum = work( j ) + abs( dble( ap( k ) ) )
218 absa = abs( ap( k ) )
220 work( i ) = work( i ) + absa
223 IF(
VALUE .LT. sum .OR.
disnan( sum ) )
VALUE = sum
226 ELSE IF( (
lsame( norm,
'F' ) ) .OR. (
lsame( norm,
'E' ) ) )
THEN
239 IF(
lsame( uplo,
'U' ) )
THEN
243 CALL zlassq( j-1, ap( k ), 1, colssq( 1 ), colssq( 2 ) )
251 CALL zlassq( n-j, ap( k ), 1, colssq( 1 ), colssq( 2 ) )
256 ssq( 2 ) = 2*ssq( 2 )
264 IF( dble( ap( k ) ).NE.zero )
THEN
265 absa = abs( dble( ap( k ) ) )
266 IF( colssq( 1 ).LT.absa )
THEN
267 colssq( 2 ) = one + colssq(2)*( colssq(1) / absa )**2
270 colssq( 2 ) = colssq( 2 ) + ( absa / colssq( 1 ) )**2
273 IF(
lsame( uplo,
'U' ) )
THEN
280 VALUE = ssq( 1 )*sqrt( ssq( 2 ) )
logical function disnan(DIN)
DISNAN tests input for NaN.
subroutine dcombssq(V1, V2)
DCOMBSSQ adds two scaled sum of squares quantities.
logical function lsame(CA, CB)
LSAME
subroutine zlassq(N, X, INCX, SCALE, SUMSQ)
ZLASSQ updates a sum of squares represented in scaled form.
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,...