113 REAL function
slansp( norm, uplo, n, ap, work )
125 REAL ap( * ), work( * )
132 parameter( one = 1.0e+0, zero = 0.0e+0 )
136 REAL absa, sum, value
139 REAL ssq( 2 ), colssq( 2 )
155 ELSE IF(
lsame( norm,
'M' ) )
THEN
160 IF(
lsame( uplo,
'U' ) )
THEN
163 DO 10 i = k, k + j - 1
165 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
172 DO 30 i = k, k + n - j
174 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
179 ELSE IF( (
lsame( norm,
'I' ) ) .OR. (
lsame( norm,
'O' ) ) .OR.
180 $ ( norm.EQ.
'1' ) )
THEN
186 IF(
lsame( uplo,
'U' ) )
THEN
190 absa = abs( ap( k ) )
192 work( i ) = work( i ) + absa
195 work( j ) = sum + abs( ap( k ) )
200 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
207 sum = work( j ) + abs( ap( k ) )
210 absa = abs( ap( k ) )
212 work( i ) = work( i ) + absa
215 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
218 ELSE IF( (
lsame( norm,
'F' ) ) .OR. (
lsame( norm,
'E' ) ) )
THEN
231 IF(
lsame( uplo,
'U' ) )
THEN
235 CALL slassq( j-1, ap( k ), 1, colssq( 1 ), colssq( 2 ) )
243 CALL slassq( n-j, ap( k ), 1, colssq( 1 ), colssq( 2 ) )
248 ssq( 2 ) = 2*ssq( 2 )
256 IF( ap( k ).NE.zero )
THEN
257 absa = abs( ap( k ) )
258 IF( colssq( 1 ).LT.absa )
THEN
259 colssq( 2 ) = one + colssq(2)*( colssq(1) / absa )**2
262 colssq( 2 ) = colssq( 2 ) + ( absa / colssq( 1 ) )**2
265 IF(
lsame( uplo,
'U' ) )
THEN
272 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 slansp(NORM, UPLO, N, AP, WORK)
SLANSP returns the value of the 1-norm, or the Frobenius norm, or the infinity norm,...