130 CHARACTER diag,
norm, uplo
134 REAL ap( * ), work( * )
141 parameter( one = 1.0e+0, zero = 0.0e+0 )
146 REAL scale, sum, value
167 IF(
lsame( diag,
'U' ) )
THEN
169 IF(
lsame( uplo,
'U' ) )
THEN
171 DO 10 i = k, k + j - 2
173 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
179 DO 30 i = k + 1, k + n - j
188 IF(
lsame( uplo,
'U' ) )
THEN
190 DO 50 i = k, k + j - 1
192 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
198 DO 70 i = k, k + n - j
200 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
212 udiag =
lsame( diag,
'U' )
213 IF(
lsame( uplo,
'U' ) )
THEN
217 DO 90 i = k, k + j - 2
218 sum = sum + abs( ap( i
222 DO 100 i = k, k + j - 1
223 sum = sum + abs( ap( i ) )
227 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
233 DO 120 i = k + 1, k + n - j
234 sum = sum + abs( ap( i ) )
238 DO 130 i = k, k + n - j
239 sum = sum + abs( ap( i ) )
243 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
251 IF( LSAME( UPLO, 'u
' ) ) THEN
252 IF( LSAME( DIAG, 'u
' ) ) THEN
258 WORK( I ) = WORK( I ) + ABS( AP( K ) )
269 WORK( I ) = WORK( I ) + ABS( AP( K ) )
275 IF( LSAME( DIAG, 'u
' ) ) THEN
282 WORK( I ) = WORK( I ) + ABS( AP( K ) )
292 WORK( I ) = WORK( I ) + ABS( AP( K ) )
301.LT..OR.
IF( VALUE SUM SISNAN( SUM ) ) VALUE = SUM
303 ELSE IF( ( LSAME( NORM, 'f.OR.
' ) ) ( LSAME( NORM, 'e' ) ) )
THEN
307 IF(
lsame( uplo,
'U' ) )
THEN
308 IF(
lsame( diag,
'U' ) )
THEN
313 CALL slassq( j-1, ap( k ), 1, scale, sum )
321 CALL slassq( j, ap( k ), 1, scale, sum )
326 IF(
lsame( diag,
'U' ) )
THEN
331 CALL slassq( n-j, ap( k ), 1, scale, sum )
339 CALL slassq( n-j+1, ap( k ), 1, scale, sum )
344 VALUE = scale*sqrt( sum )
subroutine slassq(n, x, incx, scl, sumsq)
SLASSQ updates a sum of squares represented in scaled form.
real function slantp(norm, uplo, diag, n, ap, work)
SLANTP returns the value of the 1-norm, or the Frobenius norm, or the infinity norm,...