remove all TEMP = ONE/A(J,J) and force explicit division like B(I,J)/A(J,J) instead of TEMP*B(I,J)

This commit is contained in:
Julien Langou
2026-07-12 09:54:04 -06:00
parent 38ccf80859
commit e8785e4e1e
4 changed files with 40 additions and 52 deletions
+14 -16
View File
@@ -210,8 +210,6 @@
LOGICAL LSIDE,NOCONJ,NOUNIT,UPPER
* ..
* .. Parameters ..
COMPLEX ONE
PARAMETER (ONE= (1.0E+0,0.0E+0))
COMPLEX ZERO
PARAMETER (ZERO= (0.0E+0,0.0E+0))
* ..
@@ -360,9 +358,8 @@
200 CONTINUE
210 CONTINUE
IF (NOUNIT) THEN
TEMP = ONE/A(J,J)
DO 220 I = 1,M
B(I,J) = TEMP*B(I,J)
B(I,J) = B(I,J)/A(J,J)
220 CONTINUE
END IF
230 CONTINUE
@@ -377,9 +374,8 @@
250 CONTINUE
260 CONTINUE
IF (NOUNIT) THEN
TEMP = ONE/A(J,J)
DO 270 I = 1,M
B(I,J) = TEMP*B(I,J)
B(I,J) = B(I,J)/A(J,J)
270 CONTINUE
END IF
280 CONTINUE
@@ -393,13 +389,14 @@
DO 330 K = N,1,-1
IF (NOUNIT) THEN
IF (NOCONJ) THEN
TEMP = ONE/A(K,K)
DO 290 I = 1,M
B(I,K) = B(I,K)/A(K,K)
290 CONTINUE
ELSE
TEMP = ONE/CONJG(A(K,K))
DO 390 I = 1,M
B(I,K) = B(I,K)/CONJG(A(K,K))
390 CONTINUE
END IF
DO 290 I = 1,M
B(I,K) = TEMP*B(I,K)
290 CONTINUE
END IF
DO 310 J = 1,K - 1
IF (NOCONJ) THEN
@@ -419,13 +416,14 @@
DO 380 K = 1,N
IF (NOUNIT) THEN
IF (NOCONJ) THEN
TEMP = ONE/A(K,K)
DO 340 I = 1,M
B(I,K) = B(I,K)/A(K,K)
340 CONTINUE
ELSE
TEMP = ONE/CONJG(A(K,K))
DO 400 I = 1,M
B(I,K) = B(I,K)/CONJG(A(K,K))
400 CONTINUE
END IF
DO 340 I = 1,M
B(I,K) = TEMP*B(I,K)
340 CONTINUE
END IF
DO 360 J = K + 1,N
IF (NOCONJ) THEN
+6 -10
View File
@@ -211,8 +211,8 @@
LOGICAL LSIDE,NOUNIT,UPPER
* ..
* .. Parameters ..
DOUBLE PRECISION ONE,ZERO
PARAMETER (ONE=1.0D+0,ZERO=0.0D+0)
DOUBLE PRECISION ZERO
PARAMETER (ZERO=0.0D+0)
* ..
*
* Test the input parameters.
@@ -343,9 +343,8 @@
180 CONTINUE
190 CONTINUE
IF (NOUNIT) THEN
TEMP = ONE/A(J,J)
DO 200 I = 1,M
B(I,J) = TEMP*B(I,J)
B(I,J) = B(I,J)/A(J,J)
200 CONTINUE
END IF
210 CONTINUE
@@ -360,9 +359,8 @@
230 CONTINUE
240 CONTINUE
IF (NOUNIT) THEN
TEMP = ONE/A(J,J)
DO 250 I = 1,M
B(I,J) = TEMP*B(I,J)
B(I,J) = B(I,J)/A(J,J)
250 CONTINUE
END IF
260 CONTINUE
@@ -374,9 +372,8 @@
IF (UPPER) THEN
DO 310 K = N,1,-1
IF (NOUNIT) THEN
TEMP = ONE/A(K,K)
DO 270 I = 1,M
B(I,K) = TEMP*B(I,K)
B(I,K) = B(I,K)/A(K,K)
270 CONTINUE
END IF
DO 290 J = 1,K - 1
@@ -392,9 +389,8 @@
ELSE
DO 360 K = 1,N
IF (NOUNIT) THEN
TEMP = ONE/A(K,K)
DO 320 I = 1,M
B(I,K) = TEMP*B(I,K)
B(I,K) = B(I,K)/A(K,K)
320 CONTINUE
END IF
DO 340 J = K + 1,N
+6 -10
View File
@@ -211,8 +211,8 @@
LOGICAL LSIDE,NOUNIT,UPPER
* ..
* .. Parameters ..
REAL ONE,ZERO
PARAMETER (ONE=1.0E+0,ZERO=0.0E+0)
REAL ZERO
PARAMETER (ZERO=0.0E+0)
* ..
*
* Test the input parameters.
@@ -343,9 +343,8 @@
180 CONTINUE
190 CONTINUE
IF (NOUNIT) THEN
TEMP = ONE/A(J,J)
DO 200 I = 1,M
B(I,J) = TEMP*B(I,J)
B(I,J) = B(I,J)/A(J,J)
200 CONTINUE
END IF
210 CONTINUE
@@ -360,9 +359,8 @@
230 CONTINUE
240 CONTINUE
IF (NOUNIT) THEN
TEMP = ONE/A(J,J)
DO 250 I = 1,M
B(I,J) = TEMP*B(I,J)
B(I,J) = B(I,J)/A(J,J)
250 CONTINUE
END IF
260 CONTINUE
@@ -374,9 +372,8 @@
IF (UPPER) THEN
DO 310 K = N,1,-1
IF (NOUNIT) THEN
TEMP = ONE/A(K,K)
DO 270 I = 1,M
B(I,K) = TEMP*B(I,K)
B(I,K) = B(I,K)/A(K,K)
270 CONTINUE
END IF
DO 290 J = 1,K - 1
@@ -392,9 +389,8 @@
ELSE
DO 360 K = 1,N
IF (NOUNIT) THEN
TEMP = ONE/A(K,K)
DO 320 I = 1,M
B(I,K) = TEMP*B(I,K)
B(I,K) = B(I,K)/A(K,K)
320 CONTINUE
END IF
DO 340 J = K + 1,N
+14 -16
View File
@@ -210,8 +210,6 @@
LOGICAL LSIDE,NOCONJ,NOUNIT,UPPER
* ..
* .. Parameters ..
COMPLEX*16 ONE
PARAMETER (ONE= (1.0D+0,0.0D+0))
COMPLEX*16 ZERO
PARAMETER (ZERO= (0.0D+0,0.0D+0))
* ..
@@ -360,9 +358,8 @@
200 CONTINUE
210 CONTINUE
IF (NOUNIT) THEN
TEMP = ONE/A(J,J)
DO 220 I = 1,M
B(I,J) = TEMP*B(I,J)
B(I,J) = B(I,J)/A(J,J)
220 CONTINUE
END IF
230 CONTINUE
@@ -377,9 +374,8 @@
250 CONTINUE
260 CONTINUE
IF (NOUNIT) THEN
TEMP = ONE/A(J,J)
DO 270 I = 1,M
B(I,J) = TEMP*B(I,J)
B(I,J) = B(I,J)/A(J,J)
270 CONTINUE
END IF
280 CONTINUE
@@ -393,13 +389,14 @@
DO 330 K = N,1,-1
IF (NOUNIT) THEN
IF (NOCONJ) THEN
TEMP = ONE/A(K,K)
DO 290 I = 1,M
B(I,K) = B(I,K)/A(K,K)
290 CONTINUE
ELSE
TEMP = ONE/DCONJG(A(K,K))
DO 390 I = 1,M
B(I,K) = B(I,K)/DCONJG(A(K,K))
390 CONTINUE
END IF
DO 290 I = 1,M
B(I,K) = TEMP*B(I,K)
290 CONTINUE
END IF
DO 310 J = 1,K - 1
IF (NOCONJ) THEN
@@ -419,13 +416,14 @@
DO 380 K = 1,N
IF (NOUNIT) THEN
IF (NOCONJ) THEN
TEMP = ONE/A(K,K)
DO 340 I = 1,M
B(I,K) = B(I,K)/A(K,K)
340 CONTINUE
ELSE
TEMP = ONE/DCONJG(A(K,K))
DO 400 I = 1,M
B(I,K) = B(I,K)/DCONJG(A(K,K))
400 CONTINUE
END IF
DO 340 I = 1,M
B(I,K) = TEMP*B(I,K)
340 CONTINUE
END IF
DO 360 J = K + 1,N
IF (NOCONJ) THEN