[lapack/f20] fix issues with BLAS found by R

Tom Callaway spot at fedoraproject.org
Mon Jul 7 17:02:25 UTC 2014


commit 02594f02997be720a0076ab1e580da9b8f79f6ea
Author: Tom Callaway <spot at fedoraproject.org>
Date:   Mon Jul 7 13:02:35 2014 -0400

    fix issues with BLAS found by R

 lapack-3.4.2-R-blas-fixes.patch |   99 +++++++++++++++++++++++++++++++++++++++
 lapack.spec                     |    7 ++-
 2 files changed, 105 insertions(+), 1 deletions(-)
---
diff --git a/lapack-3.4.2-R-blas-fixes.patch b/lapack-3.4.2-R-blas-fixes.patch
new file mode 100644
index 0000000..178142d
--- /dev/null
+++ b/lapack-3.4.2-R-blas-fixes.patch
@@ -0,0 +1,99 @@
+diff -up lapack-3.5.0/BLAS/SRC/dgbmv.f.R lapack-3.5.0/BLAS/SRC/dgbmv.f
+--- lapack-3.5.0/BLAS/SRC/dgbmv.f.R	2011-11-03 16:32:56.000000000 -0400
++++ lapack-3.5.0/BLAS/SRC/dgbmv.f	2014-07-07 11:50:48.257175853 -0400
+@@ -312,18 +312,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
+@@ -331,7 +331,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
+diff -up lapack-3.5.0/BLAS/SRC/dgemm.f.R lapack-3.5.0/BLAS/SRC/dgemm.f
+--- lapack-3.5.0/BLAS/SRC/dgemm.f.R	2011-11-03 16:32:56.000000000 -0400
++++ lapack-3.5.0/BLAS/SRC/dgemm.f	2014-07-07 11:50:48.257175853 -0400
+@@ -311,12 +311,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
+@@ -353,12 +353,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
+diff -up lapack-3.5.0/BLAS/SRC/dgemv.f.R lapack-3.5.0/BLAS/SRC/dgemv.f
+--- lapack-3.5.0/BLAS/SRC/dgemv.f.R	2011-11-03 16:32:56.000000000 -0400
++++ lapack-3.5.0/BLAS/SRC/dgemv.f	2014-07-07 11:50:48.257175853 -0400
+@@ -278,24 +278,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
diff --git a/lapack.spec b/lapack.spec
index e770d51..459eb14 100644
--- a/lapack.spec
+++ b/lapack.spec
@@ -10,7 +10,7 @@
 Summary: Numerical linear algebra package libraries
 Name: lapack
 Version: %{mediumver}.2
-Release: 6%{?dist}
+Release: 7%{?dist}
 License: BSD
 Group: Development/Libraries
 URL: http://www.netlib.org/lapack/
@@ -30,6 +30,7 @@ Patch4: lapack-3.4.1-lapacke-shared.patch
 Patch5: lapack-3.4.1-lapacke-disable-testing-functions.patch
 Patch6: lapack-3.4.2-lapacke-matgenobj.patch
 Patch7: lapack-3.4.2-lapacke-tmglib.patch
+Patch8: lapack-3.4.2-R-blas-fixes.patch
 BuildRequires: gcc-gfortran
 
 %description
@@ -158,6 +159,7 @@ BLAS static libraries (64bit INTEGER).
 %patch5 -p1 -b .disable-functions
 %patch6 -p1 -b .matgenobj
 %patch7 -p1 -b .tmglib
+%patch8 -p1 -b .R
 
 mkdir manpages
 mv man/ manpages/
@@ -455,6 +457,9 @@ ln -sf libblas64.so.%{version} libblas64.so.%{mediumver}
 %endif
 
 %changelog
+* Thu Jul  7 2014 Tom Callaway <spot at fedoraproject.org> - 3.4.2-7
+- fix issues with BLAS found by R
+
 * Thu Jun 19 2014 Tom Callaway <spot at fedoraproject.org> - 3.4.2-6
 - compile in tmglib object files, not static lib
 


More information about the scm-commits mailing list