116 REAL function
clanhp( norm, uplo, n, ap, work )
136 parameter( one = 1.0e+0, zero = 0.0e+0 )
140 REAL absa, sum, value
143 REAL ssq( 2 ), colssq( 2 )
153 INTRINSIC abs, real, 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.
sisnan( sum ) )
VALUE = sum
172 sum = abs( real( ap( k ) ) )
173 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
178 sum = abs( real( ap( k ) ) )
179 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
180 DO 30 i = k + 1, k + n - j
182 IF(
VALUE .LT. sum .OR.
sisnan( 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( real( ap( k ) ) )
208 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
215 sum = work( j ) + abs( real( ap( k ) ) )
218 absa = abs( ap( k ) )
220 work( i ) = work( i ) + absa
223 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
226 ELSE IF( (
lsame( norm,
'F' ) ) .OR. (
lsame( norm,
'E' ) ) )
THEN
239 IF(
lsame( uplo,
'U' ) )
THEN
243 CALL classq( j-1, ap( k ), 1, colssq( 1 ), colssq( 2 ) )
251 CALL classq( n-j, ap( k ), 1, colssq( 1 ), colssq( 2 ) )
256 ssq( 2 ) = 2*ssq( 2 )
264 IF( real( ap( k ) ).NE.zero )
THEN
265 absa = abs( real( 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 ) )
subroutine scombssq(V1, V2)
SCOMBSSQ adds two scaled sum of squares quantities
subroutine classq(n, x, incx, scl, sumsq)
CLASSQ updates a sum of squares represented in scaled form.
logical function sisnan(SIN)
SISNAN tests input for NaN.
logical function lsame(CA, CB)
LSAME
real function clanhp(NORM, UPLO, N, AP, WORK)
CLANHP returns the value of the 1-norm, or the Frobenius norm, or the infinity norm,...