121 REAL function
slansy( norm, uplo, n, a, lda, work )
133 REAL a( lda, * ), work( * )
140 parameter( one = 1.0e+0, zero = 0.0e+0 )
144 REAL absa, sum, value
147 REAL ssq( 2 ), colssq( 2 )
163 ELSE IF(
lsame( norm,
'M' ) )
THEN
168 IF(
lsame( uplo,
'U' ) )
THEN
171 sum = abs( a( i, j ) )
172 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
178 sum = abs( a( i, j ) )
179 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
183 ELSE IF( (
lsame( norm,
'I' ) ) .OR. (
lsame( norm,
'O' ) ) .OR.
184 $ ( norm.EQ.
'1' ) )
THEN
189 IF(
lsame( uplo,
'U' ) )
THEN
193 absa = abs( a( i, j ) )
195 work( i ) = work( i ) + absa
197 work( j ) = sum + abs( a( j, j ) )
201 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
208 sum = work( j ) + abs( a( j, j ) )
210 absa = abs( a( i, j ) )
212 work( i ) = work( i ) + absa
214 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
217 ELSE IF( (
lsame( norm,
'F' ) ) .OR. (
lsame( norm,
'E' ) ) )
THEN
229 IF(
lsame( uplo,
'U' ) )
THEN
233 CALL slassq( j-1, a( 1, j ), 1, colssq(1), colssq(2) )
240 CALL slassq( n-j, a( j+1, j ), 1, colssq(1), colssq(2) )
244 ssq( 2 ) = 2*ssq( 2 )
250 CALL slassq( n, a, lda+1, colssq( 1 ), colssq( 2 ) )
252 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 slansy(NORM, UPLO, N, A, LDA, WORK)
SLANSY returns the value of the 1-norm, or the Frobenius norm, or the infinity norm,...