140 DOUBLE PRECISION FUNCTION zlantr( NORM, UPLO, DIAG, M, N, A, LDA,
148 CHARACTER diag,
norm, uplo
152 DOUBLE PRECISION work( * )
153 COMPLEX*16 a( lda, * )
159 DOUBLE PRECISION one, zero
160 parameter( one = 1.0d+0, zero = 0.0d+0 )
165 DOUBLE PRECISION , sum,
175 INTRINSIC abs,
min, sqrt
179 IF(
min( m, n ).EQ.0 )
THEN
185 IF(
lsame( diag,
'U' ) )
THEN
187 IF(
lsame( uplo,
'U' ) )
THEN
189 DO 10 i = 1,
min( m, j-1 )
190 sum = abs( a( i, j ) )
191 IF(
VALUE .LT. sum .OR.
disnan( sum ) )
VALUE = sum
197 sum = abs( a( i, j ) )
198 IF(
VALUE .LT. sum .OR.
disnan( sum ) )
VALUE = sum
204 IF(
lsame( uplo,
'U' ) )
THEN
206 DO 50 i = 1,
min( m, j )
207 sum = abs( a( i, j ) )
208 IF(
VALUE .LT. sum .OR.
disnan( sum ) )
VALUE = sum
214 sum = abs( a( i, j ) )
215 IF(
VALUE .LT. sum .OR.
disnan( sum ) )
VALUE = sum
225 udiag =
lsame( diag,
'U' )
226 IF(
lsame( uplo,
'U' ) )
THEN
228 IF( ( udiag ) .AND. ( j.LE.m ) )
THEN
231 sum = sum + abs( a( i, j ) )
235 DO 100 i = 1,
min( m, j )
236 sum = sum + abs( a( i, j ) )
239 IF(
VALUE .LT. sum .OR.
disnan( sum ) )
VALUE = sum
246 sum = sum + abs( a( i, j ) )
251 sum = sum + abs( a( i, j ) )
254 IF(
VALUE .LT. sum .OR.
disnan( sum ) )
VALUE = sum
261 IF(
lsame( uplo, 'u
' ) ) THEN
262 IF( LSAME( DIAG, 'u
' ) ) THEN
267 DO 160 I = 1, MIN( M, J-1 )
268 WORK( I ) = WORK( I ) + ABS( A( I, J ) )
276 DO 190 I = 1, MIN( M, J )
277 WORK( I ) = WORK( I ) + ABS( A( I, J ) )
282 IF( LSAME( DIAG, 'u
' ) ) THEN
283 DO 210 I = 1, MIN( M, N )
291 WORK( I ) = WORK( I ) + ABS( A( I, J ) )
300 WORK( I ) = WORK( I ) + ABS( A( I, J ) )
308.LT..OR.
IF( VALUE SUM DISNAN( SUM ) ) VALUE = SUM
310 ELSE IF( ( LSAME( NORM, 'f.OR.
' ) ) ( LSAME( NORM, 'e
' ) ) ) THEN
314 IF( LSAME( UPLO, 'u
' ) ) THEN
315 IF( LSAME( DIAG, 'u
' ) ) THEN
319 CALL ZLASSQ( MIN( M, J-1 ), A( 1, J ), 1, SCALE, SUM )
325 CALL ZLASSQ( MIN( M, J ), A( 1, J ), 1, SCALE, SUM )
329 IF( LSAME( DIAG, 'u
' ) ) THEN
333 CALL ZLASSQ( M-J, A( MIN( M, J+1 ), J ), 1, SCALE,
340 CALL ZLASSQ( M-J+1, A( J, J ), 1, SCALE, SUM )
344 VALUE = SCALE*SQRT( SUM )
norm(diag(diag(diag(inv(mat))) -id.SOL), 2) % destroy mumps instance id.JOB
subroutine zlassq(n, x, incx, scl, sumsq)
ZLASSQ 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 zlantr(norm, uplo, diag, m, n, a, lda, work)
ZLANTR returns the value of the 1-norm, or the Frobenius norm, or the infinity norm,...