GNU bug report logs - #64107
[PATCH] gnu: arpack-ng: Update to 3.9.0.

Previous Next

Package: guix-patches;

Reported by: Ludovic Courtès <ludo <at> gnu.org>

Date: Fri, 16 Jun 2023 13:28:01 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 64107 in the body.
You can then email your comments to 64107 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to andreas <at> enge.fr, efraim <at> flashner.co.il, bavier <at> posteo.net, guix-patches <at> gnu.org:
bug#64107; Package guix-patches. (Fri, 16 Jun 2023 13:28:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ludovic Courtès <ludo <at> gnu.org>:
New bug report received and forwarded. Copy sent to andreas <at> enge.fr, efraim <at> flashner.co.il, bavier <at> posteo.net, guix-patches <at> gnu.org. (Fri, 16 Jun 2023 13:28:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: guix-patches <at> gnu.org
Cc: Ludovic Courtès <ludovic.courtes <at> inria.fr>
Subject: [PATCH] gnu: arpack-ng: Update to 3.9.0.
Date: Fri, 16 Jun 2023 15:27:45 +0200
From: Ludovic Courtès <ludovic.courtes <at> inria.fr>

* gnu/packages/maths.scm (arpack-ng): Update to 3.9.0.
[build-system]: Switch to CMAKE-BUILD-SYSTEM.
[native-inputs]: Remove AUTOCONF, AUTOMAKE, and LIBTOOL.
(arpack-ng-openmpi)[inputs]: Use 'modify-inputs'.
[arguments]: Use gexps.
---
 gnu/packages/maths.scm | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index f5a2181905..e1f9834e65 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -973,7 +973,7 @@ (define-public vinci
 (define-public arpack-ng
   (package
     (name "arpack-ng")
-    (version "3.8.0")
+    (version "3.9.0")
     (home-page "https://github.com/opencollab/arpack-ng")
     (source (origin
               (method git-fetch)
@@ -981,10 +981,10 @@ (define-public arpack-ng
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0l7as5z6xvbxly8alam9s4kws70952qq35a6vkljzayi4b9gbklx"))))
-    (build-system gnu-build-system)
+                "09smxilyn8v9xs3kpx3nlj2s7ql3v8z40mpc09kccbb6smyd35iv"))))
+    (build-system cmake-build-system)
     (native-inputs
-     (list autoconf automake libtool pkg-config))
+     (list pkg-config))
     (inputs
      (list eigen lapack gfortran))
     (synopsis "Fortran subroutines for solving eigenvalue problems")
@@ -998,16 +998,16 @@ (define-public arpack-ng-openmpi
   (package (inherit arpack-ng)
     (name "arpack-ng-openmpi")
     (inputs
-     `(("mpi" ,openmpi)
-       ,@(package-inputs arpack-ng)))
+     (modify-inputs (package-inputs arpack-ng)
+       (prepend openmpi)))
     (arguments
      (substitute-keyword-arguments (package-arguments arpack-ng)
-       ((#:configure-flags _ '())
-        ''("--enable-mpi"))
-       ((#:phases phases '%standard-phases)
-        `(modify-phases ,phases
-           (add-before 'check 'mpi-setup
-             ,%openmpi-setup)))))
+       ((#:configure-flags _ #~())
+        #~'("-DMPI=ON"))
+       ((#:phases phases #~%standard-phases)
+        #~(modify-phases #$phases
+            (add-before 'check 'mpi-setup
+              #$%openmpi-setup)))))
     (synopsis "Fortran subroutines for solving eigenvalue problems with MPI")))
 
 (define-public lapack

base-commit: 31336e9f5d68512a9c1c6826bce9f17c892a2125
-- 
2.40.1





Information forwarded to andreas <at> enge.fr, efraim <at> flashner.co.il, bavier <at> posteo.net, guix-patches <at> gnu.org:
bug#64107; Package guix-patches. (Mon, 03 Jul 2023 09:41:01 GMT) Full text and rfc822 format available.

Message #8 received at 64107 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: 64107 <at> debbugs.gnu.org
Cc: Ludovic Courtès <ludovic.courtes <at> inria.fr>
Subject: [PATCH v2] gnu: arpack-ng: Update to 3.9.0.
Date: Mon,  3 Jul 2023 11:40:29 +0200
From: Ludovic Courtès <ludovic.courtes <at> inria.fr>

* gnu/packages/maths.scm (arpack-ng): Update to 3.9.0.
[build-system]: Switch to CMAKE-BUILD-SYSTEM.
[native-inputs]: Remove AUTOCONF, AUTOMAKE, and LIBTOOL.
(arpack-ng-openmpi)[inputs]: Use 'modify-inputs'.
[arguments]: Use gexps.
---
 gnu/packages/maths.scm | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

The previous revision could not be processed
at <https://qa.guix.gnu.org/issue/64107>, so trying again...

Ludo'.

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 653e76027a..d37322c995 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -973,7 +973,7 @@ (define-public vinci
 (define-public arpack-ng
   (package
     (name "arpack-ng")
-    (version "3.8.0")
+    (version "3.9.0")
     (home-page "https://github.com/opencollab/arpack-ng")
     (source (origin
               (method git-fetch)
@@ -981,10 +981,10 @@ (define-public arpack-ng
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0l7as5z6xvbxly8alam9s4kws70952qq35a6vkljzayi4b9gbklx"))))
-    (build-system gnu-build-system)
+                "09smxilyn8v9xs3kpx3nlj2s7ql3v8z40mpc09kccbb6smyd35iv"))))
+    (build-system cmake-build-system)
     (native-inputs
-     (list autoconf automake libtool pkg-config))
+     (list pkg-config))
     (inputs
      (list eigen lapack gfortran))
     (synopsis "Fortran subroutines for solving eigenvalue problems")
@@ -998,16 +998,16 @@ (define-public arpack-ng-openmpi
   (package (inherit arpack-ng)
     (name "arpack-ng-openmpi")
     (inputs
-     `(("mpi" ,openmpi)
-       ,@(package-inputs arpack-ng)))
+     (modify-inputs (package-inputs arpack-ng)
+       (prepend openmpi)))
     (arguments
      (substitute-keyword-arguments (package-arguments arpack-ng)
-       ((#:configure-flags _ '())
-        ''("--enable-mpi"))
-       ((#:phases phases '%standard-phases)
-        `(modify-phases ,phases
-           (add-before 'check 'mpi-setup
-             ,%openmpi-setup)))))
+       ((#:configure-flags _ #~())
+        #~'("-DMPI=ON"))
+       ((#:phases phases #~%standard-phases)
+        #~(modify-phases #$phases
+            (add-before 'check 'mpi-setup
+              #$%openmpi-setup)))))
     (synopsis "Fortran subroutines for solving eigenvalue problems with MPI")))
 
 (define-public lapack

base-commit: c4a836f65d178786a5dd1f7c2d9491bb2c7482b3
-- 
2.40.1





Information forwarded to andreas <at> enge.fr, efraim <at> flashner.co.il, bavier <at> posteo.net, guix-patches <at> gnu.org:
bug#64107; Package guix-patches. (Thu, 06 Jul 2023 13:06:02 GMT) Full text and rfc822 format available.

Message #11 received at 64107 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: 64107 <at> debbugs.gnu.org
Cc: Ludovic Courtès <ludovic.courtes <at> inria.fr>
Subject: [PATCH v3] gnu: arpack-ng: Update to 3.9.0.
Date: Thu,  6 Jul 2023 15:05:09 +0200
From: Ludovic Courtès <ludovic.courtes <at> inria.fr>

* gnu/packages/maths.scm (arpack-ng): Update to 3.9.0.
[source]: Add 'patches'.
[build-system]: Switch to CMAKE-BUILD-SYSTEM.
[native-inputs]: Remove AUTOCONF, AUTOMAKE, and LIBTOOL.
(arpack-ng-openmpi)[inputs]: Use 'modify-inputs'.
[arguments]: Use gexps.
* gnu/packages/patches/arpack-ng-propagate-rng-state.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
---
 gnu/local.mk                                  |   1 +
 gnu/packages/maths.scm                        |  25 +-
 .../arpack-ng-propagate-rng-state.patch       | 523 ++++++++++++++++++
 3 files changed, 537 insertions(+), 12 deletions(-)
 create mode 100644 gnu/packages/patches/arpack-ng-propagate-rng-state.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 6470f1abd4..e7c89c83bb 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -905,6 +905,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/aoflagger-use-system-provided-pybind11.patch \
   %D%/packages/patches/apr-skip-getservbyname-test.patch	\
   %D%/packages/patches/ark-skip-xar-test.patch			\
+  %D%/packages/patches/arpack-ng-propagate-rng-state.patch	\
   %D%/packages/patches/aspell-CVE-2019-25051.patch		\
   %D%/packages/patches/aspell-default-dict-dir.patch		\
   %D%/packages/patches/ath9k-htc-firmware-binutils.patch	\
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 653e76027a..05119d2f5f 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -973,7 +973,7 @@ (define-public vinci
 (define-public arpack-ng
   (package
     (name "arpack-ng")
-    (version "3.8.0")
+    (version "3.9.0")
     (home-page "https://github.com/opencollab/arpack-ng")
     (source (origin
               (method git-fetch)
@@ -981,10 +981,11 @@ (define-public arpack-ng
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0l7as5z6xvbxly8alam9s4kws70952qq35a6vkljzayi4b9gbklx"))))
-    (build-system gnu-build-system)
+                "09smxilyn8v9xs3kpx3nlj2s7ql3v8z40mpc09kccbb6smyd35iv"))
+              (patches (search-patches "arpack-ng-propagate-rng-state.patch"))))
+    (build-system cmake-build-system)
     (native-inputs
-     (list autoconf automake libtool pkg-config))
+     (list pkg-config))
     (inputs
      (list eigen lapack gfortran))
     (synopsis "Fortran subroutines for solving eigenvalue problems")
@@ -998,16 +999,16 @@ (define-public arpack-ng-openmpi
   (package (inherit arpack-ng)
     (name "arpack-ng-openmpi")
     (inputs
-     `(("mpi" ,openmpi)
-       ,@(package-inputs arpack-ng)))
+     (modify-inputs (package-inputs arpack-ng)
+       (prepend openmpi)))
     (arguments
      (substitute-keyword-arguments (package-arguments arpack-ng)
-       ((#:configure-flags _ '())
-        ''("--enable-mpi"))
-       ((#:phases phases '%standard-phases)
-        `(modify-phases ,phases
-           (add-before 'check 'mpi-setup
-             ,%openmpi-setup)))))
+       ((#:configure-flags _ #~())
+        #~'("-DMPI=ON"))
+       ((#:phases phases #~%standard-phases)
+        #~(modify-phases #$phases
+            (add-before 'check 'mpi-setup
+              #$%openmpi-setup)))))
     (synopsis "Fortran subroutines for solving eigenvalue problems with MPI")))
 
 (define-public lapack
diff --git a/gnu/packages/patches/arpack-ng-propagate-rng-state.patch b/gnu/packages/patches/arpack-ng-propagate-rng-state.patch
new file mode 100644
index 0000000000..4466bb8e50
--- /dev/null
+++ b/gnu/packages/patches/arpack-ng-propagate-rng-state.patch
@@ -0,0 +1,523 @@
+Fix a bug that manifests while running the test suite of 'python-igraph':
+
+  https://github.com/opencollab/arpack-ng/issues/401
+  https://github.com/opencollab/arpack-ng/pull/414
+
+From d885b7be4ecdc9c1496f2d6f256f6c0d34962459 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Szabolcs=20Horva=CC=81t?= <szhorvat <at> gmail.com>
+Date: Sun, 9 Apr 2023 16:36:35 +0200
+Subject: [PATCH] fix: ensure that LAPACK RNG state is propagated
+
+ - fixes #401, #410, #411
+ - restores 'inits' variable removed in ce2e69a849da1d10dad5d6d3ec4db6120b3ecf50, ensuring that the RNG state is propagated
+ - reverts e0d67054f573da351f12a226f7c7cc65a690ef3d to ensure that seed is different on each parallel thread
+ - updates seed initialization of parallel pdgetv0/psgetv0 so that they match that of pzgetv0/pcgetv0
+---
+ PARPACK/SRC/MPI/pcgetv0.f | 48 +++++++++++++++++++++++----------------
+ PARPACK/SRC/MPI/pdgetv0.f | 40 ++++++++++++++++++++++++++------
+ PARPACK/SRC/MPI/psgetv0.f | 43 ++++++++++++++++++++++++++---------
+ PARPACK/SRC/MPI/pzgetv0.f | 48 +++++++++++++++++++++++----------------
+ SRC/cgetv0.f              | 21 ++++++++++++-----
+ SRC/dgetv0.f              | 21 ++++++++++++-----
+ SRC/sgetv0.f              | 21 ++++++++++++-----
+ SRC/zgetv0.f              | 21 ++++++++++++-----
+ 8 files changed, 183 insertions(+), 80 deletions(-)
+
+diff --git a/PARPACK/SRC/MPI/pcgetv0.f b/PARPACK/SRC/MPI/pcgetv0.f
+index 59e3d1658..24fe8a0f1 100644
+--- a/PARPACK/SRC/MPI/pcgetv0.f
++++ b/PARPACK/SRC/MPI/pcgetv0.f
+@@ -176,13 +176,13 @@ subroutine pcgetv0
+ c     | Local Scalars & Arrays |
+ c     %------------------------%
+ c
+-      logical    first, orth
++      logical    first, inits, orth
+       integer    idist, iseed(4), iter, msglvl, jj, myid, igen
+       Real
+      &           rnorm0
+       Complex
+      &           cnorm, cnorm2
+-      save       first, iseed, iter, msglvl, orth, rnorm0
++      save       first, iseed, inits, iter, msglvl, orth, rnorm0
+ c
+       Complex
+      &           cnorm_buf, buf2(1)
+@@ -203,6 +203,12 @@ subroutine pcgetv0
+      &           ccdotc
+       external   ccdotc, pscnorm2, slapy2
+ c
++c     %-----------------%
++c     | Data Statements |
++c     %-----------------%
++c
++      data       inits /.true./
++c
+ c     %-----------------------%
+ c     | Executable Statements |
+ c     %-----------------------%
+@@ -213,26 +219,30 @@ subroutine pcgetv0
+ c     | random number generator           |
+ c     %-----------------------------------%
+ c
++      if (inits) then
+ c
+-c     %-----------------------------------%
+-c     | Generate a seed on each processor |
+-c     | using process id (myid).          |
+-c     | Note: the seed must be between 1  |
+-c     | and 4095.  iseed(4) must be odd.  |
+-c     %-----------------------------------%
++c        %-----------------------------------%
++c        | Generate a seed on each processor |
++c        | using process id (myid).          |
++c        | Note: the seed must be between 1  |
++c        | and 4095.  iseed(4) must be odd.  |
++c        %-----------------------------------%
+ c
+-      call MPI_COMM_RANK(comm, myid, ierr)
+-      igen = 1000 + 2*myid + 1
+-      if (igen .gt. 4095) then
+-         write(0,*) 'Error in p_getv0: seed exceeds 4095!'
+-      end if
++         call MPI_COMM_RANK(comm, myid, ierr)
++         igen = 1000 + 2*myid + 1
++         if (igen .gt. 4095) then
++            write(0,*) 'Error in p_getv0: seed exceeds 4095!'
++         end if
++c
++         iseed(1) = igen/1000
++         igen     = mod(igen,1000)
++         iseed(2) = igen/100
++         igen     = mod(igen,100)
++         iseed(3) = igen/10
++         iseed(4) = mod(igen,10)
+ c
+-      iseed(1) = igen/1000
+-      igen     = mod(igen,1000)
+-      iseed(2) = igen/100
+-      igen     = mod(igen,100)
+-      iseed(3) = igen/10
+-      iseed(4) = 7
++         inits = .false.
++      end if
+ c
+       if (ido .eq.  0) then
+ c
+diff --git a/PARPACK/SRC/MPI/pdgetv0.f b/PARPACK/SRC/MPI/pdgetv0.f
+index 0f348b820..5a1956997 100644
+--- a/PARPACK/SRC/MPI/pdgetv0.f
++++ b/PARPACK/SRC/MPI/pdgetv0.f
+@@ -177,11 +177,11 @@ subroutine pdgetv0
+ c     | Local Scalars & Arrays |
+ c     %------------------------%
+ c
+-      logical    first, orth
+-      integer    idist, iseed(4), iter, msglvl, jj
++      logical    first, inits, orth
++      integer    idist, iseed(4), iter, msglvl, jj, myid, igen
+       Double precision
+      &           rnorm0, buf2(1)
+-      save       first, iseed, iter, msglvl, orth, rnorm0
++      save       first, iseed, inits, iter, msglvl, orth, rnorm0
+ c
+       Double precision
+      &           rnorm_buf
+@@ -206,6 +206,12 @@ subroutine pdgetv0
+ c
+       intrinsic    abs, sqrt
+ c
++c     %-----------------%
++c     | Data Statements |
++c     %-----------------%
++c
++      data       inits /.true./
++c
+ c     %-----------------------%
+ c     | Executable Statements |
+ c     %-----------------------%
+@@ -216,10 +222,30 @@ subroutine pdgetv0
+ c     | random number generator           |
+ c     %-----------------------------------%
+ c
+-      iseed(1) = 1
+-      iseed(2) = 3
+-      iseed(3) = 5
+-      iseed(4) = 7
++      if (inits) then
++c
++c        %-----------------------------------%
++c        | Generate a seed on each processor |
++c        | using process id (myid).          |
++c        | Note: the seed must be between 1  |
++c        | and 4095.  iseed(4) must be odd.  |
++c        %-----------------------------------%
++c
++         call MPI_COMM_RANK(comm, myid, ierr)
++         igen = 1000 + 2*myid + 1
++         if (igen .gt. 4095) then
++            write(0,*) 'Error in p_getv0: seed exceeds 4095!'
++         end if
++c
++         iseed(1) = igen/1000
++         igen     = mod(igen,1000)
++         iseed(2) = igen/100
++         igen     = mod(igen,100)
++         iseed(3) = igen/10
++         iseed(4) = mod(igen,10)
++c
++         inits = .false.
++      end if
+ c
+       if (ido .eq.  0) then
+ c
+diff --git a/PARPACK/SRC/MPI/psgetv0.f b/PARPACK/SRC/MPI/psgetv0.f
+index d79a513b2..078e4fa8c 100644
+--- a/PARPACK/SRC/MPI/psgetv0.f
++++ b/PARPACK/SRC/MPI/psgetv0.f
+@@ -177,11 +177,11 @@ subroutine psgetv0
+ c     | Local Scalars & Arrays |
+ c     %------------------------%
+ c
+-      logical    first, orth
+-      integer    idist, iseed(4), iter, msglvl, jj
++      logical    first, inits, orth
++      integer    idist, iseed(4), iter, msglvl, jj, myid, igen
+       Real
+      &           rnorm0
+-      save       first, iseed, iter, msglvl, orth, rnorm0
++      save       first, iseed, inits, iter, msglvl, orth, rnorm0
+ c
+       Real
+      &           rnorm_buf
+@@ -206,20 +206,41 @@ subroutine psgetv0
+ c
+       intrinsic    abs, sqrt
+ c
++c     %-----------------%
++c     | Data Statements |
++c     %-----------------%
++c
++      data       inits /.true./
++c
+ c     %-----------------------%
+ c     | Executable Statements |
+ c     %-----------------------%
+ c
+ c
+-c     %-----------------------------------%
+-c     | Initialize the seed of the LAPACK |
+-c     | random number generator           |
+-c     %-----------------------------------%
++      if (inits) then
+ c
+-      iseed(1) = 1
+-      iseed(2) = 3
+-      iseed(3) = 5
+-      iseed(4) = 7
++c        %-----------------------------------%
++c        | Generate a seed on each processor |
++c        | using process id (myid).          |
++c        | Note: the seed must be between 1  |
++c        | and 4095.  iseed(4) must be odd.  |
++c        %-----------------------------------%
++c
++         call MPI_COMM_RANK(comm, myid, ierr)
++         igen = 1000 + 2*myid + 1
++         if (igen .gt. 4095) then
++            write(0,*) 'Error in p_getv0: seed exceeds 4095!'
++         end if
++c
++         iseed(1) = igen/1000
++         igen     = mod(igen,1000)
++         iseed(2) = igen/100
++         igen     = mod(igen,100)
++         iseed(3) = igen/10
++         iseed(4) = mod(igen,10)
++c
++         inits = .false.
++      end if
+ c
+       if (ido .eq.  0) then
+ c
+diff --git a/PARPACK/SRC/MPI/pzgetv0.f b/PARPACK/SRC/MPI/pzgetv0.f
+index 731fb319f..94fb705f3 100644
+--- a/PARPACK/SRC/MPI/pzgetv0.f
++++ b/PARPACK/SRC/MPI/pzgetv0.f
+@@ -176,13 +176,13 @@ subroutine pzgetv0
+ c     | Local Scalars & Arrays |
+ c     %------------------------%
+ c
+-      logical    first, orth
++      logical    first, inits, orth
+       integer    idist, iseed(4), iter, msglvl, jj, myid, igen
+       Double precision
+      &           rnorm0
+       Complex*16
+      &           cnorm, cnorm2
+-      save       first, iseed, iter, msglvl, orth, rnorm0
++      save       first, iseed, inits, iter, msglvl, orth, rnorm0
+ c
+       Complex*16
+      &           cnorm_buf, buf2(1)
+@@ -203,6 +203,12 @@ subroutine pzgetv0
+      &           zzdotc
+       external   zzdotc , pdznorm2 , dlapy2
+ c
++c     %-----------------%
++c     | Data Statements |
++c     %-----------------%
++c
++      data       inits /.true./
++c
+ c     %-----------------------%
+ c     | Executable Statements |
+ c     %-----------------------%
+@@ -213,26 +219,30 @@ subroutine pzgetv0
+ c     | random number generator           |
+ c     %-----------------------------------%
+ c
++      if (inits) then
+ c
+-c     %-----------------------------------%
+-c     | Generate a seed on each processor |
+-c     | using process id (myid).          |
+-c     | Note: the seed must be between 1  |
+-c     | and 4095.  iseed(4) must be odd.  |
+-c     %-----------------------------------%
++c        %-----------------------------------%
++c        | Generate a seed on each processor |
++c        | using process id (myid).          |
++c        | Note: the seed must be between 1  |
++c        | and 4095.  iseed(4) must be odd.  |
++c        %-----------------------------------%
+ c
+-      call MPI_COMM_RANK(comm, myid, ierr)
+-      igen = 1000 + 2*myid + 1
+-      if (igen .gt. 4095) then
+-         write(0,*) 'Error in p_getv0: seed exceeds 4095!'
+-      end if
++         call MPI_COMM_RANK(comm, myid, ierr)
++         igen = 1000 + 2*myid + 1
++         if (igen .gt. 4095) then
++            write(0,*) 'Error in p_getv0: seed exceeds 4095!'
++         end if
++c
++         iseed(1) = igen/1000
++         igen     = mod(igen,1000)
++         iseed(2) = igen/100
++         igen     = mod(igen,100)
++         iseed(3) = igen/10
++         iseed(4) = mod(igen,10)
+ c
+-      iseed(1) = igen/1000
+-      igen     = mod(igen,1000)
+-      iseed(2) = igen/100
+-      igen     = mod(igen,100)
+-      iseed(3) = igen/10
+-      iseed(4) = 7
++         inits = .false.
++      end if
+ c
+       if (ido .eq.  0) then
+ c
+diff --git a/SRC/cgetv0.f b/SRC/cgetv0.f
+index b49e66708..c231eadcb 100644
+--- a/SRC/cgetv0.f
++++ b/SRC/cgetv0.f
+@@ -156,13 +156,13 @@ subroutine cgetv0
+ c     | Local Scalars & Arrays |
+ c     %------------------------%
+ c
+-      logical    first, orth
++      logical    first, inits, orth
+       integer    idist, iseed(4), iter, msglvl, jj
+       Real
+      &           rnorm0
+       Complex
+      &           cnorm
+-      save       first, iseed, iter, msglvl, orth, rnorm0
++      save       first, iseed, inits, iter, msglvl, orth, rnorm0
+ c
+ c     %----------------------%
+ c     | External Subroutines |
+@@ -180,6 +180,12 @@ subroutine cgetv0
+      &           ccdotc
+       external   ccdotc, scnrm2, slapy2
+ c
++c     %-----------------%
++c     | Data Statements |
++c     %-----------------%
++c
++      data       inits /.true./
++c
+ c     %-----------------------%
+ c     | Executable Statements |
+ c     %-----------------------%
+@@ -190,10 +196,13 @@ subroutine cgetv0
+ c     | random number generator           |
+ c     %-----------------------------------%
+ c
+-      iseed(1) = 1
+-      iseed(2) = 3
+-      iseed(3) = 5
+-      iseed(4) = 7
++      if (inits) then
++          iseed(1) = 1
++          iseed(2) = 3
++          iseed(3) = 5
++          iseed(4) = 7
++          inits = .false.
++      end if
+ c
+       if (ido .eq.  0) then
+ c
+diff --git a/SRC/dgetv0.f b/SRC/dgetv0.f
+index 8be4fa26d..1d6dc01bd 100644
+--- a/SRC/dgetv0.f
++++ b/SRC/dgetv0.f
+@@ -157,11 +157,11 @@ subroutine dgetv0
+ c     | Local Scalars & Arrays |
+ c     %------------------------%
+ c
+-      logical    first, orth
++      logical    first, inits, orth
+       integer    idist, iseed(4), iter, msglvl, jj
+       Double precision
+      &           rnorm0
+-      save       first, iseed, iter, msglvl, orth, rnorm0
++      save       first, iseed, inits, iter, msglvl, orth, rnorm0
+ c
+ c     %----------------------%
+ c     | External Subroutines |
+@@ -183,6 +183,12 @@ subroutine dgetv0
+ c
+       intrinsic    abs, sqrt
+ c
++c     %-----------------%
++c     | Data Statements |
++c     %-----------------%
++c
++      data       inits /.true./
++c
+ c     %-----------------------%
+ c     | Executable Statements |
+ c     %-----------------------%
+@@ -193,10 +199,13 @@ subroutine dgetv0
+ c     | random number generator           |
+ c     %-----------------------------------%
+ c
+-      iseed(1) = 1
+-      iseed(2) = 3
+-      iseed(3) = 5
+-      iseed(4) = 7
++      if (inits) then
++          iseed(1) = 1
++          iseed(2) = 3
++          iseed(3) = 5
++          iseed(4) = 7
++          inits = .false.
++      end if
+ c
+       if (ido .eq.  0) then
+ c
+diff --git a/SRC/sgetv0.f b/SRC/sgetv0.f
+index 26130a014..d861b2d6d 100644
+--- a/SRC/sgetv0.f
++++ b/SRC/sgetv0.f
+@@ -157,11 +157,11 @@ subroutine sgetv0
+ c     | Local Scalars & Arrays |
+ c     %------------------------%
+ c
+-      logical    first, orth
++      logical    first, inits, orth
+       integer    idist, iseed(4), iter, msglvl, jj
+       Real
+      &           rnorm0
+-      save       first, iseed, iter, msglvl, orth, rnorm0
++      save       first, iseed, inits, iter, msglvl, orth, rnorm0
+ c
+ c     %----------------------%
+ c     | External Subroutines |
+@@ -183,6 +183,12 @@ subroutine sgetv0
+ c
+       intrinsic    abs, sqrt
+ c
++c     %-----------------%
++c     | Data Statements |
++c     %-----------------%
++c
++      data       inits /.true./
++c
+ c     %-----------------------%
+ c     | Executable Statements |
+ c     %-----------------------%
+@@ -193,10 +199,13 @@ subroutine sgetv0
+ c     | random number generator           |
+ c     %-----------------------------------%
+ c
+-      iseed(1) = 1
+-      iseed(2) = 3
+-      iseed(3) = 5
+-      iseed(4) = 7
++      if (inits) then
++          iseed(1) = 1
++          iseed(2) = 3
++          iseed(3) = 5
++          iseed(4) = 7
++          inits = .false.
++      end if
+ c
+       if (ido .eq.  0) then
+ c
+diff --git a/SRC/zgetv0.f b/SRC/zgetv0.f
+index cc13c3cfb..1fbd50851 100644
+--- a/SRC/zgetv0.f
++++ b/SRC/zgetv0.f
+@@ -156,13 +156,13 @@ subroutine zgetv0
+ c     | Local Scalars & Arrays |
+ c     %------------------------%
+ c
+-      logical    first, orth
++      logical    first, inits, orth
+       integer    idist, iseed(4), iter, msglvl, jj
+       Double precision
+      &           rnorm0
+       Complex*16
+      &           cnorm
+-      save       first, iseed, iter, msglvl, orth, rnorm0
++      save       first, iseed, inits, iter, msglvl, orth, rnorm0
+ c
+ c     %----------------------%
+ c     | External Subroutines |
+@@ -180,6 +180,12 @@ subroutine zgetv0
+      &           zzdotc
+       external   zzdotc, dznrm2, dlapy2
+ c
++c     %-----------------%
++c     | Data Statements |
++c     %-----------------%
++c
++      data       inits /.true./
++c
+ c     %-----------------------%
+ c     | Executable Statements |
+ c     %-----------------------%
+@@ -190,10 +196,13 @@ subroutine zgetv0
+ c     | random number generator           |
+ c     %-----------------------------------%
+ c
+-      iseed(1) = 1
+-      iseed(2) = 3
+-      iseed(3) = 5
+-      iseed(4) = 7
++      if (inits) then
++          iseed(1) = 1
++          iseed(2) = 3
++          iseed(3) = 5
++          iseed(4) = 7
++          inits = .false.
++      end if
+ c
+       if (ido .eq.  0) then
+ c

base-commit: 2426e51688d479042ea115a634c6be2d8b9f3b99
-- 
2.40.1





Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Thu, 13 Jul 2023 22:20:02 GMT) Full text and rfc822 format available.

Notification sent to Ludovic Courtès <ludo <at> gnu.org>:
bug acknowledged by developer. (Thu, 13 Jul 2023 22:20:02 GMT) Full text and rfc822 format available.

Message #16 received at 64107-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: 64107-done <at> debbugs.gnu.org
Cc: Andreas Enge <andreas <at> enge.fr>, Efraim Flashner <efraim <at> flashner.co.il>,
 Eric Bavier <bavier <at> posteo.net>
Subject: Re: bug#64107: [PATCH] gnu: arpack-ng: Update to 3.9.0.
Date: Fri, 14 Jul 2023 00:18:50 +0200
Ludovic Courtès <ludo <at> gnu.org> skribis:

> From: Ludovic Courtès <ludovic.courtes <at> inria.fr>
>
> * gnu/packages/maths.scm (arpack-ng): Update to 3.9.0.
> [source]: Add 'patches'.
> [build-system]: Switch to CMAKE-BUILD-SYSTEM.
> [native-inputs]: Remove AUTOCONF, AUTOMAKE, and LIBTOOL.
> (arpack-ng-openmpi)[inputs]: Use 'modify-inputs'.
> [arguments]: Use gexps.
> * gnu/packages/patches/arpack-ng-propagate-rng-state.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Add it.

Pushed as ff208b4b629a15ce0b72555db1cda9fcb7eec1c9.

Ludo'.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 11 Aug 2023 11:24:07 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 309 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.