]> git.pld-linux.org Git - packages/lapack.git/commitdiff
- added blas-nan patch (disable "0*x=0" optimizations not respecting NaN) auto/th/lapack-3_2_2-2
authorJakub Bogusz <qboosh@pld-linux.org>
Thu, 21 Oct 2010 05:29:56 +0000 (05:29 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
- release 2

Changed files:
    blas-nan.patch -> 1.1
    lapack.spec -> 1.43

blas-nan.patch [new file with mode: 0644]
lapack.spec

diff --git a/blas-nan.patch b/blas-nan.patch
new file mode 100644 (file)
index 0000000..2eb9c9d
--- /dev/null
@@ -0,0 +1,1296 @@
+Disable optimizations based on (0*x = 0) assumption;
+they make the code non IEC-60559/IEEE-754 compliant wrt. NaN (0*x=0 _unless_ x=NaN)
+--- lapack-3.2.2/BLAS/SRC/dgbmv.f.orig 2009-01-02 22:57:02.000000000 +0100
++++ lapack-3.2.2/BLAS/SRC/dgbmv.f      2010-10-19 09:18:34.583741043 +0200
+@@ -239,18 +239,18 @@
+           JX = KX
+           IF (INCY.EQ.1) THEN
+               DO 60 J = 1,N
+-                  IF (X(JX).NE.ZERO) THEN
++c                 IF (X(JX).NE.ZERO) THEN
+                       TEMP = ALPHA*X(JX)
+                       K = KUP1 - J
+                       DO 50 I = MAX(1,J-KU),MIN(M,J+KL)
+                           Y(I) = Y(I) + TEMP*A(K+I,J)
+    50                 CONTINUE
+-                  END IF
++c                 END IF
+                   JX = JX + INCX
+    60         CONTINUE
+           ELSE
+               DO 80 J = 1,N
+-                  IF (X(JX).NE.ZERO) THEN
++c                 IF (X(JX).NE.ZERO) THEN
+                       TEMP = ALPHA*X(JX)
+                       IY = KY
+                       K = KUP1 - J
+@@ -258,7 +258,7 @@
+                           Y(IY) = Y(IY) + TEMP*A(K+I,J)
+                           IY = IY + INCY
+    70                 CONTINUE
+-                  END IF
++c                 END IF
+                   JX = JX + INCX
+                   IF (J.GT.KU) KY = KY + INCY
+    80         CONTINUE
+--- lapack-3.2.2/BLAS/SRC/dgemm.f.orig 2009-01-02 22:57:02.000000000 +0100
++++ lapack-3.2.2/BLAS/SRC/dgemm.f      2010-10-19 09:21:00.999739367 +0200
+@@ -239,12 +239,12 @@
+    60                 CONTINUE
+                   END IF
+                   DO 80 L = 1,K
+-                      IF (B(L,J).NE.ZERO) THEN
++c                     IF (B(L,J).NE.ZERO) THEN
+                           TEMP = ALPHA*B(L,J)
+                           DO 70 I = 1,M
+                               C(I,J) = C(I,J) + TEMP*A(I,L)
+    70                     CONTINUE
+-                      END IF
++c                     END IF
+    80             CONTINUE
+    90         CONTINUE
+           ELSE
+@@ -281,12 +281,12 @@
+   140                 CONTINUE
+                   END IF
+                   DO 160 L = 1,K
+-                      IF (B(J,L).NE.ZERO) THEN
++c                     IF (B(J,L).NE.ZERO) THEN
+                           TEMP = ALPHA*B(J,L)
+                           DO 150 I = 1,M
+                               C(I,J) = C(I,J) + TEMP*A(I,L)
+   150                     CONTINUE
+-                      END IF
++c                     END IF
+   160             CONTINUE
+   170         CONTINUE
+           ELSE
+--- lapack-3.2.2/BLAS/SRC/dgemv.f.orig 2009-01-02 22:57:02.000000000 +0100
++++ lapack-3.2.2/BLAS/SRC/dgemv.f      2010-10-19 09:21:52.767734339 +0200
+@@ -208,24 +208,24 @@
+           JX = KX
+           IF (INCY.EQ.1) THEN
+               DO 60 J = 1,N
+-                  IF (X(JX).NE.ZERO) THEN
++c                 IF (X(JX).NE.ZERO) THEN
+                       TEMP = ALPHA*X(JX)
+                       DO 50 I = 1,M
+                           Y(I) = Y(I) + TEMP*A(I,J)
+    50                 CONTINUE
+-                  END IF
++c                 END IF
+                   JX = JX + INCX
+    60         CONTINUE
+           ELSE
+               DO 80 J = 1,N
+-                  IF (X(JX).NE.ZERO) THEN
++c                 IF (X(JX).NE.ZERO) THEN
+                       TEMP = ALPHA*X(JX)
+                       IY = KY
+                       DO 70 I = 1,M
+                           Y(IY) = Y(IY) + TEMP*A(I,J)
+                           IY = IY + INCY
+    70                 CONTINUE
+-                  END IF
++c                 END IF
+                   JX = JX + INCX
+    80         CONTINUE
+           END IF
+--- lapack-3.2.2/BLAS/SRC/zgemv.f.orig 2009-01-02 22:57:02.000000000 +0100
++++ lapack-3.2.2/BLAS/SRC/zgemv.f      2010-10-19 09:26:18.235739367 +0200
+@@ -215,24 +215,24 @@
+           JX = KX
+           IF (INCY.EQ.1) THEN
+               DO 60 J = 1,N
+-                  IF (X(JX).NE.ZERO) THEN
++c                 IF (X(JX).NE.ZERO) THEN
+                       TEMP = ALPHA*X(JX)
+                       DO 50 I = 1,M
+                           Y(I) = Y(I) + TEMP*A(I,J)
+    50                 CONTINUE
+-                  END IF
++c                 END IF
+                   JX = JX + INCX
+    60         CONTINUE
+           ELSE
+               DO 80 J = 1,N
+-                  IF (X(JX).NE.ZERO) THEN
++c                 IF (X(JX).NE.ZERO) THEN
+                       TEMP = ALPHA*X(JX)
+                       IY = KY
+                       DO 70 I = 1,M
+                           Y(IY) = Y(IY) + TEMP*A(I,J)
+                           IY = IY + INCY
+    70                 CONTINUE
+-                  END IF
++c                 END IF
+                   JX = JX + INCX
+    80         CONTINUE
+           END IF
+--- lapack-3.2.2/BLAS/SRC/zgerc.f.orig 2009-01-02 22:57:02.000000000 +0100
++++ lapack-3.2.2/BLAS/SRC/zgerc.f      2010-10-19 09:27:26.711744396 +0200
+@@ -128,12 +128,12 @@
+       END IF
+       IF (INCX.EQ.1) THEN
+           DO 20 J = 1,N
+-              IF (Y(JY).NE.ZERO) THEN
++c             IF (Y(JY).NE.ZERO) THEN
+                   TEMP = ALPHA*DCONJG(Y(JY))
+                   DO 10 I = 1,M
+                       A(I,J) = A(I,J) + X(I)*TEMP
+    10             CONTINUE
+-              END IF
++c             END IF
+               JY = JY + INCY
+    20     CONTINUE
+       ELSE
+@@ -143,14 +143,14 @@
+               KX = 1 - (M-1)*INCX
+           END IF
+           DO 40 J = 1,N
+-              IF (Y(JY).NE.ZERO) THEN
++c             IF (Y(JY).NE.ZERO) THEN
+                   TEMP = ALPHA*DCONJG(Y(JY))
+                   IX = KX
+                   DO 30 I = 1,M
+                       A(I,J) = A(I,J) + X(IX)*TEMP
+                       IX = IX + INCX
+    30             CONTINUE
+-              END IF
++c             END IF
+               JY = JY + INCY
+    40     CONTINUE
+       END IF
+--- lapack-3.2.2/BLAS/SRC/zher2.f.orig 2009-01-02 22:57:02.000000000 +0100
++++ lapack-3.2.2/BLAS/SRC/zher2.f      2010-10-19 09:29:15.131742720 +0200
+@@ -171,7 +171,7 @@
+ *
+           IF ((INCX.EQ.1) .AND. (INCY.EQ.1)) THEN
+               DO 20 J = 1,N
+-                  IF ((X(J).NE.ZERO) .OR. (Y(J).NE.ZERO)) THEN
++c                 IF ((X(J).NE.ZERO) .OR. (Y(J).NE.ZERO)) THEN
+                       TEMP1 = ALPHA*DCONJG(Y(J))
+                       TEMP2 = DCONJG(ALPHA*X(J))
+                       DO 10 I = 1,J - 1
+@@ -179,13 +179,13 @@
+    10                 CONTINUE
+                       A(J,J) = DBLE(A(J,J)) +
+      +                         DBLE(X(J)*TEMP1+Y(J)*TEMP2)
+-                  ELSE
+-                      A(J,J) = DBLE(A(J,J))
+-                  END IF
++c                 ELSE
++c                     A(J,J) = DBLE(A(J,J))
++c                 END IF
+    20         CONTINUE
+           ELSE
+               DO 40 J = 1,N
+-                  IF ((X(JX).NE.ZERO) .OR. (Y(JY).NE.ZERO)) THEN
++c                 IF ((X(JX).NE.ZERO) .OR. (Y(JY).NE.ZERO)) THEN
+                       TEMP1 = ALPHA*DCONJG(Y(JY))
+                       TEMP2 = DCONJG(ALPHA*X(JX))
+                       IX = KX
+@@ -197,9 +197,9 @@
+    30                 CONTINUE
+                       A(J,J) = DBLE(A(J,J)) +
+      +                         DBLE(X(JX)*TEMP1+Y(JY)*TEMP2)
+-                  ELSE
+-                      A(J,J) = DBLE(A(J,J))
+-                  END IF
++c                 ELSE
++c                     A(J,J) = DBLE(A(J,J))
++c                 END IF
+                   JX = JX + INCX
+                   JY = JY + INCY
+    40         CONTINUE
+@@ -210,7 +210,7 @@
+ *
+           IF ((INCX.EQ.1) .AND. (INCY.EQ.1)) THEN
+               DO 60 J = 1,N
+-                  IF ((X(J).NE.ZERO) .OR. (Y(J).NE.ZERO)) THEN
++c                 IF ((X(J).NE.ZERO) .OR. (Y(J).NE.ZERO)) THEN
+                       TEMP1 = ALPHA*DCONJG(Y(J))
+                       TEMP2 = DCONJG(ALPHA*X(J))
+                       A(J,J) = DBLE(A(J,J)) +
+@@ -218,13 +218,13 @@
+                       DO 50 I = J + 1,N
+                           A(I,J) = A(I,J) + X(I)*TEMP1 + Y(I)*TEMP2
+    50                 CONTINUE
+-                  ELSE
+-                      A(J,J) = DBLE(A(J,J))
+-                  END IF
++c                 ELSE
++c                     A(J,J) = DBLE(A(J,J))
++c                 END IF
+    60         CONTINUE
+           ELSE
+               DO 80 J = 1,N
+-                  IF ((X(JX).NE.ZERO) .OR. (Y(JY).NE.ZERO)) THEN
++c                 IF ((X(JX).NE.ZERO) .OR. (Y(JY).NE.ZERO)) THEN
+                       TEMP1 = ALPHA*DCONJG(Y(JY))
+                       TEMP2 = DCONJG(ALPHA*X(JX))
+                       A(J,J) = DBLE(A(J,J)) +
+@@ -236,9 +236,9 @@
+                           IY = IY + INCY
+                           A(I,J) = A(I,J) + X(IX)*TEMP1 + Y(IY)*TEMP2
+    70                 CONTINUE
+-                  ELSE
+-                      A(J,J) = DBLE(A(J,J))
+-                  END IF
++c                 ELSE
++c                     A(J,J) = DBLE(A(J,J))
++c                 END IF
+                   JX = JX + INCX
+                   JY = JY + INCY
+    80         CONTINUE
+--- lapack-3.2.2/BLAS/SRC/zher2k.f.orig        2009-01-02 22:57:02.000000000 +0100
++++ lapack-3.2.2/BLAS/SRC/zher2k.f     2010-10-19 09:29:55.943741043 +0200
+@@ -260,7 +260,7 @@
+                       C(J,J) = DBLE(C(J,J))
+                   END IF
+                   DO 120 L = 1,K
+-                      IF ((A(J,L).NE.ZERO) .OR. (B(J,L).NE.ZERO)) THEN
++c                     IF ((A(J,L).NE.ZERO) .OR. (B(J,L).NE.ZERO)) THEN
+                           TEMP1 = ALPHA*DCONJG(B(J,L))
+                           TEMP2 = DCONJG(ALPHA*A(J,L))
+                           DO 110 I = 1,J - 1
+@@ -269,7 +269,7 @@
+   110                     CONTINUE
+                           C(J,J) = DBLE(C(J,J)) +
+      +                             DBLE(A(J,L)*TEMP1+B(J,L)*TEMP2)
+-                      END IF
++c                     END IF
+   120             CONTINUE
+   130         CONTINUE
+           ELSE
+@@ -287,7 +287,7 @@
+                       C(J,J) = DBLE(C(J,J))
+                   END IF
+                   DO 170 L = 1,K
+-                      IF ((A(J,L).NE.ZERO) .OR. (B(J,L).NE.ZERO)) THEN
++c                     IF ((A(J,L).NE.ZERO) .OR. (B(J,L).NE.ZERO)) THEN
+                           TEMP1 = ALPHA*DCONJG(B(J,L))
+                           TEMP2 = DCONJG(ALPHA*A(J,L))
+                           DO 160 I = J + 1,N
+@@ -296,7 +296,7 @@
+   160                     CONTINUE
+                           C(J,J) = DBLE(C(J,J)) +
+      +                             DBLE(A(J,L)*TEMP1+B(J,L)*TEMP2)
+-                      END IF
++c                     END IF
+   170             CONTINUE
+   180         CONTINUE
+           END IF
+--- lapack-3.2.2/BLAS/SRC/ztrmm.f.orig 2009-01-02 22:57:02.000000000 +0100
++++ lapack-3.2.2/BLAS/SRC/ztrmm.f      2010-10-19 09:31:16.815739367 +0200
+@@ -211,27 +211,27 @@
+               IF (UPPER) THEN
+                   DO 50 J = 1,N
+                       DO 40 K = 1,M
+-                          IF (B(K,J).NE.ZERO) THEN
++c                         IF (B(K,J).NE.ZERO) THEN
+                               TEMP = ALPHA*B(K,J)
+                               DO 30 I = 1,K - 1
+                                   B(I,J) = B(I,J) + TEMP*A(I,K)
+    30                         CONTINUE
+                               IF (NOUNIT) TEMP = TEMP*A(K,K)
+                               B(K,J) = TEMP
+-                          END IF
++c                         END IF
+    40                 CONTINUE
+    50             CONTINUE
+               ELSE
+                   DO 80 J = 1,N
+                       DO 70 K = M,1,-1
+-                          IF (B(K,J).NE.ZERO) THEN
++c                         IF (B(K,J).NE.ZERO) THEN
+                               TEMP = ALPHA*B(K,J)
+                               B(K,J) = TEMP
+                               IF (NOUNIT) B(K,J) = B(K,J)*A(K,K)
+                               DO 60 I = K + 1,M
+                                   B(I,J) = B(I,J) + TEMP*A(I,K)
+    60                         CONTINUE
+-                          END IF
++c                         END IF
+    70                 CONTINUE
+    80             CONTINUE
+               END IF
+@@ -290,12 +290,12 @@
+                           B(I,J) = TEMP*B(I,J)
+   170                 CONTINUE
+                       DO 190 K = 1,J - 1
+-                          IF (A(K,J).NE.ZERO) THEN
++c                         IF (A(K,J).NE.ZERO) THEN
+                               TEMP = ALPHA*A(K,J)
+                               DO 180 I = 1,M
+                                   B(I,J) = B(I,J) + TEMP*B(I,K)
+   180                         CONTINUE
+-                          END IF
++c                         END IF
+   190                 CONTINUE
+   200             CONTINUE
+               ELSE
+@@ -306,12 +306,12 @@
+                           B(I,J) = TEMP*B(I,J)
+   210                 CONTINUE
+                       DO 230 K = J + 1,N
+-                          IF (A(K,J).NE.ZERO) THEN
++c                         IF (A(K,J).NE.ZERO) THEN
+                               TEMP = ALPHA*A(K,J)
+                               DO 220 I = 1,M
+                                   B(I,J) = B(I,J) + TEMP*B(I,K)
+   220                         CONTINUE
+-                          END IF
++c                         END IF
+   230                 CONTINUE
+   240             CONTINUE
+               END IF
+@@ -350,7 +350,7 @@
+               ELSE
+                   DO 320 K = N,1,-1
+                       DO 300 J = K + 1,N
+-                          IF (A(J,K).NE.ZERO) THEN
++c                         IF (A(J,K).NE.ZERO) THEN
+                               IF (NOCONJ) THEN
+                                   TEMP = ALPHA*A(J,K)
+                               ELSE
+@@ -359,7 +359,7 @@
+                               DO 290 I = 1,M
+                                   B(I,J) = B(I,J) + TEMP*B(I,K)
+   290                         CONTINUE
+-                          END IF
++c                         END IF
+   300                 CONTINUE
+                       TEMP = ALPHA
+                       IF (NOUNIT) THEN
+--- lapack-3.2.2/BLAS/SRC/ztrmv.f.orig 2009-01-02 22:57:02.000000000 +0100
++++ lapack-3.2.2/BLAS/SRC/ztrmv.f      2010-10-19 09:32:09.067739367 +0200
+@@ -169,18 +169,18 @@
+           IF (LSAME(UPLO,'U')) THEN
+               IF (INCX.EQ.1) THEN
+                   DO 20 J = 1,N
+-                      IF (X(J).NE.ZERO) THEN
++c                     IF (X(J).NE.ZERO) THEN
+                           TEMP = X(J)
+                           DO 10 I = 1,J - 1
+                               X(I) = X(I) + TEMP*A(I,J)
+    10                     CONTINUE
+                           IF (NOUNIT) X(J) = X(J)*A(J,J)
+-                      END IF
++c                     END IF
+    20             CONTINUE
+               ELSE
+                   JX = KX
+                   DO 40 J = 1,N
+-                      IF (X(JX).NE.ZERO) THEN
++c                     IF (X(JX).NE.ZERO) THEN
+                           TEMP = X(JX)
+                           IX = KX
+                           DO 30 I = 1,J - 1
+@@ -188,26 +188,26 @@
+                               IX = IX + INCX
+    30                     CONTINUE
+                           IF (NOUNIT) X(JX) = X(JX)*A(J,J)
+-                      END IF
++c                     END IF
+                       JX = JX + INCX
+    40             CONTINUE
+               END IF
+           ELSE
+               IF (INCX.EQ.1) THEN
+                   DO 60 J = N,1,-1
+-                      IF (X(J).NE.ZERO) THEN
++c                     IF (X(J).NE.ZERO) THEN
+                           TEMP = X(J)
+                           DO 50 I = N,J + 1,-1
+                               X(I) = X(I) + TEMP*A(I,J)
+    50                     CONTINUE
+                           IF (NOUNIT) X(J) = X(J)*A(J,J)
+-                      END IF
++c                     END IF
+    60             CONTINUE
+               ELSE
+                   KX = KX + (N-1)*INCX
+                   JX = KX
+                   DO 80 J = N,1,-1
+-                      IF (X(JX).NE.ZERO) THEN
++c                     IF (X(JX).NE.ZERO) THEN
+                           TEMP = X(JX)
+                           IX = KX
+                           DO 70 I = N,J + 1,-1
+@@ -215,7 +215,7 @@
+                               IX = IX - INCX
+    70                     CONTINUE
+                           IF (NOUNIT) X(JX) = X(JX)*A(J,J)
+-                      END IF
++c                     END IF
+                       JX = JX - INCX
+    80             CONTINUE
+               END IF
+--- lapack-3.2.2/BLAS/SRC/ztrsm.f.orig 2009-01-02 22:57:02.000000000 +0100
++++ lapack-3.2.2/BLAS/SRC/ztrsm.f      2010-10-19 09:37:56.767745234 +0200
+@@ -218,12 +218,12 @@
+    30                     CONTINUE
+                       END IF
+                       DO 50 K = M,1,-1
+-                          IF (B(K,J).NE.ZERO) THEN
++c                         IF (B(K,J).NE.ZERO) THEN
+                               IF (NOUNIT) B(K,J) = B(K,J)/A(K,K)
+                               DO 40 I = 1,K - 1
+                                   B(I,J) = B(I,J) - B(K,J)*A(I,K)
+    40                         CONTINUE
+-                          END IF
++c                         END IF
+    50                 CONTINUE
+    60             CONTINUE
+               ELSE
+@@ -234,12 +234,12 @@
+    70                     CONTINUE
+                       END IF
+                       DO 90 K = 1,M
+-                          IF (B(K,J).NE.ZERO) THEN
++c                         IF (B(K,J).NE.ZERO) THEN
+                               IF (NOUNIT) B(K,J) = B(K,J)/A(K,K)
+                               DO 80 I = K + 1,M
+                                   B(I,J) = B(I,J) - B(K,J)*A(I,K)
+    80                         CONTINUE
+-                          END IF
++c                         END IF
+    90                 CONTINUE
+   100             CONTINUE
+               END IF
+@@ -299,11 +299,11 @@
+   190                     CONTINUE
+                       END IF
+                       DO 210 K = 1,J - 1
+-                          IF (A(K,J).NE.ZERO) THEN
++c                         IF (A(K,J).NE.ZERO) THEN
+                               DO 200 I = 1,M
+                                   B(I,J) = B(I,J) - A(K,J)*B(I,K)
+   200                         CONTINUE
+-                          END IF
++c                         END IF
+   210                 CONTINUE
+                       IF (NOUNIT) THEN
+                           TEMP = ONE/A(J,J)
+@@ -320,11 +320,11 @@
+   240                     CONTINUE
+                       END IF
+                       DO 260 K = J + 1,N
+-                          IF (A(K,J).NE.ZERO) THEN
++c                         IF (A(K,J).NE.ZERO) THEN
+                               DO 250 I = 1,M
+                                   B(I,J) = B(I,J) - A(K,J)*B(I,K)
+   250                         CONTINUE
+-                          END IF
++c                         END IF
+   260                 CONTINUE
+                       IF (NOUNIT) THEN
+                           TEMP = ONE/A(J,J)
+@@ -352,7 +352,7 @@
+   290                     CONTINUE
+                       END IF
+                       DO 310 J = 1,K - 1
+-                          IF (A(J,K).NE.ZERO) THEN
++c                         IF (A(J,K).NE.ZERO) THEN
+                               IF (NOCONJ) THEN
+                                   TEMP = A(J,K)
+                               ELSE
+@@ -361,7 +361,7 @@
+                               DO 300 I = 1,M
+                                   B(I,J) = B(I,J) - TEMP*B(I,K)
+   300                         CONTINUE
+-                          END IF
++c                         END IF
+   310                 CONTINUE
+                       IF (ALPHA.NE.ONE) THEN
+                           DO 320 I = 1,M
+@@ -382,7 +382,7 @@
+   340                     CONTINUE
+                       END IF
+                       DO 360 J = K + 1,N
+-                          IF (A(J,K).NE.ZERO) THEN
++c                         IF (A(J,K).NE.ZERO) THEN
+                               IF (NOCONJ) THEN
+                                   TEMP = A(J,K)
+                               ELSE
+@@ -391,7 +391,7 @@
+                               DO 350 I = 1,M
+                                   B(I,J) = B(I,J) - TEMP*B(I,K)
+   350                         CONTINUE
+-                          END IF
++c                         END IF
+   360                 CONTINUE
+                       IF (ALPHA.NE.ONE) THEN
+                           DO 370 I = 1,M
+--- lapack-3.2.2/BLAS/SRC/ztrsv.f.orig 2009-01-02 22:57:02.000000000 +0100
++++ lapack-3.2.2/BLAS/SRC/ztrsv.f      2010-10-19 09:40:07.839740205 +0200
+@@ -172,18 +172,18 @@
+           IF (LSAME(UPLO,'U')) THEN
+               IF (INCX.EQ.1) THEN
+                   DO 20 J = N,1,-1
+-                      IF (X(J).NE.ZERO) THEN
++c                     IF (X(J).NE.ZERO) THEN
+                           IF (NOUNIT) X(J) = X(J)/A(J,J)
+                           TEMP = X(J)
+                           DO 10 I = J - 1,1,-1
+                               X(I) = X(I) - TEMP*A(I,J)
+    10                     CONTINUE
+-                      END IF
++c                     END IF
+    20             CONTINUE
+               ELSE
+                   JX = KX + (N-1)*INCX
+                   DO 40 J = N,1,-1
+-                      IF (X(JX).NE.ZERO) THEN
++c                     IF (X(JX).NE.ZERO) THEN
+                           IF (NOUNIT) X(JX) = X(JX)/A(J,J)
+                           TEMP = X(JX)
+                           IX = JX
+@@ -191,25 +191,25 @@
+                               IX = IX - INCX
+                               X(IX) = X(IX) - TEMP*A(I,J)
+    30                     CONTINUE
+-                      END IF
++c                     END IF
+                       JX = JX - INCX
+    40             CONTINUE
+               END IF
+           ELSE
+               IF (INCX.EQ.1) THEN
+                   DO 60 J = 1,N
+-                      IF (X(J).NE.ZERO) THEN
++c                     IF (X(J).NE.ZERO) THEN
+                           IF (NOUNIT) X(J) = X(J)/A(J,J)
+                           TEMP = X(J)
+                           DO 50 I = J + 1,N
+                               X(I) = X(I) - TEMP*A(I,J)
+    50                     CONTINUE
+-                      END IF
++c                     END IF
+    60             CONTINUE
+               ELSE
+                   JX = KX
+                   DO 80 J = 1,N
+-                      IF (X(JX).NE.ZERO) THEN
++c                     IF (X(JX).NE.ZERO) THEN
+                           IF (NOUNIT) X(JX) = X(JX)/A(J,J)
+                           TEMP = X(JX)
+                           IX = JX
+@@ -217,7 +217,7 @@
+                               IX = IX + INCX
+                               X(IX) = X(IX) - TEMP*A(I,J)
+    70                     CONTINUE
+-                      END IF
++c                     END IF
+                       JX = JX + INCX
+    80             CONTINUE
+               END IF
+--- lapack-3.2.2/BLAS/SRC/zgbmv.f.orig 2009-01-02 22:57:02.000000000 +0100
++++ lapack-3.2.2/BLAS/SRC/zgbmv.f      2010-10-19 09:40:57.031743558 +0200
+@@ -247,18 +247,18 @@
+           JX = KX
+           IF (INCY.EQ.1) THEN
+               DO 60 J = 1,N
+-                  IF (X(JX).NE.ZERO) THEN
++c                 IF (X(JX).NE.ZERO) THEN
+                       TEMP = ALPHA*X(JX)
+                       K = KUP1 - J
+                       DO 50 I = MAX(1,J-KU),MIN(M,J+KL)
+                           Y(I) = Y(I) + TEMP*A(K+I,J)
+    50                 CONTINUE
+-                  END IF
++c                 END IF
+                   JX = JX + INCX
+    60         CONTINUE
+           ELSE
+               DO 80 J = 1,N
+-                  IF (X(JX).NE.ZERO) THEN
++c                 IF (X(JX).NE.ZERO) THEN
+                       TEMP = ALPHA*X(JX)
+                       IY = KY
+                       K = KUP1 - J
+@@ -266,7 +266,7 @@
+                           Y(IY) = Y(IY) + TEMP*A(K+I,J)
+                           IY = IY + INCY
+    70                 CONTINUE
+-                  END IF
++c                 END IF
+                   JX = JX + INCX
+                   IF (J.GT.KU) KY = KY + INCY
+    80         CONTINUE
+--- lapack-3.2.2/BLAS/SRC/zgeru.f.orig 2009-01-02 22:57:02.000000000 +0100
++++ lapack-3.2.2/BLAS/SRC/zgeru.f      2010-10-19 09:41:25.835741043 +0200
+@@ -128,12 +128,12 @@
+       END IF
+       IF (INCX.EQ.1) THEN
+           DO 20 J = 1,N
+-              IF (Y(JY).NE.ZERO) THEN
++c             IF (Y(JY).NE.ZERO) THEN
+                   TEMP = ALPHA*Y(JY)
+                   DO 10 I = 1,M
+                       A(I,J) = A(I,J) + X(I)*TEMP
+    10             CONTINUE
+-              END IF
++c             END IF
+               JY = JY + INCY
+    20     CONTINUE
+       ELSE
+@@ -143,14 +143,14 @@
+               KX = 1 - (M-1)*INCX
+           END IF
+           DO 40 J = 1,N
+-              IF (Y(JY).NE.ZERO) THEN
++c             IF (Y(JY).NE.ZERO) THEN
+                   TEMP = ALPHA*Y(JY)
+                   IX = KX
+                   DO 30 I = 1,M
+                       A(I,J) = A(I,J) + X(IX)*TEMP
+                       IX = IX + INCX
+    30             CONTINUE
+-              END IF
++c             END IF
+               JY = JY + INCY
+    40     CONTINUE
+       END IF
+--- lapack-3.2.2/BLAS/SRC/zher.f.orig  2009-01-02 22:57:02.000000000 +0100
++++ lapack-3.2.2/BLAS/SRC/zher.f       2010-10-19 09:43:12.851741882 +0200
+@@ -148,20 +148,20 @@
+ *
+           IF (INCX.EQ.1) THEN
+               DO 20 J = 1,N
+-                  IF (X(J).NE.ZERO) THEN
++c                 IF (X(J).NE.ZERO) THEN
+                       TEMP = ALPHA*DCONJG(X(J))
+                       DO 10 I = 1,J - 1
+                           A(I,J) = A(I,J) + X(I)*TEMP
+    10                 CONTINUE
+                       A(J,J) = DBLE(A(J,J)) + DBLE(X(J)*TEMP)
+-                  ELSE
+-                      A(J,J) = DBLE(A(J,J))
+-                  END IF
++c                 ELSE
++c                     A(J,J) = DBLE(A(J,J))
++c                 END IF
+    20         CONTINUE
+           ELSE
+               JX = KX
+               DO 40 J = 1,N
+-                  IF (X(JX).NE.ZERO) THEN
++c                 IF (X(JX).NE.ZERO) THEN
+                       TEMP = ALPHA*DCONJG(X(JX))
+                       IX = KX
+                       DO 30 I = 1,J - 1
+@@ -169,9 +169,9 @@
+                           IX = IX + INCX
+    30                 CONTINUE
+                       A(J,J) = DBLE(A(J,J)) + DBLE(X(JX)*TEMP)
+-                  ELSE
+-                      A(J,J) = DBLE(A(J,J))
+-                  END IF
++c                 ELSE
++c                     A(J,J) = DBLE(A(J,J))
++c                 END IF
+                   JX = JX + INCX
+    40         CONTINUE
+           END IF
+@@ -181,20 +181,20 @@
+ *
+           IF (INCX.EQ.1) THEN
+               DO 60 J = 1,N
+-                  IF (X(J).NE.ZERO) THEN
++c                 IF (X(J).NE.ZERO) THEN
+                       TEMP = ALPHA*DCONJG(X(J))
+                       A(J,J) = DBLE(A(J,J)) + DBLE(TEMP*X(J))
+                       DO 50 I = J + 1,N
+                           A(I,J) = A(I,J) + X(I)*TEMP
+    50                 CONTINUE
+-                  ELSE
+-                      A(J,J) = DBLE(A(J,J))
+-                  END IF
++c                 ELSE
++c                     A(J,J) = DBLE(A(J,J))
++c                 END IF
+    60         CONTINUE
+           ELSE
+               JX = KX
+               DO 80 J = 1,N
+-                  IF (X(JX).NE.ZERO) THEN
++c                 IF (X(JX).NE.ZERO) THEN
+                       TEMP = ALPHA*DCONJG(X(JX))
+                       A(J,J) = DBLE(A(J,J)) + DBLE(TEMP*X(JX))
+                       IX = JX
+@@ -202,9 +202,9 @@
+                           IX = IX + INCX
+                           A(I,J) = A(I,J) + X(IX)*TEMP
+    70                 CONTINUE
+-                  ELSE
+-                      A(J,J) = DBLE(A(J,J))
+-                  END IF
++c                 ELSE
++c                     A(J,J) = DBLE(A(J,J))
++c                 END IF
+                   JX = JX + INCX
+    80         CONTINUE
+           END IF
+--- lapack-3.2.2/BLAS/SRC/zhpr.f.orig  2009-01-02 22:57:02.000000000 +0100
++++ lapack-3.2.2/BLAS/SRC/zhpr.f       2010-10-19 09:44:30.431739367 +0200
+@@ -143,7 +143,7 @@
+ *
+           IF (INCX.EQ.1) THEN
+               DO 20 J = 1,N
+-                  IF (X(J).NE.ZERO) THEN
++c                 IF (X(J).NE.ZERO) THEN
+                       TEMP = ALPHA*DCONJG(X(J))
+                       K = KK
+                       DO 10 I = 1,J - 1
+@@ -151,15 +151,15 @@
+                           K = K + 1
+    10                 CONTINUE
+                       AP(KK+J-1) = DBLE(AP(KK+J-1)) + DBLE(X(J)*TEMP)
+-                  ELSE
+-                      AP(KK+J-1) = DBLE(AP(KK+J-1))
+-                  END IF
++c                 ELSE
++c                     AP(KK+J-1) = DBLE(AP(KK+J-1))
++c                 END IF
+                   KK = KK + J
+    20         CONTINUE
+           ELSE
+               JX = KX
+               DO 40 J = 1,N
+-                  IF (X(JX).NE.ZERO) THEN
++c                 IF (X(JX).NE.ZERO) THEN
+                       TEMP = ALPHA*DCONJG(X(JX))
+                       IX = KX
+                       DO 30 K = KK,KK + J - 2
+@@ -167,9 +167,9 @@
+                           IX = IX + INCX
+    30                 CONTINUE
+                       AP(KK+J-1) = DBLE(AP(KK+J-1)) + DBLE(X(JX)*TEMP)
+-                  ELSE
+-                      AP(KK+J-1) = DBLE(AP(KK+J-1))
+-                  END IF
++c                 ELSE
++c                     AP(KK+J-1) = DBLE(AP(KK+J-1))
++c                 END IF
+                   JX = JX + INCX
+                   KK = KK + J
+    40         CONTINUE
+@@ -180,7 +180,7 @@
+ *
+           IF (INCX.EQ.1) THEN
+               DO 60 J = 1,N
+-                  IF (X(J).NE.ZERO) THEN
++c                 IF (X(J).NE.ZERO) THEN
+                       TEMP = ALPHA*DCONJG(X(J))
+                       AP(KK) = DBLE(AP(KK)) + DBLE(TEMP*X(J))
+                       K = KK + 1
+@@ -188,15 +188,15 @@
+                           AP(K) = AP(K) + X(I)*TEMP
+                           K = K + 1
+    50                 CONTINUE
+-                  ELSE
+-                      AP(KK) = DBLE(AP(KK))
+-                  END IF
++c                 ELSE
++c                     AP(KK) = DBLE(AP(KK))
++c                 END IF
+                   KK = KK + N - J + 1
+    60         CONTINUE
+           ELSE
+               JX = KX
+               DO 80 J = 1,N
+-                  IF (X(JX).NE.ZERO) THEN
++c                 IF (X(JX).NE.ZERO) THEN
+                       TEMP = ALPHA*DCONJG(X(JX))
+                       AP(KK) = DBLE(AP(KK)) + DBLE(TEMP*X(JX))
+                       IX = JX
+@@ -204,9 +204,9 @@
+                           IX = IX + INCX
+                           AP(K) = AP(K) + X(IX)*TEMP
+    70                 CONTINUE
+-                  ELSE
+-                      AP(KK) = DBLE(AP(KK))
+-                  END IF
++c                 ELSE
++c                     AP(KK) = DBLE(AP(KK))
++c                 END IF
+                   JX = JX + INCX
+                   KK = KK + N - J + 1
+    80         CONTINUE
+--- lapack-3.2.2/BLAS/SRC/zhpr2.f.orig 2009-01-02 22:57:02.000000000 +0100
++++ lapack-3.2.2/BLAS/SRC/zhpr2.f      2010-10-19 09:51:54.631741882 +0200
+@@ -166,7 +166,7 @@
+ *
+           IF ((INCX.EQ.1) .AND. (INCY.EQ.1)) THEN
+               DO 20 J = 1,N
+-                  IF ((X(J).NE.ZERO) .OR. (Y(J).NE.ZERO)) THEN
++c                 IF ((X(J).NE.ZERO) .OR. (Y(J).NE.ZERO)) THEN
+                       TEMP1 = ALPHA*DCONJG(Y(J))
+                       TEMP2 = DCONJG(ALPHA*X(J))
+                       K = KK
+@@ -176,14 +176,14 @@
+    10                 CONTINUE
+                       AP(KK+J-1) = DBLE(AP(KK+J-1)) +
+      +                             DBLE(X(J)*TEMP1+Y(J)*TEMP2)
+-                  ELSE
+-                      AP(KK+J-1) = DBLE(AP(KK+J-1))
+-                  END IF
++c                 ELSE
++c                     AP(KK+J-1) = DBLE(AP(KK+J-1))
++c                 END IF
+                   KK = KK + J
+    20         CONTINUE
+           ELSE
+               DO 40 J = 1,N
+-                  IF ((X(JX).NE.ZERO) .OR. (Y(JY).NE.ZERO)) THEN
++c                 IF ((X(JX).NE.ZERO) .OR. (Y(JY).NE.ZERO)) THEN
+                       TEMP1 = ALPHA*DCONJG(Y(JY))
+                       TEMP2 = DCONJG(ALPHA*X(JX))
+                       IX = KX
+@@ -195,9 +195,9 @@
+    30                 CONTINUE
+                       AP(KK+J-1) = DBLE(AP(KK+J-1)) +
+      +                             DBLE(X(JX)*TEMP1+Y(JY)*TEMP2)
+-                  ELSE
+-                      AP(KK+J-1) = DBLE(AP(KK+J-1))
+-                  END IF
++c                 ELSE
++c                     AP(KK+J-1) = DBLE(AP(KK+J-1))
++c                 END IF
+                   JX = JX + INCX
+                   JY = JY + INCY
+                   KK = KK + J
+@@ -209,7 +209,7 @@
+ *
+           IF ((INCX.EQ.1) .AND. (INCY.EQ.1)) THEN
+               DO 60 J = 1,N
+-                  IF ((X(J).NE.ZERO) .OR. (Y(J).NE.ZERO)) THEN
++c                 IF ((X(J).NE.ZERO) .OR. (Y(J).NE.ZERO)) THEN
+                       TEMP1 = ALPHA*DCONJG(Y(J))
+                       TEMP2 = DCONJG(ALPHA*X(J))
+                       AP(KK) = DBLE(AP(KK)) +
+@@ -219,14 +219,14 @@
+                           AP(K) = AP(K) + X(I)*TEMP1 + Y(I)*TEMP2
+                           K = K + 1
+    50                 CONTINUE
+-                  ELSE
+-                      AP(KK) = DBLE(AP(KK))
+-                  END IF
++c                 ELSE
++c                     AP(KK) = DBLE(AP(KK))
++c                 END IF
+                   KK = KK + N - J + 1
+    60         CONTINUE
+           ELSE
+               DO 80 J = 1,N
+-                  IF ((X(JX).NE.ZERO) .OR. (Y(JY).NE.ZERO)) THEN
++c                 IF ((X(JX).NE.ZERO) .OR. (Y(JY).NE.ZERO)) THEN
+                       TEMP1 = ALPHA*DCONJG(Y(JY))
+                       TEMP2 = DCONJG(ALPHA*X(JX))
+                       AP(KK) = DBLE(AP(KK)) +
+@@ -238,9 +238,9 @@
+                           IY = IY + INCY
+                           AP(K) = AP(K) + X(IX)*TEMP1 + Y(IY)*TEMP2
+    70                 CONTINUE
+-                  ELSE
+-                      AP(KK) = DBLE(AP(KK))
+-                  END IF
++c                 ELSE
++c                     AP(KK) = DBLE(AP(KK))
++c                 END IF
+                   JX = JX + INCX
+                   JY = JY + INCY
+                   KK = KK + N - J + 1
+--- lapack-3.2.2/BLAS/SRC/zsyr2k.f.orig        2009-01-02 22:57:02.000000000 +0100
++++ lapack-3.2.2/BLAS/SRC/zsyr2k.f     2010-10-19 21:48:39.731741882 +0200
+@@ -245,14 +245,14 @@
+   100                 CONTINUE
+                   END IF
+                   DO 120 L = 1,K
+-                      IF ((A(J,L).NE.ZERO) .OR. (B(J,L).NE.ZERO)) THEN
++c                     IF ((A(J,L).NE.ZERO) .OR. (B(J,L).NE.ZERO)) THEN
+                           TEMP1 = ALPHA*B(J,L)
+                           TEMP2 = ALPHA*A(J,L)
+                           DO 110 I = 1,J
+                               C(I,J) = C(I,J) + A(I,L)*TEMP1 +
+      +                                 B(I,L)*TEMP2
+   110                     CONTINUE
+-                      END IF
++c                     END IF
+   120             CONTINUE
+   130         CONTINUE
+           ELSE
+@@ -267,14 +267,14 @@
+   150                 CONTINUE
+                   END IF
+                   DO 170 L = 1,K
+-                      IF ((A(J,L).NE.ZERO) .OR. (B(J,L).NE.ZERO)) THEN
++c                     IF ((A(J,L).NE.ZERO) .OR. (B(J,L).NE.ZERO)) THEN
+                           TEMP1 = ALPHA*B(J,L)
+                           TEMP2 = ALPHA*A(J,L)
+                           DO 160 I = J,N
+                               C(I,J) = C(I,J) + A(I,L)*TEMP1 +
+      +                                 B(I,L)*TEMP2
+   160                     CONTINUE
+-                      END IF
++c                     END IF
+   170             CONTINUE
+   180         CONTINUE
+           END IF
+--- lapack-3.2.2/BLAS/SRC/zsyrk.f.orig 2009-01-02 22:57:02.000000000 +0100
++++ lapack-3.2.2/BLAS/SRC/zsyrk.f      2010-10-19 21:49:12.923740205 +0200
+@@ -226,12 +226,12 @@
+   100                 CONTINUE
+                   END IF
+                   DO 120 L = 1,K
+-                      IF (A(J,L).NE.ZERO) THEN
++c                     IF (A(J,L).NE.ZERO) THEN
+                           TEMP = ALPHA*A(J,L)
+                           DO 110 I = 1,J
+                               C(I,J) = C(I,J) + TEMP*A(I,L)
+   110                     CONTINUE
+-                      END IF
++c                     END IF
+   120             CONTINUE
+   130         CONTINUE
+           ELSE
+@@ -246,12 +246,12 @@
+   150                 CONTINUE
+                   END IF
+                   DO 170 L = 1,K
+-                      IF (A(J,L).NE.ZERO) THEN
++c                     IF (A(J,L).NE.ZERO) THEN
+                           TEMP = ALPHA*A(J,L)
+                           DO 160 I = J,N
+                               C(I,J) = C(I,J) + TEMP*A(I,L)
+   160                     CONTINUE
+-                      END IF
++c                     END IF
+   170             CONTINUE
+   180         CONTINUE
+           END IF
+--- lapack-3.2.2/BLAS/SRC/ztbmv.f.orig 2009-01-02 22:57:02.000000000 +0100
++++ lapack-3.2.2/BLAS/SRC/ztbmv.f      2010-10-19 21:50:19.351741882 +0200
+@@ -209,19 +209,19 @@
+               KPLUS1 = K + 1
+               IF (INCX.EQ.1) THEN
+                   DO 20 J = 1,N
+-                      IF (X(J).NE.ZERO) THEN
++c                     IF (X(J).NE.ZERO) THEN
+                           TEMP = X(J)
+                           L = KPLUS1 - J
+                           DO 10 I = MAX(1,J-K),J - 1
+                               X(I) = X(I) + TEMP*A(L+I,J)
+    10                     CONTINUE
+                           IF (NOUNIT) X(J) = X(J)*A(KPLUS1,J)
+-                      END IF
++c                     END IF
+    20             CONTINUE
+               ELSE
+                   JX = KX
+                   DO 40 J = 1,N
+-                      IF (X(JX).NE.ZERO) THEN
++c                     IF (X(JX).NE.ZERO) THEN
+                           TEMP = X(JX)
+                           IX = KX
+                           L = KPLUS1 - J
+@@ -230,7 +230,7 @@
+                               IX = IX + INCX
+    30                     CONTINUE
+                           IF (NOUNIT) X(JX) = X(JX)*A(KPLUS1,J)
+-                      END IF
++c                     END IF
+                       JX = JX + INCX
+                       IF (J.GT.K) KX = KX + INCX
+    40             CONTINUE
+@@ -238,20 +238,20 @@
+           ELSE
+               IF (INCX.EQ.1) THEN
+                   DO 60 J = N,1,-1
+-                      IF (X(J).NE.ZERO) THEN
++c                     IF (X(J).NE.ZERO) THEN
+                           TEMP = X(J)
+                           L = 1 - J
+                           DO 50 I = MIN(N,J+K),J + 1,-1
+                               X(I) = X(I) + TEMP*A(L+I,J)
+    50                     CONTINUE
+                           IF (NOUNIT) X(J) = X(J)*A(1,J)
+-                      END IF
++c                     END IF
+    60             CONTINUE
+               ELSE
+                   KX = KX + (N-1)*INCX
+                   JX = KX
+                   DO 80 J = N,1,-1
+-                      IF (X(JX).NE.ZERO) THEN
++c                     IF (X(JX).NE.ZERO) THEN
+                           TEMP = X(JX)
+                           IX = KX
+                           L = 1 - J
+@@ -260,7 +260,7 @@
+                               IX = IX - INCX
+    70                     CONTINUE
+                           IF (NOUNIT) X(JX) = X(JX)*A(1,J)
+-                      END IF
++c                     END IF
+                       JX = JX - INCX
+                       IF ((N-J).GE.K) KX = KX - INCX
+    80             CONTINUE
+--- lapack-3.2.2/BLAS/SRC/ztbsv.f.orig 2009-01-02 22:57:02.000000000 +0100
++++ lapack-3.2.2/BLAS/SRC/ztbsv.f      2010-10-19 21:51:36.671745234 +0200
+@@ -213,21 +213,21 @@
+               KPLUS1 = K + 1
+               IF (INCX.EQ.1) THEN
+                   DO 20 J = N,1,-1
+-                      IF (X(J).NE.ZERO) THEN
++c                     IF (X(J).NE.ZERO) THEN
+                           L = KPLUS1 - J
+                           IF (NOUNIT) X(J) = X(J)/A(KPLUS1,J)
+                           TEMP = X(J)
+                           DO 10 I = J - 1,MAX(1,J-K),-1
+                               X(I) = X(I) - TEMP*A(L+I,J)
+    10                     CONTINUE
+-                      END IF
++c                     END IF
+    20             CONTINUE
+               ELSE
+                   KX = KX + (N-1)*INCX
+                   JX = KX
+                   DO 40 J = N,1,-1
+                       KX = KX - INCX
+-                      IF (X(JX).NE.ZERO) THEN
++c                     IF (X(JX).NE.ZERO) THEN
+                           IX = KX
+                           L = KPLUS1 - J
+                           IF (NOUNIT) X(JX) = X(JX)/A(KPLUS1,J)
+@@ -236,27 +236,27 @@
+                               X(IX) = X(IX) - TEMP*A(L+I,J)
+                               IX = IX - INCX
+    30                     CONTINUE
+-                      END IF
++c                     END IF
+                       JX = JX - INCX
+    40             CONTINUE
+               END IF
+           ELSE
+               IF (INCX.EQ.1) THEN
+                   DO 60 J = 1,N
+-                      IF (X(J).NE.ZERO) THEN
++c                     IF (X(J).NE.ZERO) THEN
+                           L = 1 - J
+                           IF (NOUNIT) X(J) = X(J)/A(1,J)
+                           TEMP = X(J)
+                           DO 50 I = J + 1,MIN(N,J+K)
+                               X(I) = X(I) - TEMP*A(L+I,J)
+    50                     CONTINUE
+-                      END IF
++c                     END IF
+    60             CONTINUE
+               ELSE
+                   JX = KX
+                   DO 80 J = 1,N
+                       KX = KX + INCX
+-                      IF (X(JX).NE.ZERO) THEN
++c                     IF (X(JX).NE.ZERO) THEN
+                           IX = KX
+                           L = 1 - J
+                           IF (NOUNIT) X(JX) = X(JX)/A(1,J)
+@@ -265,7 +265,7 @@
+                               X(IX) = X(IX) - TEMP*A(L+I,J)
+                               IX = IX + INCX
+    70                     CONTINUE
+-                      END IF
++c                     END IF
+                       JX = JX + INCX
+    80             CONTINUE
+               END IF
+--- lapack-3.2.2/BLAS/SRC/ztpmv.f.orig 2009-01-02 22:57:02.000000000 +0100
++++ lapack-3.2.2/BLAS/SRC/ztpmv.f      2010-10-19 22:55:50.851739367 +0200
+@@ -165,7 +165,7 @@
+               KK = 1
+               IF (INCX.EQ.1) THEN
+                   DO 20 J = 1,N
+-                      IF (X(J).NE.ZERO) THEN
++c                     IF (X(J).NE.ZERO) THEN
+                           TEMP = X(J)
+                           K = KK
+                           DO 10 I = 1,J - 1
+@@ -173,13 +173,13 @@
+                               K = K + 1
+    10                     CONTINUE
+                           IF (NOUNIT) X(J) = X(J)*AP(KK+J-1)
+-                      END IF
++c                     END IF
+                       KK = KK + J
+    20             CONTINUE
+               ELSE
+                   JX = KX
+                   DO 40 J = 1,N
+-                      IF (X(JX).NE.ZERO) THEN
++c                     IF (X(JX).NE.ZERO) THEN
+                           TEMP = X(JX)
+                           IX = KX
+                           DO 30 K = KK,KK + J - 2
+@@ -187,7 +187,7 @@
+                               IX = IX + INCX
+    30                     CONTINUE
+                           IF (NOUNIT) X(JX) = X(JX)*AP(KK+J-1)
+-                      END IF
++c                     END IF
+                       JX = JX + INCX
+                       KK = KK + J
+    40             CONTINUE
+@@ -196,7 +196,7 @@
+               KK = (N* (N+1))/2
+               IF (INCX.EQ.1) THEN
+                   DO 60 J = N,1,-1
+-                      IF (X(J).NE.ZERO) THEN
++c                     IF (X(J).NE.ZERO) THEN
+                           TEMP = X(J)
+                           K = KK
+                           DO 50 I = N,J + 1,-1
+@@ -204,14 +204,14 @@
+                               K = K - 1
+    50                     CONTINUE
+                           IF (NOUNIT) X(J) = X(J)*AP(KK-N+J)
+-                      END IF
++c                     END IF
+                       KK = KK - (N-J+1)
+    60             CONTINUE
+               ELSE
+                   KX = KX + (N-1)*INCX
+                   JX = KX
+                   DO 80 J = N,1,-1
+-                      IF (X(JX).NE.ZERO) THEN
++c                     IF (X(JX).NE.ZERO) THEN
+                           TEMP = X(JX)
+                           IX = KX
+                           DO 70 K = KK,KK - (N- (J+1)),-1
+@@ -219,7 +219,7 @@
+                               IX = IX - INCX
+    70                     CONTINUE
+                           IF (NOUNIT) X(JX) = X(JX)*AP(KK-N+J)
+-                      END IF
++c                     END IF
+                       JX = JX - INCX
+                       KK = KK - (N-J+1)
+    80             CONTINUE
+--- lapack-3.2.2/BLAS/SRC/ztpsv.f.orig 2009-01-02 22:57:02.000000000 +0100
++++ lapack-3.2.2/BLAS/SRC/ztpsv.f      2010-10-19 22:57:19.063744396 +0200
+@@ -168,7 +168,7 @@
+               KK = (N* (N+1))/2
+               IF (INCX.EQ.1) THEN
+                   DO 20 J = N,1,-1
+-                      IF (X(J).NE.ZERO) THEN
++c                     IF (X(J).NE.ZERO) THEN
+                           IF (NOUNIT) X(J) = X(J)/AP(KK)
+                           TEMP = X(J)
+                           K = KK - 1
+@@ -176,13 +176,13 @@
+                               X(I) = X(I) - TEMP*AP(K)
+                               K = K - 1
+    10                     CONTINUE
+-                      END IF
++c                     END IF
+                       KK = KK - J
+    20             CONTINUE
+               ELSE
+                   JX = KX + (N-1)*INCX
+                   DO 40 J = N,1,-1
+-                      IF (X(JX).NE.ZERO) THEN
++c                     IF (X(JX).NE.ZERO) THEN
+                           IF (NOUNIT) X(JX) = X(JX)/AP(KK)
+                           TEMP = X(JX)
+                           IX = JX
+@@ -190,7 +190,7 @@
+                               IX = IX - INCX
+                               X(IX) = X(IX) - TEMP*AP(K)
+    30                     CONTINUE
+-                      END IF
++c                     END IF
+                       JX = JX - INCX
+                       KK = KK - J
+    40             CONTINUE
+@@ -199,7 +199,7 @@
+               KK = 1
+               IF (INCX.EQ.1) THEN
+                   DO 60 J = 1,N
+-                      IF (X(J).NE.ZERO) THEN
++c                     IF (X(J).NE.ZERO) THEN
+                           IF (NOUNIT) X(J) = X(J)/AP(KK)
+                           TEMP = X(J)
+                           K = KK + 1
+@@ -207,13 +207,13 @@
+                               X(I) = X(I) - TEMP*AP(K)
+                               K = K + 1
+    50                     CONTINUE
+-                      END IF
++c                     END IF
+                       KK = KK + (N-J+1)
+    60             CONTINUE
+               ELSE
+                   JX = KX
+                   DO 80 J = 1,N
+-                      IF (X(JX).NE.ZERO) THEN
++c                     IF (X(JX).NE.ZERO) THEN
+                           IF (NOUNIT) X(JX) = X(JX)/AP(KK)
+                           TEMP = X(JX)
+                           IX = JX
+@@ -221,7 +221,7 @@
+                               IX = IX + INCX
+                               X(IX) = X(IX) - TEMP*AP(K)
+    70                     CONTINUE
+-                      END IF
++c                     END IF
+                       JX = JX + INCX
+                       KK = KK + (N-J+1)
+    80             CONTINUE
+--- lapack-3.2.2/BLAS/SRC/zgemm.f.orig 2009-01-02 22:57:02.000000000 +0100
++++ lapack-3.2.2/BLAS/SRC/zgemm.f      2010-10-19 22:58:40.155741882 +0200
+@@ -245,12 +245,12 @@
+    60                 CONTINUE
+                   END IF
+                   DO 80 L = 1,K
+-                      IF (B(L,J).NE.ZERO) THEN
++c                     IF (B(L,J).NE.ZERO) THEN
+                           TEMP = ALPHA*B(L,J)
+                           DO 70 I = 1,M
+                               C(I,J) = C(I,J) + TEMP*A(I,L)
+    70                     CONTINUE
+-                      END IF
++c                     END IF
+    80             CONTINUE
+    90         CONTINUE
+           ELSE IF (CONJA) THEN
+@@ -304,12 +304,12 @@
+   170                 CONTINUE
+                   END IF
+                   DO 190 L = 1,K
+-                      IF (B(J,L).NE.ZERO) THEN
++c                     IF (B(J,L).NE.ZERO) THEN
+                           TEMP = ALPHA*DCONJG(B(J,L))
+                           DO 180 I = 1,M
+                               C(I,J) = C(I,J) + TEMP*A(I,L)
+   180                     CONTINUE
+-                      END IF
++c                     END IF
+   190             CONTINUE
+   200         CONTINUE
+           ELSE
+@@ -327,12 +327,12 @@
+   220                 CONTINUE
+                   END IF
+                   DO 240 L = 1,K
+-                      IF (B(J,L).NE.ZERO) THEN
++c                     IF (B(J,L).NE.ZERO) THEN
+                           TEMP = ALPHA*B(J,L)
+                           DO 230 I = 1,M
+                               C(I,J) = C(I,J) + TEMP*A(I,L)
+   230                     CONTINUE
+-                      END IF
++c                     END IF
+   240             CONTINUE
+   250         CONTINUE
+           END IF
index f611aa2189dcbb80e20cbd60eba59f97f77036cc..c9674c876dc5b698080bbef63c6dd923a790bb11 100644 (file)
@@ -3,7 +3,7 @@ Summary(pl.UTF-8):      Biblioteki numeryczne LAPACK do algebry liniowej
 Name:          lapack
 Version:       3.2.2
 %define        man_ver 3.2.0
-Release:       1
+Release:       2
 License:       freely distributable
 Group:         Libraries
 Source0:       http://www.netlib.org/lapack/%{name}-%{version}.tgz
@@ -11,6 +11,7 @@ Source0:      http://www.netlib.org/lapack/%{name}-%{version}.tgz
 Source1:       http://www.netlib.org/lapack/manpages-%{man_ver}.tgz
 # Source1-md5: 145007cab915504caec382289462a166
 Patch0:                %{name}-automake_support.patch
+Patch1:                blas-nan.patch
 URL:           http://www.netlib.org/lapack/
 BuildRequires: autoconf
 BuildRequires: automake
@@ -123,6 +124,7 @@ Biblioteki statyczne BLAS.
 %prep
 %setup -q -a1
 %patch0 -p1
+%patch1 -p1
 mv -f lapack-%{man_ver}/manpages .
 # directory INSTALL conflicts with file INSTALL needed by automake
 mv -f INSTALL INSTALLSRC
This page took 0.10294 seconds and 4 git commands to generate.