Optimize looping over the lower triangular in fat matrix cases
This commit is contained in:
+1
-1
@@ -134,7 +134,7 @@
|
||||
20 CONTINUE
|
||||
*
|
||||
ELSE IF( LSAME( UPLO, 'L' ) ) THEN
|
||||
DO 40 J = 1, N
|
||||
DO 40 J = 1, MIN( M, N )
|
||||
DO 30 I = J, M
|
||||
B( I, J ) = A( I, J )
|
||||
30 CONTINUE
|
||||
|
||||
+7
-7
@@ -193,7 +193,7 @@
|
||||
10 CONTINUE
|
||||
20 CONTINUE
|
||||
ELSE
|
||||
DO 40 J = 1, N
|
||||
DO 40 J = 1, MIN( M, N )
|
||||
DO 30 I = J + 1, M
|
||||
SUM = ABS( A( I, J ) )
|
||||
IF( VALUE .LT. SUM .OR.
|
||||
@@ -212,7 +212,7 @@
|
||||
50 CONTINUE
|
||||
60 CONTINUE
|
||||
ELSE
|
||||
DO 80 J = 1, N
|
||||
DO 80 J = 1, MIN( M, N )
|
||||
DO 70 I = J, M
|
||||
SUM = ABS( A( I, J ) )
|
||||
IF( VALUE .LT. SUM .OR.
|
||||
@@ -243,7 +243,7 @@
|
||||
IF( VALUE .LT. SUM .OR. SISNAN( SUM ) ) VALUE = SUM
|
||||
110 CONTINUE
|
||||
ELSE
|
||||
DO 140 J = 1, N
|
||||
DO 140 J = 1, MIN( M, N )
|
||||
IF( UDIAG ) THEN
|
||||
SUM = ONE
|
||||
DO 120 I = J + 1, M
|
||||
@@ -290,7 +290,7 @@
|
||||
DO 220 I = N + 1, M
|
||||
WORK( I ) = ZERO
|
||||
220 CONTINUE
|
||||
DO 240 J = 1, N
|
||||
DO 240 J = 1, MIN( M, N )
|
||||
DO 230 I = J + 1, M
|
||||
WORK( I ) = WORK( I ) + ABS( A( I, J ) )
|
||||
230 CONTINUE
|
||||
@@ -299,7 +299,7 @@
|
||||
DO 250 I = 1, M
|
||||
WORK( I ) = ZERO
|
||||
250 CONTINUE
|
||||
DO 270 J = 1, N
|
||||
DO 270 J = 1, MIN( M, N )
|
||||
DO 260 I = J, M
|
||||
WORK( I ) = WORK( I ) + ABS( A( I, J ) )
|
||||
260 CONTINUE
|
||||
@@ -336,14 +336,14 @@
|
||||
IF( LSAME( DIAG, 'U' ) ) THEN
|
||||
SCALE = ONE
|
||||
SUM = REAL( MIN( M, N ) )
|
||||
DO 310 J = 1, N
|
||||
DO 310 J = 1, MIN( M, N )
|
||||
CALL CLASSQ( M-J, A( MIN( M, J+1 ), J ), 1, SCALE,
|
||||
$ SUM )
|
||||
310 CONTINUE
|
||||
ELSE
|
||||
SCALE = ZERO
|
||||
SUM = ONE
|
||||
DO 320 J = 1, N
|
||||
DO 320 J = 1, MIN( M, N )
|
||||
CALL CLASSQ( M-J+1, A( J, J ), 1, SCALE, SUM )
|
||||
320 CONTINUE
|
||||
END IF
|
||||
|
||||
+1
-1
@@ -291,7 +291,7 @@
|
||||
*
|
||||
* Lower triangular matrix
|
||||
*
|
||||
DO 50 J = 1, N
|
||||
DO 50 J = 1, MIN( M, N )
|
||||
DO 40 I = J, M
|
||||
A( I, J ) = A( I, J )*MUL
|
||||
40 CONTINUE
|
||||
|
||||
+1
-1
@@ -133,7 +133,7 @@
|
||||
10 CONTINUE
|
||||
20 CONTINUE
|
||||
ELSE IF( LSAME( UPLO, 'L' ) ) THEN
|
||||
DO 40 J = 1, N
|
||||
DO 40 J = 1, MIN( M, N )
|
||||
DO 30 I = J, M
|
||||
B( I, J ) = A( I, J )
|
||||
30 CONTINUE
|
||||
|
||||
+7
-7
@@ -191,7 +191,7 @@
|
||||
10 CONTINUE
|
||||
20 CONTINUE
|
||||
ELSE
|
||||
DO 40 J = 1, N
|
||||
DO 40 J = 1, MIN( M, N )
|
||||
DO 30 I = J + 1, M
|
||||
SUM = ABS( A( I, J ) )
|
||||
IF( VALUE .LT. SUM .OR.
|
||||
@@ -210,7 +210,7 @@
|
||||
50 CONTINUE
|
||||
60 CONTINUE
|
||||
ELSE
|
||||
DO 80 J = 1, N
|
||||
DO 80 J = 1, MIN( M, N )
|
||||
DO 70 I = J, M
|
||||
SUM = ABS( A( I, J ) )
|
||||
IF( VALUE .LT. SUM .OR.
|
||||
@@ -241,7 +241,7 @@
|
||||
IF( VALUE .LT. SUM .OR. DISNAN( SUM ) ) VALUE = SUM
|
||||
110 CONTINUE
|
||||
ELSE
|
||||
DO 140 J = 1, N
|
||||
DO 140 J = 1, MIN( M, N )
|
||||
IF( UDIAG ) THEN
|
||||
SUM = ONE
|
||||
DO 120 I = J + 1, M
|
||||
@@ -288,7 +288,7 @@
|
||||
DO 220 I = N + 1, M
|
||||
WORK( I ) = ZERO
|
||||
220 CONTINUE
|
||||
DO 240 J = 1, N
|
||||
DO 240 J = 1, MIN (M, N )
|
||||
DO 230 I = J + 1, M
|
||||
WORK( I ) = WORK( I ) + ABS( A( I, J ) )
|
||||
230 CONTINUE
|
||||
@@ -297,7 +297,7 @@
|
||||
DO 250 I = 1, M
|
||||
WORK( I ) = ZERO
|
||||
250 CONTINUE
|
||||
DO 270 J = 1, N
|
||||
DO 270 J = 1, MIN( M, N )
|
||||
DO 260 I = J, M
|
||||
WORK( I ) = WORK( I ) + ABS( A( I, J ) )
|
||||
260 CONTINUE
|
||||
@@ -334,14 +334,14 @@
|
||||
IF( LSAME( DIAG, 'U' ) ) THEN
|
||||
SCALE = ONE
|
||||
SUM = MIN( M, N )
|
||||
DO 310 J = 1, N
|
||||
DO 310 J = 1, MIN( M, N )
|
||||
CALL DLASSQ( M-J, A( MIN( M, J+1 ), J ), 1, SCALE,
|
||||
$ SUM )
|
||||
310 CONTINUE
|
||||
ELSE
|
||||
SCALE = ZERO
|
||||
SUM = ONE
|
||||
DO 320 J = 1, N
|
||||
DO 320 J = 1, MIN( M, N )
|
||||
CALL DLASSQ( M-J+1, A( J, J ), 1, SCALE, SUM )
|
||||
320 CONTINUE
|
||||
END IF
|
||||
|
||||
+1
-1
@@ -291,7 +291,7 @@
|
||||
*
|
||||
* Lower triangular matrix
|
||||
*
|
||||
DO 50 J = 1, N
|
||||
DO 50 J = 1, MIN( M, N )
|
||||
DO 40 I = J, M
|
||||
A( I, J ) = A( I, J )*MUL
|
||||
40 CONTINUE
|
||||
|
||||
+1
-1
@@ -133,7 +133,7 @@
|
||||
10 CONTINUE
|
||||
20 CONTINUE
|
||||
ELSE IF( LSAME( UPLO, 'L' ) ) THEN
|
||||
DO 40 J = 1, N
|
||||
DO 40 J = 1, MIN( M, N )
|
||||
DO 30 I = J, M
|
||||
B( I, J ) = A( I, J )
|
||||
30 CONTINUE
|
||||
|
||||
+7
-7
@@ -191,7 +191,7 @@
|
||||
10 CONTINUE
|
||||
20 CONTINUE
|
||||
ELSE
|
||||
DO 40 J = 1, N
|
||||
DO 40 J = 1, MIN( M, N )
|
||||
DO 30 I = J + 1, M
|
||||
SUM = ABS( A( I, J ) )
|
||||
IF( VALUE .LT. SUM .OR.
|
||||
@@ -210,7 +210,7 @@
|
||||
50 CONTINUE
|
||||
60 CONTINUE
|
||||
ELSE
|
||||
DO 80 J = 1, N
|
||||
DO 80 J = 1, MIN( M, N )
|
||||
DO 70 I = J, M
|
||||
SUM = ABS( A( I, J ) )
|
||||
IF( VALUE .LT. SUM .OR.
|
||||
@@ -241,7 +241,7 @@
|
||||
IF( VALUE .LT. SUM .OR. SISNAN( SUM ) ) VALUE = SUM
|
||||
110 CONTINUE
|
||||
ELSE
|
||||
DO 140 J = 1, N
|
||||
DO 140 J = 1, MIN( M, N )
|
||||
IF( UDIAG ) THEN
|
||||
SUM = ONE
|
||||
DO 120 I = J + 1, M
|
||||
@@ -288,7 +288,7 @@
|
||||
DO 220 I = N + 1, M
|
||||
WORK( I ) = ZERO
|
||||
220 CONTINUE
|
||||
DO 240 J = 1, N
|
||||
DO 240 J = 1, MIN( M, N )
|
||||
DO 230 I = J + 1, M
|
||||
WORK( I ) = WORK( I ) + ABS( A( I, J ) )
|
||||
230 CONTINUE
|
||||
@@ -297,7 +297,7 @@
|
||||
DO 250 I = 1, M
|
||||
WORK( I ) = ZERO
|
||||
250 CONTINUE
|
||||
DO 270 J = 1, N
|
||||
DO 270 J = 1, MIN( M, N )
|
||||
DO 260 I = J, M
|
||||
WORK( I ) = WORK( I ) + ABS( A( I, J ) )
|
||||
260 CONTINUE
|
||||
@@ -334,14 +334,14 @@
|
||||
IF( LSAME( DIAG, 'U' ) ) THEN
|
||||
SCALE = ONE
|
||||
SUM = REAL( MIN( M, N ) )
|
||||
DO 310 J = 1, N
|
||||
DO 310 J = 1, MIN ( M, N )
|
||||
CALL SLASSQ( M-J, A( MIN( M, J+1 ), J ), 1, SCALE,
|
||||
$ SUM )
|
||||
310 CONTINUE
|
||||
ELSE
|
||||
SCALE = ZERO
|
||||
SUM = ONE
|
||||
DO 320 J = 1, N
|
||||
DO 320 J = 1, MIN( M, N )
|
||||
CALL SLASSQ( M-J+1, A( J, J ), 1, SCALE, SUM )
|
||||
320 CONTINUE
|
||||
END IF
|
||||
|
||||
+1
-1
@@ -291,7 +291,7 @@
|
||||
*
|
||||
* Lower triangular matrix
|
||||
*
|
||||
DO 50 J = 1, N
|
||||
DO 50 J = 1, MIN( M, N )
|
||||
DO 40 I = J, M
|
||||
A( I, J ) = A( I, J )*MUL
|
||||
40 CONTINUE
|
||||
|
||||
+1
-1
@@ -134,7 +134,7 @@
|
||||
20 CONTINUE
|
||||
*
|
||||
ELSE IF( LSAME( UPLO, 'L' ) ) THEN
|
||||
DO 40 J = 1, N
|
||||
DO 40 J = 1, MIN( M, N )
|
||||
DO 30 I = J, M
|
||||
B( I, J ) = A( I, J )
|
||||
30 CONTINUE
|
||||
|
||||
+7
-7
@@ -193,7 +193,7 @@
|
||||
10 CONTINUE
|
||||
20 CONTINUE
|
||||
ELSE
|
||||
DO 40 J = 1, N
|
||||
DO 40 J = 1, MIN( M, N )
|
||||
DO 30 I = J + 1, M
|
||||
SUM = ABS( A( I, J ) )
|
||||
IF( VALUE .LT. SUM .OR.
|
||||
@@ -212,7 +212,7 @@
|
||||
50 CONTINUE
|
||||
60 CONTINUE
|
||||
ELSE
|
||||
DO 80 J = 1, N
|
||||
DO 80 J = 1, MIN( M, N )
|
||||
DO 70 I = J, M
|
||||
SUM = ABS( A( I, J ) )
|
||||
IF( VALUE .LT. SUM .OR.
|
||||
@@ -243,7 +243,7 @@
|
||||
IF( VALUE .LT. SUM .OR. DISNAN( SUM ) ) VALUE = SUM
|
||||
110 CONTINUE
|
||||
ELSE
|
||||
DO 140 J = 1, N
|
||||
DO 140 J = 1, MIN( M, N )
|
||||
IF( UDIAG ) THEN
|
||||
SUM = ONE
|
||||
DO 120 I = J + 1, M
|
||||
@@ -290,7 +290,7 @@
|
||||
DO 220 I = N + 1, M
|
||||
WORK( I ) = ZERO
|
||||
220 CONTINUE
|
||||
DO 240 J = 1, N
|
||||
DO 240 J = 1, MIN( M, N )
|
||||
DO 230 I = J + 1, M
|
||||
WORK( I ) = WORK( I ) + ABS( A( I, J ) )
|
||||
230 CONTINUE
|
||||
@@ -299,7 +299,7 @@
|
||||
DO 250 I = 1, M
|
||||
WORK( I ) = ZERO
|
||||
250 CONTINUE
|
||||
DO 270 J = 1, N
|
||||
DO 270 J = 1, MIN( M, N )
|
||||
DO 260 I = J, M
|
||||
WORK( I ) = WORK( I ) + ABS( A( I, J ) )
|
||||
260 CONTINUE
|
||||
@@ -336,14 +336,14 @@
|
||||
IF( LSAME( DIAG, 'U' ) ) THEN
|
||||
SCALE = ONE
|
||||
SUM = MIN( M, N )
|
||||
DO 310 J = 1, N
|
||||
DO 310 J = 1, MIN( M, N )
|
||||
CALL ZLASSQ( M-J, A( MIN( M, J+1 ), J ), 1, SCALE,
|
||||
$ SUM )
|
||||
310 CONTINUE
|
||||
ELSE
|
||||
SCALE = ZERO
|
||||
SUM = ONE
|
||||
DO 320 J = 1, N
|
||||
DO 320 J = 1, MIN( M, N )
|
||||
CALL ZLASSQ( M-J+1, A( J, J ), 1, SCALE, SUM )
|
||||
320 CONTINUE
|
||||
END IF
|
||||
|
||||
+1
-1
@@ -291,7 +291,7 @@
|
||||
*
|
||||
* Lower triangular matrix
|
||||
*
|
||||
DO 50 J = 1, N
|
||||
DO 50 J = 1, MIN( M, N )
|
||||
DO 40 I = J, M
|
||||
A( I, J ) = A( I, J )*MUL
|
||||
40 CONTINUE
|
||||
|
||||
Reference in New Issue
Block a user