139 DOUBLE PRECISION FUNCTION dlantr( NORM, UPLO, DIAG, M, N, A, LDA,
147 CHARACTER diag,
norm, uplo
151 DOUBLE PRECISION a( , * ), ( * )
157 DOUBLE PRECISION one, zero
158 parameter( one = 1.0d+0, zero = 0.0d+0 )
163 DOUBLE PRECISION scale, sum, value
173 INTRINSIC abs,
min, sqrt
177 IF(
min( m, n ).EQ.0 )
THEN
183 IF(
lsame( diag,
'U' ) )
THEN
185 IF(
lsame( uplo,
'U' ) )
THEN
187 DO 10 i = 1,
min( m, j-1 )
188 sum = abs( a( i, j ) )
189 IF(
VALUE .LT. sum .OR.
disnan( sum ) )
VALUE = sum
195 sum = abs( a( i, j ) )
196 IF(
VALUE .LT. sum .OR.
disnan( sum ) )
VALUE = sum
202 IF(
lsame( uplo,
'U' ) )
THEN
204 DO 50 i = 1,
min( m, j )
205 sum = abs( a( i, j ) )
206 IF(
VALUE .LT. sum .OR.
disnan( sum ) )
VALUE = sum
212 sum = abs( a( i, j ) )
213 IF(
VALUE .LT. sum .OR.
disnan( sum ) )
VALUE = sum
223 udiag =
lsame( diag, 'u
' )
224 IF( LSAME( UPLO, 'u
' ) ) THEN
226.AND..LE.
IF( ( UDIAG ) ( JM ) ) THEN
229 SUM = SUM + ABS( A( I, J ) )
233 DO 100 I = 1, MIN( M, J )
234 SUM = SUM + ABS( A( I, J ) )
237.LT..OR.
IF( VALUE SUM DISNAN( SUM ) ) VALUE = SUM
244 SUM = SUM + ABS( A( I, J ) )
249 SUM = SUM + ABS( A( I, J ) )
252.LT..OR.
IF( VALUE SUM DISNAN( SUM ) ) VALUE = SUM
255 ELSE IF( LSAME( NORM, 'i
' ) ) THEN
259 IF( LSAME( UPLO, 'u
' ) ) THEN
260 IF( LSAME( DIAG, 'u
' ) ) THEN
265 DO 160 I = 1, MIN( M, J-1 )
266 WORK( I ) = WORK( I ) + ABS( A( I, J ) )
274 DO 190 I = 1, MIN( M, J )
275 WORK( I ) = WORK( I ) + ABS( A( I, J ) )
280 IF( LSAME( DIAG, 'u
' ) ) THEN
281 DO 210 I = 1, MIN( M, N )
289 WORK( I ) = WORK( I ) + ABS( A( I, J ) )
298 WORK( I ) = WORK( I ) + ABS( A( I, J ) )
306.LT..OR.
IF( VALUE SUM DISNAN( SUM ) ) VALUE = SUM
308 ELSE IF( ( LSAME( NORM, 'f.OR.
' ) ) ( LSAME( NORM, 'e
' ) ) ) THEN
312 IF( LSAME( UPLO, 'u
' ) ) THEN
313 IF( LSAME( DIAG, 'u
' ) ) THEN
317 CALL DLASSQ( MIN( M, J-1 ), A( 1, J ), 1, SCALE, SUM )
323 CALL DLASSQ( MIN( M, J ), A( 1, J ), 1, SCALE, SUM )
327 IF( LSAME( DIAG, 'u
' ) ) THEN
331 CALL DLASSQ( M-J, A( MIN( M, J+1 ), J ), 1, SCALE,
338 CALL DLASSQ( M-J+1, A( J, J ), 1, SCALE, SUM )
342 VALUE = SCALE*SQRT( SUM )
norm(diag(diag(diag(inv(mat))) -id.SOL), 2) % destroy mumps instance id.JOB
subroutine dlassq(n, x, incx, scl, sumsq)
DLASSQ updates a sum of squares represented in scaled form.
logical function disnan(din)
DISNAN tests input for NaN.
logical function lsame(ca, cb)
LSAME
double precision function dlantr(norm, uplo, diag, m, n, a, lda, work)
DLANTR returns the value of the 1-norm, or the Frobenius norm, or the infinity norm,...