123 REAL function
slantp( norm, uplo, diag, n, ap, work )
131 CHARACTER diag, norm, uplo
135 REAL ap( * ), work( * )
142 parameter( one = 1.0e+0, zero = 0.0e+0 )
150 REAL ssq( 2 ), colssq( 2 )
166 ELSE IF(
lsame( norm,
'M' ) )
THEN
171 IF(
lsame( diag,
'U' ) )
THEN
173 IF(
lsame( uplo,
'U' ) )
THEN
175 DO 10 i = k, k + j - 2
177 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
183 DO 30 i = k + 1, k + n - j
185 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
192 IF(
lsame( uplo,
'U' ) )
THEN
194 DO 50 i = k, k + j - 1
196 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
202 DO 70 i = k, k + n - j
204 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
210 ELSE IF( (
lsame( norm,
'O' ) ) .OR. ( norm.EQ.
'1' ) )
THEN
216 udiag =
lsame( diag,
'U' )
217 IF(
lsame( uplo,
'U' ) )
THEN
221 DO 90 i = k, k + j - 2
222 sum = sum + abs( ap( i ) )
226 DO 100 i = k, k + j - 1
227 sum = sum + abs( ap( i ) )
231 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
237 DO 120 i = k + 1, k + n - j
238 sum = sum + abs( ap( i ) )
242 DO 130 i = k, k + n - j
243 sum = sum + abs( ap( i ) )
247 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
250 ELSE IF(
lsame( norm,
'I' ) )
THEN
255 IF(
lsame( uplo,
'U' ) )
THEN
256 IF(
lsame( diag,
'U' ) )
THEN
262 work( i ) = work( i ) + abs( ap( k ) )
273 work( i ) = work( i ) + abs( ap( k ) )
279 IF(
lsame( diag,
'U' ) )
THEN
286 work( i ) = work( i ) + abs( ap( k ) )
296 work( i ) = work( i ) + abs( ap( k ) )
305 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
307 ELSE IF( (
lsame( norm,
'F' ) ) .OR. (
lsame( norm,
'E' ) ) )
THEN
314 IF(
lsame( uplo,
'U' ) )
THEN
315 IF(
lsame( diag,
'U' ) )
THEN
322 CALL slassq( j-1, ap( k ), 1,
323 $ colssq( 1 ), colssq( 2 ) )
334 CALL slassq( j, ap( k ), 1,
335 $ colssq( 1 ), colssq( 2 ) )
341 IF(
lsame( diag,
'U' ) )
THEN
348 CALL slassq( n-j, ap( k ), 1,
349 $ colssq( 1 ), colssq( 2 ) )
360 CALL slassq( n-j+1, ap( k ), 1,
361 $ colssq( 1 ), colssq( 2 ) )
367 VALUE = ssq( 1 )*sqrt( ssq( 2 ) )
subroutine slassq(n, x, incx, scl, sumsq)
SLASSQ updates a sum of squares represented in scaled form.
subroutine scombssq(V1, V2)
SCOMBSSQ adds two scaled sum of squares quantities
logical function sisnan(SIN)
SISNAN tests input for NaN.
logical function lsame(CA, CB)
LSAME
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,...