Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gap-edim for openSUSE:Factory 
checked in at 2026-10-09 21:45:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gap-edim (Old)
 and      /work/SRC/openSUSE:Factory/.gap-edim.new.3698736 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gap-edim"

Fri Oct  9 21:45:53 2026 rev:4 rq:1383715 version:1.3.9

Changes:
--------
--- /work/SRC/openSUSE:Factory/gap-edim/gap-edim.changes        2025-02-28 
17:40:32.583640299 +0100
+++ /work/SRC/openSUSE:Factory/.gap-edim.new.3698736/gap-edim.changes   
2026-10-09 21:46:58.718345633 +0200
@@ -1,0 +2,7 @@
+Fri Oct  9 09:17:49 UTC 2026 - Jan Engelhardt <[email protected]>
+
+- Update to release 1.3.9
+  * Kernel extension: make use of some changes in the GAP kernel
+    code.
+
+-------------------------------------------------------------------

Old:
----
  EDIM-1.3.8.tar.bz2

New:
----
  EDIM-1.3.9.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gap-edim.spec ++++++
--- /var/tmp/diff_new_pack.T4h0Nl/_old  2026-10-09 21:46:59.526379634 +0200
+++ /var/tmp/diff_new_pack.T4h0Nl/_new  2026-10-09 21:46:59.528379719 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package gap-edim
 #
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           gap-edim
-Version:        1.3.8
+Version:        1.3.9
 Release:        0
 Summary:        GAP: Elementary Divisors of Integer Matrices
 License:        GPL-2.0-or-later

++++++ EDIM-1.3.8.tar.bz2 -> EDIM-1.3.9.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/EDIM-1.3.8/CHANGES new/EDIM-1.3.9/CHANGES
--- old/EDIM-1.3.8/CHANGES      2024-02-21 22:47:37.000000000 +0100
+++ new/EDIM-1.3.9/CHANGES      2026-10-08 16:20:27.000000000 +0200
@@ -1,3 +1,5 @@
+1.3.9 - kernel extension: make use of some changes in the GAP kernel code.
+
 1.3.8 - pushed number because of problem with package update.
 
 1.3.7 - `configure` now additionally supports argument `--with-gaproot=...`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/EDIM-1.3.8/PackageInfo.g new/EDIM-1.3.9/PackageInfo.g
--- old/EDIM-1.3.8/PackageInfo.g        2024-02-21 22:47:37.000000000 +0100
+++ new/EDIM-1.3.9/PackageInfo.g        2026-10-08 16:20:27.000000000 +0200
@@ -5,14 +5,14 @@
 SetPackageInfo( rec(
 
 PackageName := "EDIM",
-Version := "1.3.8",
+Version := "1.3.9",
 ##  dd/mm/yyyy 
-Date := "21/02/2024",
+Date := "08/10/2026",
 License := "GPL-2.0-or-later",
 Subtitle := "Elementary Divisors of Integer Matrices",
 # without extension
-ArchiveURL := "https://www.math.rwth-aachen.de/~Frank.Luebeck/EDIM/EDIM-1.3.8";,
-ArchiveFormats := ".tar.bz2  .tar.gz   -win.zip",
+ArchiveURL := "https://www.math.rwth-aachen.de/~Frank.Luebeck/EDIM/EDIM-1.3.9";,
+ArchiveFormats := ".tar.bz2  .tar.gz",
 SourceRepository := rec(Type := "git", 
                         URL := "https://github.com/frankluebeck/EDIM"; ),
 Persons := [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/EDIM-1.3.8/README new/EDIM-1.3.9/README
--- old/EDIM-1.3.8/README       2024-02-21 22:47:37.000000000 +0100
+++ new/EDIM-1.3.9/README       2026-10-08 16:20:27.000000000 +0200
@@ -4,11 +4,10 @@
 files
     EDIM-x.x.tar.gz
     EDIM-x.x.tar.bz2
-    EDIM-x.x-win.zip      (with text files in DOS/Windows format)
 and unpack it using 
     gunzip EDIM-x.x.tar.gz; tar xvf EDIM-x.x.tar
 respectively
-    unzip EDIM-x.x-win.zip
+    tar xJvf -x.x.tar.bz2
 and so on.
 
 Do this preferably (but not necessarily) inside the `pkg' subdirectory
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/EDIM-1.3.8/VERSION new/EDIM-1.3.9/VERSION
--- old/EDIM-1.3.8/VERSION      2024-02-21 22:47:37.000000000 +0100
+++ new/EDIM-1.3.9/VERSION      2026-10-08 16:20:27.000000000 +0200
@@ -1 +1 @@
-1.3.8
+1.3.9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/EDIM-1.3.8/doc/chap0.html 
new/EDIM-1.3.9/doc/chap0.html
--- old/EDIM-1.3.8/doc/chap0.html       2024-02-21 22:47:39.000000000 +0100
+++ new/EDIM-1.3.9/doc/chap0.html       2026-10-08 16:20:29.000000000 +0200
@@ -29,9 +29,9 @@
 <h2>Elementary Divisors and Integer Matrices</h2>
 
 <p>
-      Version 1.3.8</p>
+      Version 1.3.9</p>
 
-<p>February 2024</p>
+<p>October 2026</p>
 
 </div>
 <p><b>Frank Lübeck
@@ -116,6 +116,6 @@
 <div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a 
href="chap0.html">Top</a>  <a href="chap1.html">1</a>  <a 
href="chapBib.html">Bib</a>  <a href="chapInd.html">Ind</a>  </div>
 
 <hr />
-<p class="foot">generated by <a 
href="http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc";>GAPDoc2HTML</a></p>
+<p class="foot">generated by <a 
href="https://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc";>GAPDoc2HTML</a></p>
 </body>
 </html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/EDIM-1.3.8/doc/chap0.txt new/EDIM-1.3.9/doc/chap0.txt
--- old/EDIM-1.3.8/doc/chap0.txt        2024-02-21 22:47:38.000000000 +0100
+++ new/EDIM-1.3.9/doc/chap0.txt        2026-10-08 16:20:28.000000000 +0200
@@ -6,10 +6,10 @@
                     Elementary Divisors and Integer Matrices
   
   
-                                 Version 1.3.8
+                                 Version 1.3.9
   
   
-                                 February 2024
+                                  October 2026
   
   
                                   Frank Lübeck
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/EDIM-1.3.8/doc/chap0_mj.html 
new/EDIM-1.3.9/doc/chap0_mj.html
--- old/EDIM-1.3.8/doc/chap0_mj.html    2024-02-21 22:47:39.000000000 +0100
+++ new/EDIM-1.3.9/doc/chap0_mj.html    2026-10-08 16:20:29.000000000 +0200
@@ -6,7 +6,7 @@
 <html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en">
 <head>
 <script type="text/javascript"
-  
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML";>
+  
src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js?config=TeX-AMS-MML_HTMLorMML";>
 </script>
 <title>GAP (edim) - Contents</title>
 <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
@@ -32,9 +32,9 @@
 <h2>Elementary Divisors and Integer Matrices</h2>
 
 <p>
-      Version 1.3.8</p>
+      Version 1.3.9</p>
 
-<p>February 2024</p>
+<p>October 2026</p>
 
 </div>
 <p><b>Frank Lübeck
@@ -119,6 +119,6 @@
 <div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a 
href="chap0_mj.html">Top</a>  <a href="chap1_mj.html">1</a>  <a 
href="chapBib_mj.html">Bib</a>  <a href="chapInd_mj.html">Ind</a>  </div>
 
 <hr />
-<p class="foot">generated by <a 
href="http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc";>GAPDoc2HTML</a></p>
+<p class="foot">generated by <a 
href="https://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc";>GAPDoc2HTML</a></p>
 </body>
 </html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/EDIM-1.3.8/doc/chap1.html 
new/EDIM-1.3.9/doc/chap1.html
--- old/EDIM-1.3.8/doc/chap1.html       2024-02-21 22:47:39.000000000 +0100
+++ new/EDIM-1.3.9/doc/chap1.html       2026-10-08 16:20:29.000000000 +0200
@@ -302,7 +302,7 @@
 
 <p>The <strong class="pkg">EDIM</strong>-mini package also contains 
implementations of an extended Gcd-algorithm for integers and a Hermite and 
Smith normal form algorithm for integer matrices using LLL-techiques. They are 
well described in the paper <a href="chapBib.html#biBHMM98">[HMM98]</a> by 
Havas, Majewski and Matthews.</p>
 
-<p>They are particularly useful if one wants to have the normal forms together 
with transforming matrices. These transforming matrices have spectacularly nice 
(i.e., "small") entries in cases of input matrices which are non-square or not 
of full rank (otherwise the transformation to the Hermite normal form is 
unique).</p>
+<p>They are particularly useful if one wants to have the normal forms together 
with transforming matrices. These transforming matrices have spectacularly nice 
(i.e., <q>small</q>) entries in cases of input matrices which are non-square or 
not of full rank (otherwise the transformation to the Hermite normal form is 
unique).</p>
 
 <p>In detail:</p>
 
@@ -406,7 +406,7 @@
 <h5>1.6-4 CheapFactorsInt</h5>
 
 <div class="func"><table class="func" width="100%"><tr><td 
class="tdleft"><code class="func">&#8227; CheapFactorsInt</code>( <var 
class="Arg">n</var>[, <var class="Arg">nr</var>] )</td><td 
class="tdright">(&nbsp;function&nbsp;)</td></tr></table></div>
-<p>This function returns a list of factors of an integer <var 
class="Arg">n</var>, including "small" prime factors - here the optional 
argument <var class="Arg">nr</var> is the number of iterations for `FactorsRho' 
(default is 2000).</p>
+<p>This function returns a list of factors of an integer <var 
class="Arg">n</var>, including <q>small</q> prime factors - here the optional 
argument <var class="Arg">nr</var> is the number of iterations for `FactorsRho' 
(default is 2000).</p>
 
 <p>This is only a slight modification of the library function <code 
class="func">FactorsInt</code> (<a 
href="../../../doc/ref/chap14.html#X82C989DB84744B36"><span 
class="RefLink">Reference: FactorsInt</span></a>) which avoids an error message 
when the number is not completely factored.</p>
 
@@ -488,6 +488,6 @@
 <div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a 
href="chap0.html">Top</a>  <a href="chap1.html">1</a>  <a 
href="chapBib.html">Bib</a>  <a href="chapInd.html">Ind</a>  </div>
 
 <hr />
-<p class="foot">generated by <a 
href="http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc";>GAPDoc2HTML</a></p>
+<p class="foot">generated by <a 
href="https://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc";>GAPDoc2HTML</a></p>
 </body>
 </html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/EDIM-1.3.8/doc/chap1_mj.html 
new/EDIM-1.3.9/doc/chap1_mj.html
--- old/EDIM-1.3.8/doc/chap1_mj.html    2024-02-21 22:47:39.000000000 +0100
+++ new/EDIM-1.3.9/doc/chap1_mj.html    2026-10-08 16:20:29.000000000 +0200
@@ -6,7 +6,7 @@
 <html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en">
 <head>
 <script type="text/javascript"
-  
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML";>
+  
src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js?config=TeX-AMS-MML_HTMLorMML";>
 </script>
 <title>GAP (edim) - Chapter 1: The EDIM-Package</title>
 <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
@@ -305,7 +305,7 @@
 
 <p>The <strong class="pkg">EDIM</strong>-mini package also contains 
implementations of an extended Gcd-algorithm for integers and a Hermite and 
Smith normal form algorithm for integer matrices using LLL-techiques. They are 
well described in the paper <a href="chapBib_mj.html#biBHMM98">[HMM98]</a> by 
Havas, Majewski and Matthews.</p>
 
-<p>They are particularly useful if one wants to have the normal forms together 
with transforming matrices. These transforming matrices have spectacularly nice 
(i.e., "small") entries in cases of input matrices which are non-square or not 
of full rank (otherwise the transformation to the Hermite normal form is 
unique).</p>
+<p>They are particularly useful if one wants to have the normal forms together 
with transforming matrices. These transforming matrices have spectacularly nice 
(i.e., <q>small</q>) entries in cases of input matrices which are non-square or 
not of full rank (otherwise the transformation to the Hermite normal form is 
unique).</p>
 
 <p>In detail:</p>
 
@@ -409,7 +409,7 @@
 <h5>1.6-4 CheapFactorsInt</h5>
 
 <div class="func"><table class="func" width="100%"><tr><td 
class="tdleft"><code class="func">&#8227; CheapFactorsInt</code>( <var 
class="Arg">n</var>[, <var class="Arg">nr</var>] )</td><td 
class="tdright">(&nbsp;function&nbsp;)</td></tr></table></div>
-<p>This function returns a list of factors of an integer <var 
class="Arg">n</var>, including "small" prime factors - here the optional 
argument <var class="Arg">nr</var> is the number of iterations for `FactorsRho' 
(default is 2000).</p>
+<p>This function returns a list of factors of an integer <var 
class="Arg">n</var>, including <q>small</q> prime factors - here the optional 
argument <var class="Arg">nr</var> is the number of iterations for `FactorsRho' 
(default is 2000).</p>
 
 <p>This is only a slight modification of the library function <code 
class="func">FactorsInt</code> (<a 
href="../../../doc/ref/chap14_mj.html#X82C989DB84744B36"><span 
class="RefLink">Reference: FactorsInt</span></a>) which avoids an error message 
when the number is not completely factored.</p>
 
@@ -491,6 +491,6 @@
 <div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a 
href="chap0_mj.html">Top</a>  <a href="chap1_mj.html">1</a>  <a 
href="chapBib_mj.html">Bib</a>  <a href="chapInd_mj.html">Ind</a>  </div>
 
 <hr />
-<p class="foot">generated by <a 
href="http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc";>GAPDoc2HTML</a></p>
+<p class="foot">generated by <a 
href="https://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc";>GAPDoc2HTML</a></p>
 </body>
 </html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/EDIM-1.3.8/doc/chapBib.html 
new/EDIM-1.3.9/doc/chapBib.html
--- old/EDIM-1.3.8/doc/chapBib.html     2024-02-21 22:47:39.000000000 +0100
+++ new/EDIM-1.3.9/doc/chapBib.html     2026-10-08 16:20:29.000000000 +0200
@@ -81,6 +81,6 @@
 <div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a 
href="chap0.html">Top</a>  <a href="chap1.html">1</a>  <a 
href="chapBib.html">Bib</a>  <a href="chapInd.html">Ind</a>  </div>
 
 <hr />
-<p class="foot">generated by <a 
href="http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc";>GAPDoc2HTML</a></p>
+<p class="foot">generated by <a 
href="https://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc";>GAPDoc2HTML</a></p>
 </body>
 </html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/EDIM-1.3.8/doc/chapBib.txt 
new/EDIM-1.3.9/doc/chapBib.txt
--- old/EDIM-1.3.8/doc/chapBib.txt      2024-02-21 22:47:38.000000000 +0100
+++ new/EDIM-1.3.9/doc/chapBib.txt      2026-10-08 16:20:28.000000000 +0200
@@ -2,19 +2,18 @@
   
   References
   
-  [Dix82]  Dixon,  J.  D.,  Exact  Solution  of  
Linear Equations Using p-adic
-  Expansions, Numer. Math., 40 (1982), 137--141.
+  [Dix82]  Dixon, J. D., Exact Solution of Linear 
Equations Using p-adic Expansions, Numer. Math., 40
+  (1982), 137--141.
   
-  [HMM98]  Havas,  G.,  Majewski,  B. S. and Matthews, K. 
R., Extended gcd and
-  Hermite  normal  form  algorithms  via lattice basis reduction, 
Experimental
-  Mathematics, 7 (1998), 125--135.
-  
-  [HS79]  Havas,  G. and Sterling, L. S., Integer 
matrices and abelian groups,
-  in  Symbolic  and  algebraic  computation,  Springer-Verlag, Berlin, Lecture
-  Notes in Computer Science, 72 (1979), 431--451.
+  [HMM98]  Havas,  G.,  Majewski,  B.  S.  and  Matthews, K. 
R., Extended gcd and Hermite normal form
+  algorithms via lattice basis reduction, Experimental 
Mathematics, 7 (1998), 125--135.
   
-  [Lüb02]  Lübeck,  F.,  On  the Computation of 
Elementary Divisors of Integer
-  Matrices, Journal of Symbolic Computation, 33 
(2002), 57--65.
+  [HS79]  Havas,  G.  and  Sterling,  L.  S.,  
Integer  matrices  and abelian groups, in Symbolic and
+  algebraic  computation,  Springer-Verlag,  Berlin,  Lecture  Notes  in 
Computer Science, 72 (1979),
+  431--451.
+  
+  [Lüb02]  Lübeck,  F.,  On  the  Computation  of 
Elementary Divisors of Integer Matrices, Journal of
+  Symbolic Computation, 33 (2002), 57--65.
   
   
   
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/EDIM-1.3.8/doc/chapBib_mj.html 
new/EDIM-1.3.9/doc/chapBib_mj.html
--- old/EDIM-1.3.8/doc/chapBib_mj.html  2024-02-21 22:47:39.000000000 +0100
+++ new/EDIM-1.3.9/doc/chapBib_mj.html  2026-10-08 16:20:29.000000000 +0200
@@ -6,7 +6,7 @@
 <html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en">
 <head>
 <script type="text/javascript"
-  
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML";>
+  
src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js?config=TeX-AMS-MML_HTMLorMML";>
 </script>
 <title>GAP (edim) - References</title>
 <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
@@ -84,6 +84,6 @@
 <div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a 
href="chap0_mj.html">Top</a>  <a href="chap1_mj.html">1</a>  <a 
href="chapBib_mj.html">Bib</a>  <a href="chapInd_mj.html">Ind</a>  </div>
 
 <hr />
-<p class="foot">generated by <a 
href="http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc";>GAPDoc2HTML</a></p>
+<p class="foot">generated by <a 
href="https://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc";>GAPDoc2HTML</a></p>
 </body>
 </html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/EDIM-1.3.8/doc/chapInd.html 
new/EDIM-1.3.9/doc/chapInd.html
--- old/EDIM-1.3.8/doc/chapInd.html     2024-02-21 22:47:39.000000000 +0100
+++ new/EDIM-1.3.9/doc/chapInd.html     2026-10-08 16:20:29.000000000 +0200
@@ -58,6 +58,6 @@
 <div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a 
href="chap0.html">Top</a>  <a href="chap1.html">1</a>  <a 
href="chapBib.html">Bib</a>  <a href="chapInd.html">Ind</a>  </div>
 
 <hr />
-<p class="foot">generated by <a 
href="http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc";>GAPDoc2HTML</a></p>
+<p class="foot">generated by <a 
href="https://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc";>GAPDoc2HTML</a></p>
 </body>
 </html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/EDIM-1.3.8/doc/chapInd.txt 
new/EDIM-1.3.9/doc/chapInd.txt
--- old/EDIM-1.3.8/doc/chapInd.txt      2024-02-21 22:47:38.000000000 +0100
+++ new/EDIM-1.3.9/doc/chapInd.txt      2026-10-08 16:20:28.000000000 +0200
@@ -3,7 +3,7 @@
   Index
   
   CheapFactorsInt 1.6-4 
-  EDIM 1. 
+  EDIM 1.0 
   ElementaryDivisorsIntMatDeterminant 1.4-2 
   ElementaryDivisorsPPartHavasSterling 1.2-2 
   ElementaryDivisorsPPartRk 1.2-1 
@@ -20,7 +20,7 @@
   InfoEDIM 1.1-1 
   InverseIntMatMod 1.6-2 
   InverseRatMat 1.3-1 
-  License .-1 
+  License 0.0-1 
   RankMod 1.6-5 
   RationalSolutionIntMat 1.3-2 
   RatNumberFromModular 1.6-1 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/EDIM-1.3.8/doc/chapInd_mj.html 
new/EDIM-1.3.9/doc/chapInd_mj.html
--- old/EDIM-1.3.8/doc/chapInd_mj.html  2024-02-21 22:47:39.000000000 +0100
+++ new/EDIM-1.3.9/doc/chapInd_mj.html  2026-10-08 16:20:29.000000000 +0200
@@ -6,7 +6,7 @@
 <html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en">
 <head>
 <script type="text/javascript"
-  
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML";>
+  
src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js?config=TeX-AMS-MML_HTMLorMML";>
 </script>
 <title>GAP (edim) - Index</title>
 <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
@@ -61,6 +61,6 @@
 <div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a 
href="chap0_mj.html">Top</a>  <a href="chap1_mj.html">1</a>  <a 
href="chapBib_mj.html">Bib</a>  <a href="chapInd_mj.html">Ind</a>  </div>
 
 <hr />
-<p class="foot">generated by <a 
href="http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc";>GAPDoc2HTML</a></p>
+<p class="foot">generated by <a 
href="https://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc";>GAPDoc2HTML</a></p>
 </body>
 </html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/EDIM-1.3.8/doc/chooser.html 
new/EDIM-1.3.9/doc/chooser.html
--- old/EDIM-1.3.8/doc/chooser.html     2024-02-21 22:47:39.000000000 +0100
+++ new/EDIM-1.3.9/doc/chooser.html     2026-10-08 16:20:29.000000000 +0200
@@ -23,9 +23,18 @@
   return "";
 }
 
+<!-- load dark appearance either explicitly or via the OS preference -->
+function writeAppearanceStyle(mode) {
+  if (mode == "dark") {
+    document.writeln('<link rel="stylesheet" type="text/css" href="dark.css" 
/>');
+  } else if (mode != "light") {
+    document.writeln('<style type="text/css">@import "dark.css" 
(prefers-color-scheme: dark);</style>');
+  }
+}
+
 <!-- find style from current values in form -->
 function getstyle() {
-  var choices = ["toggle","colorprompt","tocside","font","justify"]; 
+  var choices = 
["toggle","colorprompt","tocside","font","justify","appearance"];
   var style = "";
   for (var i=0; choices.length > i; i++) {
     var a = currval(choices[i]);
@@ -55,17 +64,23 @@
 <!-- initialize form from GAPDocStyle cookie -->
 function initform() {
   var style = valueString(document.cookie, "GAPDocStyle");
+  if (style == 0 || style == "default")
+    writeAppearanceStyle("");
   if (style != 0 && style.length > 0 && style.length != "default") {
     stlist = style.split(",");
     var chform = document.forms[0].elements;
+    var appearance = "";
     for (var i=0; chform.length > i; i++) {
       if (chform[i].type == "radio") {
         for (var j=0; stlist.length > j; j++) {
-          if (chform[i].value == stlist[j]) 
+          if (stlist[j] == "dark" || stlist[j] == "light")
+            appearance = stlist[j];
+          if (chform[i].value == stlist[j])
             chform[i].checked = true;
         }
       }
     }
+    writeAppearanceStyle(appearance);
   }
 }
 
@@ -119,6 +134,15 @@
 <input type="radio" name="justify" value="ragged"
 onclick="javascript:f()"/> ragged right 
 </p>
+<p>
+Appearance:
+<input type="radio" name="appearance" value=""
+onclick="javascript:f()"/> system (default) &nbsp;&nbsp;&nbsp;
+<input type="radio" name="appearance" value="light" checked="checked"
+onclick="javascript:f()"/> light
+<input type="radio" name="appearance" value="dark"
+onclick="javascript:f()"/> dark
+</p>
 </form>
 <p>
 <a name="backLINK" href=""><strong>Apply settings to last page.</strong></a>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/EDIM-1.3.8/doc/dark.css new/EDIM-1.3.9/doc/dark.css
--- old/EDIM-1.3.8/doc/dark.css 1970-01-01 01:00:00.000000000 +0100
+++ new/EDIM-1.3.9/doc/dark.css 2026-10-08 16:20:29.000000000 +0200
@@ -0,0 +1,178 @@
+/* dark.css                                             Frank Luebeck */
+/* Initial dark theme contributed by kiryph in issue #75.            */
+
+/* colors */
+body {
+  background: #121212;
+  color: #eee;
+}
+
+a:link {
+  color: #576cad;
+}
+
+a:visited {
+  color: #576cad;
+}
+
+a:active {
+  color: #eee;
+}
+
+a:hover {
+  background: #eee;
+}
+
+pre {
+  color: black;
+}
+
+tt, code {
+  color: #eee;
+}
+
+/* layout for the definitions of functions, variables, ... */
+div.func {
+  background: #909090;
+}
+
+/* Example elements (for old converted manuals, now in div+pre */
+table.example {
+  background: #efefef;
+}
+
+/* becomes ... */
+div.example {
+  background: #efefef;
+  color: black;
+}
+
+/* Links to chapters in all files at top and bottom. */
+div.chlinktop {
+  background: #22272e;
+  border-color: #3a414a;
+  color: #d7dde5;
+}
+
+div.chlinktop a:hover {
+  background: #2f3742;
+}
+
+div.chlinkbot {
+  background: #22272e;
+  border-color: #3a414a;
+  color: #d7dde5;
+}
+
+/* and this is for the "Top", "Prev", "Next" links */
+div.chlinkprevnexttop {
+  background: #22272e;
+  border-color: #3a414a;
+  color: #d7dde5;
+}
+
+div.chlinkprevnexttop a:hover {
+  background: #2f3742;
+}
+
+div.chlinkprevnextbot {
+  background: #22272e;
+  border-color: #3a414a;
+  color: #d7dde5;
+}
+
+div.chlinkprevnextbot a:hover {
+  background: #2f3742;
+}
+
+div.ContChap div.ContSect:hover div.ContSSBlock {
+  background: #eee;
+  border-color: #666;
+  color: #000;
+}
+
+div.ContSSBlock a:hover {
+  background: #fff;
+}
+
+/* and here for the side menu of contents in the chapter files */
+div.ChapSects a:hover {
+  background: #eee;
+  color: #000;
+}
+
+div.ChapSects div.ContSect:hover div.ContSSBlock {
+  background: #b5b5b5;
+  border-color: #666;
+  color: #000;
+}
+
+div.ChapSects div.ContSect:hover div.ContSSBlock a:hover {
+  background: #828282;
+}
+
+/* Table elements */
+table.GAPDocTable {
+  border-color: black;
+}
+
+table.GAPDocTable td, table.GAPDocTable th {
+  border-color: #555;
+}
+
+table.GAPDocTablenoborder td, table.GAPDocTable th {
+  border-color: #555;
+}
+
+/* Colors and fonts can be overwritten for some types of elements. */
+/* Verb elements */
+pre.normal {
+  color: #eee;
+}
+
+/* Func-like elements and Ref to Func-like */
+code.func {
+  color: #eee;
+}
+
+/* K elements */
+code.keyw {
+  color: #983d3d;
+}
+
+/* F elements */
+code.file {
+  color: #8e4510;
+}
+
+/* Arg elements */
+var.Arg {
+  color: #060;
+}
+
+/* colors for ColorPrompt like examples */
+span.GAPprompt {
+  color: #000097;
+}
+
+span.GAPbrkprompt {
+  color: #970000;
+}
+
+span.GAPinput {
+  color: #970000;
+}
+
+/* Bib entries */
+span.BibKey {
+  color: #052;
+}
+
+/* for light and dark mode pictures */
+.only-on-dark {
+  display: block;
+}
+
+.only-on-light {
+  display: none;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/EDIM-1.3.8/doc/edim.tex new/EDIM-1.3.9/doc/edim.tex
--- old/EDIM-1.3.8/doc/edim.tex 2024-02-21 22:47:38.000000000 +0100
+++ new/EDIM-1.3.9/doc/edim.tex 2026-10-08 16:20:28.000000000 +0200
@@ -90,25 +90,27 @@
 \begin{titlepage}
 \mbox{}\vfill
 
-\begin{center}{\maintitlesize \textbf{\textsf{EDIM}\mbox{}}}\\
+\begin{center}{\maintitlesize \textbf{\textsf{EDIM}\\
+\mbox{}}}\\
 \vfill
 
-\hypersetup{pdftitle=\textsf{EDIM}}
+\hypersetup{pdftitle={\textsf{EDIM}}}
 \markright{\scriptsize \mbox{}\hfill \textsf{EDIM} \hfill\mbox{}}
-{\Huge \textbf{Elementary Divisors and Integer Matrices\mbox{}}}\\
+{\Huge \textbf{Elementary Divisors and Integer Matrices\\
+\mbox{}}}\\
 \vfill
 
-{\Huge  Version 1.3.8 \mbox{}}\\[1cm]
-{February 2024\mbox{}}\\[1cm]
+{\Huge  Version 1.3.9 \mbox{}}\\[1cm]
+{October 2026\mbox{}}\\[1cm]
 \mbox{}\\[2cm]
-{\Large \textbf{Frank L{\"u}beck    \mbox{}}}\\
-\hypersetup{pdfauthor=Frank L{\"u}beck    }
+{\Large \textbf{\strut Frank L{\"u}beck     \strut\mbox{}}}\\
+\hypersetup{pdfauthor={Frank L{\"u}beck    }}
 \end{center}\vfill
 
 \mbox{}\\
 {\mbox{}\\
-\small \noindent \textbf{Frank L{\"u}beck    }  Email: 
\href{mailto://[email protected]} 
{\texttt{[email protected]}}\\
-  Homepage: \href{https://www.math.rwth-aachen.de/~Frank.Luebeck} 
{\texttt{https://www.math.rwth-aachen.de/\texttt{\symbol{126}}Frank.Luebeck}}\\
+\small \noindent \textbf{Frank L{\"u}beck    }  Email: 
\href{mailto://[email protected]} 
{\texttt{[email protected]\texttt{\symbol{45}}Aachen.De}}\\
+  Homepage: \href{https://www.math.rwth-aachen.de/~Frank.Luebeck} 
{\texttt{https://www.math.rwth\texttt{\symbol{45}}aachen.de/\texttt{\symbol{126}}Frank.Luebeck}}\\
   Address: \begin{minipage}[t]{8cm}\noindent
  Lehrstuhl D f{\"u}r Mathematik RWTH Aachen Pontdriesch 14/16 52062 Aachen
 Germany \end{minipage}
@@ -119,7 +121,7 @@
 {\small 
 \section*{Copyright}
 \logpage{[ 0, 0, 1 ]}
- \index{License} {\copyright} 2000-2024 by Frank L{\"u}beck 
+ \index{License} {\copyright} 2000\texttt{\symbol{45}}2024 by Frank L{\"u}beck 
 
  \textsf{EDIM} is free software; you can redistribute it and/or modify it 
under the terms of
 the \href{https://www.fsf.org/licenses/gpl.html} {GNU General Public License} 
as published by the Free Software Foundation; either version 2 of the License,
@@ -132,30 +134,32 @@
 \newpage
 
   
-\chapter{\textcolor{Chapter }{The \textsf{EDIM}-Package}}\label{Chap-EDIM}
+\chapter{\textcolor{Chapter }{The 
\textsf{EDIM}\texttt{\symbol{45}}Package}}\label{Chap-EDIM}
 \logpage{[ 1, 0, 0 ]}
 \hyperdef{L}{X7AA826067CC8C395}{}
 {
   \index{\textsf{EDIM}} \emph{(Elementary Divisors and Integer Matrices, by 
Frank L{\"u}beck)}
 
  This chapter describes the functions defined in the \textsf{GAP}4 package 
\textsf{EDIM}. The main functions implement variants of an algorithm for 
computing for a
-given prime $p$ the $p$-parts of the elementary divisors of an integer matrix. 
These algorithms use a $p$-adic method and are described by the author in 
\cite{L98} (see \texttt{ElementaryDivisorsPPartRk} 
(\ref{ElementaryDivisorsPPartRk})).
+given prime $p$ the $p$\texttt{\symbol{45}}parts of the elementary divisors of 
an integer matrix.
+These algorithms use a $p$\texttt{\symbol{45}}adic method and are described by 
the author in \cite{L98} (see \texttt{ElementaryDivisorsPPartRk} 
(\ref{ElementaryDivisorsPPartRk})).
 
  These functions were already applied to integer matrices of dimension greater
-than $11000$ (which had many non-trivial elementary divisors which were 
products of small
-primes).
+than $11000$ (which had many non\texttt{\symbol{45}}trivial elementary 
divisors which were
+products of small primes).
 
  Furthermore there are functions for finding the biggest elementary divisor of
 an invertible integer matrix and the inverse of a rational invertible matrix
-(see \texttt{ExponentSquareIntMatFullRank} 
(\ref{ExponentSquareIntMatFullRank}) and \texttt{InverseRatMat} 
(\ref{InverseRatMat})). These algorithms use $p$-adic approximations, explained 
in \ref{Sect-InvRatMatAlg}.
+(see \texttt{ExponentSquareIntMatFullRank} 
(\ref{ExponentSquareIntMatFullRank}) and \texttt{InverseRatMat} 
(\ref{InverseRatMat})). These algorithms use $p$\texttt{\symbol{45}}adic 
approximations, explained in \ref{Sect-InvRatMatAlg}.
 
  Finally we distribute implementations of some other algorithms for finding
-elementary divisors or normal forms of integer matrices: A $p$-modular 
algorithm by Havas and Sterling from \cite{HS79} (see 
\texttt{ElementaryDivisorsPPartHavasSterling} 
(\ref{ElementaryDivisorsPPartHavasSterling})) and LLL-based algorithms for 
extended greatest common divisors of integers
-(see \texttt{GcdexIntLLL} (\ref{GcdexIntLLL})) and for Hermite normal forms of 
integer matrices with (very nice)
+elementary divisors or normal forms of integer matrices: A 
$p$\texttt{\symbol{45}}modular algorithm by Havas and Sterling from \cite{HS79} 
(see \texttt{ElementaryDivisorsPPartHavasSterling} 
(\ref{ElementaryDivisorsPPartHavasSterling})) and LLL\texttt{\symbol{45}}based 
algorithms for extended greatest common
+divisors of integers (see \texttt{GcdexIntLLL} (\ref{GcdexIntLLL})) and for 
Hermite normal forms of integer matrices with (very nice)
 transforming matrices (see \texttt{HermiteIntMatLLL} (\ref{HermiteIntMatLLL})).
 
- Please, send me an e-mail (\href{mailto://[email protected]} 
{\texttt{[email protected]}}) if you have any questions, 
remarks, suggestions, etc. concerning this
-mini-package. Also, I would like to hear about applications of this package.
+ Please, send me an e\texttt{\symbol{45}}mail 
(\href{mailto://[email protected]} 
{\texttt{[email protected]\texttt{\symbol{45}}Aachen.De}}) if you have 
any questions, remarks, suggestions, etc. concerning this
+mini\texttt{\symbol{45}}package. Also, I would like to hear about applications
+of this package.
 
  Frank L{\"u}beck 
 \section{\textcolor{Chapter }{Installation of the \textsf{EDIM} 
package}}\label{Sect-Install}
@@ -166,7 +170,7 @@
 subdirectory \texttt{pkg} (see  (\textbf{Reference: Installing a GAP 
Package})). Then the \textsf{EDIM} package can already be loaded and used. But 
we strongly recommend to compile a
 kernel function as well during installation, otherwise the function 
\texttt{ElementaryDivisorsPPartRkExpSmall} 
(\ref{ElementaryDivisorsPPartRkExpSmall}) will not be available.
 
- To install the kernel function go to the directory \texttt{pkg/EDIM-...} to 
which the package was extracted and call
+ To install the kernel function go to the directory 
\texttt{pkg/EDIM\texttt{\symbol{45}}...} to which the package was extracted and 
call
 
  \texttt{/bin/sh ./configure [path]}
 
@@ -183,13 +187,13 @@
 }\hfill{\scriptsize (info class)}}\\
 
 
- This is an \texttt{Info} class for the \textsf{EDIM}-package. By 
\texttt{SetInfoLevel(InfoEDIM, 1);} you can switch on the printing of some 
information during the computations of
-certain \textsf{EDIM}-functions. }
+ This is an \texttt{Info} class for the 
\textsf{EDIM}\texttt{\symbol{45}}package. By \texttt{SetInfoLevel(InfoEDIM, 
1);} you can switch on the printing of some information during the computations 
of
+certain \textsf{EDIM}\texttt{\symbol{45}}functions. }
 
  }
 
   
-\section{\textcolor{Chapter }{$p$-Parts of Elementary 
Divisors}}\label{Sect-PPElDiv}
+\section{\textcolor{Chapter }{$p$\texttt{\symbol{45}}Parts of Elementary 
Divisors}}\label{Sect-PPElDiv}
 \logpage{[ 1, 2, 0 ]}
 \hyperdef{L}{X818BE04687230849}{}
 {
@@ -234,7 +238,7 @@
  If $\mbox{\texttt{\mdseries\slshape p}}^{\mbox{\texttt{\mdseries\slshape 
exp}}}$ is small enough we use internally a kernel function which can also be 
used
 directly in the fifth form of the command. There 
\mbox{\texttt{\mdseries\slshape il}} can be $0$ or $1$ where in the second case 
some information is printed during the computation.
 
- More precisely, \texttt{ElementaryDivisorsPPartRkExpSmall} is applicable when 
$\mbox{\texttt{\mdseries\slshape p}}^{{\mbox{\texttt{\mdseries\slshape 
exp}}+1}} < 2^{{b-4}}$ and $(\mbox{\texttt{\mdseries\slshape 
p}}^{{\mbox{\texttt{\mdseries\slshape exp}}+1}} - 1)(p-1) < 2^b$ where $b=32$ 
in a 32-bit version of \textsf{GAP} and $b=64$ in a 64-bit version of 
\textsf{GAP}.
+ More precisely, \texttt{ElementaryDivisorsPPartRkExpSmall} is applicable when 
$\mbox{\texttt{\mdseries\slshape p}}^{{\mbox{\texttt{\mdseries\slshape 
exp}}+1}} < 2^{{b-4}}$ and $(\mbox{\texttt{\mdseries\slshape 
p}}^{{\mbox{\texttt{\mdseries\slshape exp}}+1}} - 1)(p-1) < 2^b$ where $b=32$ 
in a 32\texttt{\symbol{45}}bit version of \textsf{GAP} and $b=64$ in a 
64\texttt{\symbol{45}}bit version of \textsf{GAP}.
 
  This last form of the function was already succesfully applied to dense
 matrices of rank up to $11000$.
@@ -272,7 +276,8 @@
 
  This is an implementation of the modular algorithm described in \cite{HS79}. 
 
- We added a slight improvement: we divide the considered submatrices by the 
\mbox{\texttt{\mdseries\slshape p}}-part of the greatest common divisor of all 
entries (and lower the \mbox{\texttt{\mdseries\slshape d}} appropriately). This 
reduces the size of the entries and often shortens the
+ We added a slight improvement: we divide the considered submatrices by the 
\mbox{\texttt{\mdseries\slshape p}}\texttt{\symbol{45}}part of the greatest 
common divisor of all entries (and
+lower the \mbox{\texttt{\mdseries\slshape d}} appropriately). This reduces the 
size of the entries and often shortens the
 pivot search.
 
  
@@ -306,10 +311,10 @@
  This function returns the inverse of an invertible matrix over the rational
 numbers.
 
- It first computes the inverse modulo some prime 
\mbox{\texttt{\mdseries\slshape p}}, computes from this a 
\mbox{\texttt{\mdseries\slshape p}}-adic approximation to the inverse and 
finally constructs the rational entries
-from their \mbox{\texttt{\mdseries\slshape p}}-adic approximations. See 
section \ref{Sect-InvRatMatAlg} for more details.
+ It first computes the inverse modulo some prime 
\mbox{\texttt{\mdseries\slshape p}}, computes from this a 
\mbox{\texttt{\mdseries\slshape p}}\texttt{\symbol{45}}adic approximation to 
the inverse and finally constructs
+the rational entries from their \mbox{\texttt{\mdseries\slshape 
p}}\texttt{\symbol{45}}adic approximations. See section \ref{Sect-InvRatMatAlg} 
for more details.
 
- This seems to be better than \textsf{GAP}'s standard Gau{\ss} algorithm 
(\texttt{A\texttt{\symbol{94}}-1}) already for small matrices. (Try, e.g., 
\texttt{RandomMat(20,20,[-10000..10000])} or \texttt{RandomMat(100,100)}.)
+ This seems to be better than \textsf{GAP}'s standard Gau{\ss} algorithm 
(\texttt{A\texttt{\symbol{94}}\texttt{\symbol{45}}1}) already for small 
matrices. (Try, e.g., 
\texttt{RandomMat(20,20,[\texttt{\symbol{45}}10000..10000])} or 
\texttt{RandomMat(100,100)}.)
 
  The optional argument \mbox{\texttt{\mdseries\slshape p}} should be a prime 
such that \mbox{\texttt{\mdseries\slshape A}} modulo 
\mbox{\texttt{\mdseries\slshape p}} is invertible (default is 
$\mbox{\texttt{\mdseries\slshape p}}=251$). If \mbox{\texttt{\mdseries\slshape 
A}} is not invertible modulo \mbox{\texttt{\mdseries\slshape p}} then 
\mbox{\texttt{\mdseries\slshape p}} is automatically replaced by the next prime.
 
@@ -332,7 +337,7 @@
 
  The optional arguments are a prime \mbox{\texttt{\mdseries\slshape p}} such 
that $\mbox{\texttt{\mdseries\slshape A}} \pmod{p}$ is invertible (if not 
given, $p = 251$ is assumed) and the inverse \mbox{\texttt{\mdseries\slshape 
invA}} of $\mbox{\texttt{\mdseries\slshape A}} \pmod{p}$.
 
- The solution is computed via $p$-adic approximation as explained in 
\ref{Sect-InvRatMatAlg}.
+ The solution is computed via $p$\texttt{\symbol{45}}adic approximation as 
explained in \ref{Sect-InvRatMatAlg}.
 
  }
 
@@ -373,7 +378,7 @@
  }
 
   
-\section{\textcolor{Chapter }{All Elementary Divisors Using p-adic 
Method}}\label{Sect-ElDivPad}
+\section{\textcolor{Chapter }{All Elementary Divisors Using 
p\texttt{\symbol{45}}adic Method}}\label{Sect-ElDivPad}
 \logpage{[ 1, 4, 0 ]}
 \hyperdef{L}{X7A6548FA7C837D27}{}
 {
@@ -399,8 +404,8 @@
  The rest is done using \texttt{ElementaryDivisorsPPartRkExp} 
(\ref{ElementaryDivisorsPPartRkExp}) and \texttt{RankMod} (\ref{RankMod}).
 
  The function fails if the biggest elementary divisor cannot be completely
-factored and the non-factored part is not a divisor of the biggest elementary
-divisor only.
+factored and the non\texttt{\symbol{45}}factored part is not a divisor of the
+biggest elementary divisor only.
 
  Note that this function may for many matrices not be the best choice for
 computing all elementary divisors. You may first try the standard \textsf{GAP} 
library routines for Smith normal form instead of this function. Nevertheless
@@ -459,14 +464,16 @@
 \logpage{[ 1, 5, 0 ]}
 \hyperdef{L}{X788047737FA04422}{}
 {
-  The \textsf{EDIM}-mini package also contains implementations of an extended 
Gcd-algorithm for
-integers and a Hermite and Smith normal form algorithm for integer matrices
-using LLL-techiques. They are well described in the paper \cite{HMM98} by 
Havas, Majewski and Matthews.
+  The \textsf{EDIM}\texttt{\symbol{45}}mini package also contains 
implementations of an extended
+Gcd\texttt{\symbol{45}}algorithm for integers and a Hermite and Smith normal
+form algorithm for integer matrices using LLL\texttt{\symbol{45}}techiques.
+They are well described in the paper \cite{HMM98} by Havas, Majewski and 
Matthews.
 
  They are particularly useful if one wants to have the normal forms together
 with transforming matrices. These transforming matrices have spectacularly
-nice (i.e., ``small'') entries in cases of input matrices which are non-square 
or not of full rank
-(otherwise the transformation to the Hermite normal form is unique).
+nice (i.e., ``small'') entries in cases of input matrices which are 
non\texttt{\symbol{45}}square
+or not of full rank (otherwise the transformation to the Hermite normal form
+is unique).
 
  In detail:
 
@@ -497,7 +504,7 @@
 }\hfill{\scriptsize (function)}}\\
 
 
- This returns the Hermite normal form of an integer matrix 
\mbox{\texttt{\mdseries\slshape A}} and uses the LLL-algorithm to avoid entry 
explosion. }
+ This returns the Hermite normal form of an integer matrix 
\mbox{\texttt{\mdseries\slshape A}} and uses the 
LLL\texttt{\symbol{45}}algorithm to avoid entry explosion. }
 
   
 
@@ -531,7 +538,7 @@
 }\hfill{\scriptsize (function)}}\\
 
 
- This function returns the Smith normal form of an integer matrix 
\mbox{\texttt{\mdseries\slshape A}} using the LLL-algorithm to avoid entry 
explosion. }
+ This function returns the Smith normal form of an integer matrix 
\mbox{\texttt{\mdseries\slshape A}} using the LLL\texttt{\symbol{45}}algorithm 
to avoid entry explosion. }
 
   
 
@@ -563,7 +570,7 @@
  }
 
   
-\section{\textcolor{Chapter }{Utility Functions from the 
\textsf{EDIM}-package}}\label{Sect-Util}
+\section{\textcolor{Chapter }{Utility Functions from the 
\textsf{EDIM}\texttt{\symbol{45}}package}}\label{Sect-Util}
 \logpage{[ 1, 6, 0 ]}
 \hyperdef{L}{X832582857EB36B23}{}
 {
@@ -621,7 +628,7 @@
 }\hfill{\scriptsize (function)}}\\
 
 
- This function returns a list of factors of an integer 
\mbox{\texttt{\mdseries\slshape n}}, including ``small'' prime factors - here 
the optional argument \mbox{\texttt{\mdseries\slshape nr}} is the number of 
iterations for `FactorsRho' (default is 2000).
+ This function returns a list of factors of an integer 
\mbox{\texttt{\mdseries\slshape n}}, including ``small'' prime factors 
\texttt{\symbol{45}} here the optional argument \mbox{\texttt{\mdseries\slshape 
nr}} is the number of iterations for `FactorsRho' (default is 2000).
 
  This is only a slight modification of the library function 
\texttt{FactorsInt} (\textbf{Reference: FactorsInt}) which avoids an error 
message when the number is not completely factored.
 
@@ -661,21 +668,21 @@
  }
 
   
-\section{\textcolor{Chapter }{InverseRatMat - the 
Algorithm}}\label{Sect-InvRatMatAlg}
+\section{\textcolor{Chapter }{InverseRatMat \texttt{\symbol{45}} the 
Algorithm}}\label{Sect-InvRatMatAlg}
 \logpage{[ 1, 7, 0 ]}
 \hyperdef{L}{X83FD1AAB7EB2E934}{}
 {
-  The idea is to recover a rational matrix from an $l$-adic approximation for 
some prime $l$. This description came out of discussions with J{\"u}rgen 
M{\"u}ller. I thank
+  The idea is to recover a rational matrix from an $l$\texttt{\symbol{45}}adic 
approximation for some prime $l$. This description came out of discussions with 
J{\"u}rgen M{\"u}ller. I thank
 John Cannon for pointing out that the basic idea already appeared in the paper 
\cite{D82} of Dixon.
 
  Let $A$ be an invertible matrix over the rational numbers. By multiplying 
with a
 constant we may assume that its entries are in fact integers.
 
- (1) We first describe how to find an $l$-adic approximation of $A^{-1}$. Find 
a prime $l$ such that $A$ is invertible modulo $l$ and let $B$ be the integer 
matrix with entries in the range $\left]-l/2,l/2\right]$ such that $BA$ is 
congruent to the identity matrix modulo $l$. (This can be computed fast by 
usual Gau{\ss} elimination.)
+ (1) We first describe how to find an $l$\texttt{\symbol{45}}adic 
approximation of $A^{-1}$. Find a prime $l$ such that $A$ is invertible modulo 
$l$ and let $B$ be the integer matrix with entries in the range 
$\left]-l/2,l/2\right]$ such that $BA$ is congruent to the identity matrix 
modulo $l$. (This can be computed fast by usual Gau{\ss} elimination.)
 
  Now let $v \in {\ensuremath{\mathbb Z}}^r$ be a row vector. Define two 
sequences $v_i$ and $x_i$ of row vectors in ${\ensuremath{\mathbb Z}}^r$ by: 
$x_0 := 0 \in {\ensuremath{\mathbb Z}}^r$, $v_0 := -v$ and for $i > 0$ set 
$x_i$ to the vector congruent to $-v_{i-1} B$ modulo $l$ having entries in the 
range $\left]-l/2, l/2\right]$. Then all entries of $x_i A + v_{i-1}$ are 
divisible by $l$ and we set $v_i := (1/l) \cdot (x_i A + v_{i-1})$.
 
- Induction shows that for $y_i := \sum_{k=1}^{i} l^{k-1} x_k$ we have $y_i A = 
v + l^i v_i$ for all $i \geq 0$. Hence the sequence $y_i$, $i \geq 0$, gives an 
$l$-adic approximation to the vector $y \in {\ensuremath{\mathbb Q}}^r$ with $y 
A = v$.
+ Induction shows that for $y_i := \sum_{k=1}^{i} l^{k-1} x_k$ we have $y_i A = 
v + l^i v_i$ for all $i \geq 0$. Hence the sequence $y_i$, $i \geq 0$, gives an 
$l$\texttt{\symbol{45}}adic approximation to the vector $y \in 
{\ensuremath{\mathbb Q}}^r$ with $y A = v$.
 
  (2) The second point is to show how we can get the vector $y$ from a 
sufficiently good approximation $y_i$. Note that the sequence of $y_i$ becomes 
constant for $i \geq i_0$ if all entries of $y$ are integers of absolute value 
smaller than $l^{i_0} / 2$ because of our choice of representatives of residue 
classes modulo $l$ in the interval $\left]-l/2, l/2\right]$.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/EDIM-1.3.8/doc/edim.toc new/EDIM-1.3.9/doc/edim.toc
--- old/EDIM-1.3.8/doc/edim.toc 2024-02-21 22:47:39.000000000 +0100
+++ new/EDIM-1.3.9/doc/edim.toc 2026-10-08 16:20:29.000000000 +0200
@@ -1,14 +1,14 @@
-\contentsline {chapter}{\numberline {1}\textcolor {Chapter }{The \textsf 
{EDIM}-Package}}{4}{chapter.1}%
+\contentsline {chapter}{\numberline {1}\textcolor {Chapter }{The \textsf 
{EDIM}\texttt {\symbol {45}}Package}}{4}{chapter.1}%
 \contentsline {section}{\numberline {1.1}\textcolor {Chapter }{Installation of 
the \textsf {EDIM} package}}{4}{section.1.1}%
 \contentsline {subsection}{\numberline {1.1.1}\textcolor {Chapter 
}{InfoEDIM}}{5}{subsection.1.1.1}%
-\contentsline {section}{\numberline {1.2}\textcolor {Chapter }{$p$-Parts of 
Elementary Divisors}}{5}{section.1.2}%
+\contentsline {section}{\numberline {1.2}\textcolor {Chapter }{$p$\texttt 
{\symbol {45}}Parts of Elementary Divisors}}{5}{section.1.2}%
 \contentsline {subsection}{\numberline {1.2.1}\textcolor {Chapter 
}{ElementaryDivisorsPPartRk}}{5}{subsection.1.2.1}%
 \contentsline {subsection}{\numberline {1.2.2}\textcolor {Chapter 
}{ElementaryDivisorsPPartHavasSterling}}{6}{subsection.1.2.2}%
 \contentsline {section}{\numberline {1.3}\textcolor {Chapter }{Inverse of 
Rational Matrices}}{6}{section.1.3}%
 \contentsline {subsection}{\numberline {1.3.1}\textcolor {Chapter 
}{InverseRatMat}}{6}{subsection.1.3.1}%
 \contentsline {subsection}{\numberline {1.3.2}\textcolor {Chapter 
}{RationalSolutionIntMat}}{6}{subsection.1.3.2}%
 \contentsline {subsection}{\numberline {1.3.3}\textcolor {Chapter 
}{ExponentSquareIntMatFullRank}}{7}{subsection.1.3.3}%
-\contentsline {section}{\numberline {1.4}\textcolor {Chapter }{All Elementary 
Divisors Using p-adic Method}}{7}{section.1.4}%
+\contentsline {section}{\numberline {1.4}\textcolor {Chapter }{All Elementary 
Divisors Using p\texttt {\symbol {45}}adic Method}}{7}{section.1.4}%
 \contentsline {subsection}{\numberline {1.4.1}\textcolor {Chapter 
}{ElementaryDivisorsSquareIntMatFullRank}}{7}{subsection.1.4.1}%
 \contentsline {subsection}{\numberline {1.4.2}\textcolor {Chapter 
}{ElementaryDivisorsIntMatDeterminant}}{8}{subsection.1.4.2}%
 \contentsline {section}{\numberline {1.5}\textcolor {Chapter }{Gcd and Normal 
Forms Using LLL}}{8}{section.1.5}%
@@ -17,13 +17,13 @@
 \contentsline {subsection}{\numberline {1.5.3}\textcolor {Chapter 
}{HermiteIntMatLLLTrans}}{9}{subsection.1.5.3}%
 \contentsline {subsection}{\numberline {1.5.4}\textcolor {Chapter 
}{SmithIntMatLLL}}{9}{subsection.1.5.4}%
 \contentsline {subsection}{\numberline {1.5.5}\textcolor {Chapter 
}{SmithIntMatLLLTrans}}{9}{subsection.1.5.5}%
-\contentsline {section}{\numberline {1.6}\textcolor {Chapter }{Utility 
Functions from the \textsf {EDIM}-package}}{10}{section.1.6}%
+\contentsline {section}{\numberline {1.6}\textcolor {Chapter }{Utility 
Functions from the \textsf {EDIM}\texttt {\symbol 
{45}}package}}{10}{section.1.6}%
 \contentsline {subsection}{\numberline {1.6.1}\textcolor {Chapter 
}{RatNumberFromModular}}{10}{subsection.1.6.1}%
 \contentsline {subsection}{\numberline {1.6.2}\textcolor {Chapter 
}{InverseIntMatMod}}{10}{subsection.1.6.2}%
 \contentsline {subsection}{\numberline {1.6.3}\textcolor {Chapter 
}{HadamardBoundIntMat}}{10}{subsection.1.6.3}%
 \contentsline {subsection}{\numberline {1.6.4}\textcolor {Chapter 
}{CheapFactorsInt}}{10}{subsection.1.6.4}%
 \contentsline {subsection}{\numberline {1.6.5}\textcolor {Chapter 
}{RankMod}}{11}{subsection.1.6.5}%
-\contentsline {section}{\numberline {1.7}\textcolor {Chapter }{InverseRatMat - 
the Algorithm}}{11}{section.1.7}%
+\contentsline {section}{\numberline {1.7}\textcolor {Chapter }{InverseRatMat 
\texttt {\symbol {45}} the Algorithm}}{11}{section.1.7}%
 \contentsline {subsection}{\numberline {1.7.1}\textcolor {Chapter }{Rank of 
Integer Matrix}}{12}{subsection.1.7.1}%
 \contentsline {chapter}{References}{13}{chapter*.3}%
 \contentsline {chapter}{Index}{14}{section*.4}%
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/EDIM-1.3.8/doc/edim.xml new/EDIM-1.3.9/doc/edim.xml
--- old/EDIM-1.3.8/doc/edim.xml 2024-02-21 22:47:37.000000000 +0100
+++ new/EDIM-1.3.9/doc/edim.xml 2026-10-08 16:20:27.000000000 +0200
@@ -29,7 +29,7 @@
     <Email>[email protected]</Email>
     <Homepage>https://www.math.rwth-aachen.de/&tilde;Frank.Luebeck</Homepage>
     </Author>
-    <Date>February 2024</Date>
+    <Date>October 2026</Date>
     <Copyright> <Index>License</Index>
               &copyright; 2000-2024 by Frank Lübeck <P/>
               <Package>EDIM</Package>  
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/EDIM-1.3.8/doc/manual.css 
new/EDIM-1.3.9/doc/manual.css
--- old/EDIM-1.3.8/doc/manual.css       2024-02-21 22:47:39.000000000 +0100
+++ new/EDIM-1.3.9/doc/manual.css       2026-10-08 16:20:29.000000000 +0200
@@ -477,6 +477,10 @@
 span.BibHowpublished {
 }
 
+/* for light and dark mode pictures */
+.only-on-dark {
+  display: none;
+}
 
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/EDIM-1.3.8/doc/manual.js new/EDIM-1.3.9/doc/manual.js
--- old/EDIM-1.3.8/doc/manual.js        2024-02-21 22:47:39.000000000 +0100
+++ new/EDIM-1.3.9/doc/manual.js        2026-10-08 16:20:29.000000000 +0200
@@ -47,6 +47,20 @@
   return 0;
 }
 
+/* load dark appearance either explicitly or via the OS preference */
+function writeAppearanceStyle(mode) {
+  if (mode == "dark") {
+    document.writeln(
+      '<link rel="stylesheet" type="text/css" href="dark.css" />'
+    );
+  } else if (mode != "light") {
+    document.writeln(
+      '<style type="text/css">@import "dark.css" ' +
+      '(prefers-color-scheme: dark);</style>'
+    );
+  }
+}
+
 /* when a non-default style is chosen via URL or a cookie, then
    the cookie is reset and the styles .js and .css files are read  */
 function overwriteStyle() {
@@ -55,6 +69,8 @@
   /* otherwise check cookie */
   if (style == 0)
     style = valueString(document.cookie, "GAPDocStyle");
+  if (style == 0 || style == "default")
+    writeAppearanceStyle("");
   if (style == 0)
     return;
   if (style == "default")
@@ -70,13 +86,19 @@
     document.cookie = "GAPDocStyle="+style+";Path="+path;
     /* split into names of style files */
     var stlist = style.split(",");
+    var appearance = "";
     /* read style's css and js files */
     for (var i=0; i < stlist.length; i++) {
-      document.writeln('<link rel="stylesheet" type="text/css" href="'+
-                                                         stlist[i]+'.css" />');
-      document.writeln('<script src="'+stlist[i]+
-                                      '.js" type="text/javascript"></script>');
+      if (stlist[i] == "dark" || stlist[i] == "light") {
+        appearance = stlist[i];
+      } else {
+        document.writeln('<link rel="stylesheet" type="text/css" href="'+
+                                                           stlist[i]+'.css" 
/>');
+        document.writeln('<script src="'+stlist[i]+
+                                        '.js" 
type="text/javascript"></script>');
+      }
     }
+    writeAppearanceStyle(appearance);
   }
 }
 
@@ -110,4 +132,3 @@
   for (var i=0; i < jscontentfuncs.length; i++)
     jscontentfuncs[i]();
 }
-
Binary files old/EDIM-1.3.8/doc/manual.pdf and new/EDIM-1.3.9/doc/manual.pdf 
differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/EDIM-1.3.8/doc/manual.six 
new/EDIM-1.3.9/doc/manual.six
--- old/EDIM-1.3.8/doc/manual.six       2024-02-21 22:47:39.000000000 +0100
+++ new/EDIM-1.3.9/doc/manual.six       2026-10-08 16:20:29.000000000 +0200
@@ -3,97 +3,72 @@
 encoding := "UTF-8",
 bookname := "EDIM",
 entries :=
-[ [ "Title page", ".", [ 0, 0, 0 ], 1, 1, "title page", "X7D2C85EC87DD46E5" ],
-  [ "Copyright", ".-1", [ 0, 0, 1 ], 28, 2, "copyright", "X81488B807F2A1CF1" ]
-    , [ "Table of Contents", ".-2", [ 0, 0, 2 ], 39, 3, "table of contents", 
-      "X8537FEB07AF2BEC8" ], 
-  [ 
-      "\033[1X\033[33X\033[0;-2YThe 
\033[5XEDIM\033[105X\033[101X\027\033[1X\027-\
-Package\033[133X\033[101X", "1", [ 1, 0, 0 ], 1, 4, "the edim-package", 
-      "X7AA826067CC8C395" ], 
-  [ 
-      "\033[1X\033[33X\033[0;-2YInstallation of the 
\033[5XEDIM\033[105X\033[101X\
-\027\033[1X\027 package\033[133X\033[101X", "1.1", [ 1, 1, 0 ], 35, 4, 
-      "installation of the edim package", "X84D3F5E77E3BF046" ], 
-  [ 
-      
"\033[1X\033[33X\033[0;-2Y\033[22Xp\033[122X\033[101X\027\033[1X\027-Parts \
-of Elementary Divisors\033[133X\033[101X", "1.2", [ 1, 2, 0 ], 63, 5, 
-      "p-parts of elementary divisors", "X818BE04687230849" ], 
-  [ "\033[1X\033[33X\033[0;-2YInverse of Rational Matrices\033[133X\033[101X",
-      "1.3", [ 1, 3, 0 ], 155, 6, "inverse of rational matrices", 
-      "X80FF39C07E03D7EF" ], 
-  [ 
-      "\033[1X\033[33X\033[0;-2YAll Elementary Divisors Using p-adic 
Method\033[1\
-33X\033[101X", "1.4", [ 1, 4, 0 ], 225, 7, 
-      "all elementary divisors using p-adic method", "X7A6548FA7C837D27" ], 
-  [ 
-      "\033[1X\033[33X\033[0;-2YGcd and Normal Forms Using 
LLL\033[133X\033[101X"
-        , "1.5", [ 1, 5, 0 ], 302, 8, "gcd and normal forms using lll", 
-      "X788047737FA04422" ], 
-  [ 
-      "\033[1X\033[33X\033[0;-2YUtility Functions from the 
\033[5XEDIM\033[105X\\
-033[101X\027\033[1X\027-package\033[133X\033[101X", "1.6", [ 1, 6, 0 ], 383, 
-      10, "utility functions from the edim-package", "X832582857EB36B23" ], 
-  [ "\033[1X\033[33X\033[0;-2YInverseRatMat - the Algorithm\033[133X\033[101X"
-        , "1.7", [ 1, 7, 0 ], 459, 11, "inverseratmat - the algorithm", 
-      "X83FD1AAB7EB2E934" ], 
-  [ "\033[1X\033[33X\033[0;-2YRank of Integer Matrix\033[133X\033[101X", 
-      "1.7-1", [ 1, 7, 1 ], 522, 12, "rank of integer matrix", 
-      "X791ED7D97F87FDFD" ], 
-  [ "Bibliography", "bib", [ "Bib", 0, 0 ], 1, 13, "bibliography", 
-      "X7A6F98FD85F02BFE" ], 
-  [ "References", "bib", [ "Bib", 0, 0 ], 1, 13, "references", 
-      "X7A6F98FD85F02BFE" ], 
+[ [ "Title page", "0.0", [ 0, 0, 0 ], 1, 1, "title page", "X7D2C85EC87DD46E5" 
], 
+  [ "Copyright", "0.0-1", [ 0, 0, 1 ], 28, 2, "copyright", "X81488B807F2A1CF1" 
], 
+  [ "Table of Contents", "0.0-2", [ 0, 0, 2 ], 39, 3, "table of contents", 
"X8537FEB07AF2BEC8" ], 
+  [ 
+      "\033[1X\033[33X\033[0;-2YThe 
\033[5XEDIM\033[105X\033[101X\027\033[1X\027-Package\033[133X\033[10\
+1X", "1", [ 1, 0, 0 ], 1, 4, "the edim-package", "X7AA826067CC8C395" ], 
+  [ 
+      "\033[1X\033[33X\033[0;-2YInstallation of the 
\033[5XEDIM\033[105X\033[101X\027\033[1X\027 package\
+\033[133X\033[101X", "1.1", [ 1, 1, 0 ], 35, 4, "installation of the edim 
package", 
+      "X84D3F5E77E3BF046" ], 
+  [ 
+      
"\033[1X\033[33X\033[0;-2Y\033[22Xp\033[122X\033[101X\027\033[1X\027-Parts of 
Elementary Divisors\\
+033[133X\033[101X", "1.2", [ 1, 2, 0 ], 63, 5, "p-parts of elementary 
divisors", "X818BE04687230849" 
+     ], [ "\033[1X\033[33X\033[0;-2YInverse of Rational 
Matrices\033[133X\033[101X", "1.3", 
+      [ 1, 3, 0 ], 155, 6, "inverse of rational matrices", "X80FF39C07E03D7EF" 
], 
+  [ "\033[1X\033[33X\033[0;-2YAll Elementary Divisors Using p-adic 
Method\033[133X\033[101X", "1.4", 
+      [ 1, 4, 0 ], 225, 7, "all elementary divisors using p-adic method", 
"X7A6548FA7C837D27" ], 
+  [ "\033[1X\033[33X\033[0;-2YGcd and Normal Forms Using 
LLL\033[133X\033[101X", "1.5", [ 1, 5, 0 ], 
+      302, 8, "gcd and normal forms using lll", "X788047737FA04422" ], 
+  [ 
+      "\033[1X\033[33X\033[0;-2YUtility Functions from the 
\033[5XEDIM\033[105X\033[101X\027\033[1X\027-\
+package\033[133X\033[101X", "1.6", [ 1, 6, 0 ], 383, 10, "utility functions 
from the edim-package", 
+      "X832582857EB36B23" ], 
+  [ "\033[1X\033[33X\033[0;-2YInverseRatMat - the 
Algorithm\033[133X\033[101X", "1.7", [ 1, 7, 0 ], 
+      459, 11, "inverseratmat - the algorithm", "X83FD1AAB7EB2E934" ], 
+  [ "\033[1X\033[33X\033[0;-2YRank of Integer Matrix\033[133X\033[101X", 
"1.7-1", [ 1, 7, 1 ], 522, 
+      12, "rank of integer matrix", "X791ED7D97F87FDFD" ], 
+  [ "Bibliography", "bib", [ "Bib", 0, 0 ], 1, 13, "bibliography", 
"X7A6F98FD85F02BFE" ], 
+  [ "References", "bib", [ "Bib", 0, 0 ], 1, 13, "references", 
"X7A6F98FD85F02BFE" ], 
   [ "Index", "ind", [ "Ind", 0, 0 ], 1, 14, "index", "X83A0356F839C696F" ], 
-  [ "License", ".-1", [ 0, 0, 1 ], 28, 2, "license", "X81488B807F2A1CF1" ], 
-  [ "\033[5XEDIM\033[105X", "1.", [ 1, 0, 0 ], 1, 4, "edim", 
-      "X7AA826067CC8C395" ], 
-  [ "\033[2XInfoEDIM\033[102X", "1.1-1", [ 1, 1, 1 ], 55, 5, "infoedim", 
-      "X7AF83FEC7CD0311C" ], 
+  [ "License", "0.0-1", [ 0, 0, 1 ], 28, 2, "license", "X81488B807F2A1CF1" ], 
+  [ "\033[5XEDIM\033[105X", "1.0", [ 1, 0, 0 ], 1, 4, "edim", 
"X7AA826067CC8C395" ], 
+  [ "\033[2XInfoEDIM\033[102X", "1.1-1", [ 1, 1, 1 ], 55, 5, "infoedim", 
"X7AF83FEC7CD0311C" ], 
   [ "\033[2XElementaryDivisorsPPartRk\033[102X", "1.2-1", [ 1, 2, 1 ], 68, 5, 
       "elementarydivisorsppartrk", "X813B0D73868CD751" ], 
-  [ "\033[2XElementaryDivisorsPPartRkI\033[102X", "1.2-1", [ 1, 2, 1 ], 68, 
-      5, "elementarydivisorsppartrki", "X813B0D73868CD751" ], 
-  [ "\033[2XElementaryDivisorsPPartRkII\033[102X", "1.2-1", [ 1, 2, 1 ], 68, 
-      5, "elementarydivisorsppartrkii", "X813B0D73868CD751" ], 
-  [ "\033[2XElementaryDivisorsPPartRkExp\033[102X", "1.2-1", [ 1, 2, 1 ], 68, 
-      5, "elementarydivisorsppartrkexp", "X813B0D73868CD751" ], 
-  [ "\033[2XElementaryDivisorsPPartRkExpSmall\033[102X", "1.2-1", 
-      [ 1, 2, 1 ], 68, 5, "elementarydivisorsppartrkexpsmall", 
-      "X813B0D73868CD751" ], 
-  [ "\033[2XElementaryDivisorsPPartHavasSterling\033[102X", "1.2-2", 
-      [ 1, 2, 2 ], 127, 6, "elementarydivisorspparthavassterling", 
-      "X82EC4724865F4DF9" ], 
-  [ "\033[2XInverseRatMat\033[102X", "1.3-1", [ 1, 3, 1 ], 158, 6, 
-      "inverseratmat", "X7A9656D47C4D2D16" ], 
-  [ "\033[2XRationalSolutionIntMat\033[102X", "1.3-2", [ 1, 3, 2 ], 177, 6, 
-      "rationalsolutionintmat", "X8302B31E86B3AFDB" ], 
-  [ "\033[2XExponentSquareIntMatFullRank\033[102X", "1.3-3", [ 1, 3, 3 ], 
-      193, 7, "exponentsquareintmatfullrank", "X86DA61D978D2D889" ], 
-  [ "\033[2XElementaryDivisorsSquareIntMatFullRank\033[102X", "1.4-1", 
-      [ 1, 4, 1 ], 233, 7, "elementarydivisorssquareintmatfullrank", 
-      "X7B6A3B8486872B0C" ], 
-  [ "\033[2XElementaryDivisorsIntMatDeterminant\033[102X", "1.4-2", 
-      [ 1, 4, 2 ], 272, 8, "elementarydivisorsintmatdeterminant", 
-      "X821E30477A5DCE68" ], 
-  [ "\033[2XGcdexIntLLL\033[102X", "1.5-1", [ 1, 5, 1 ], 318, 9, 
-      "gcdexintlll", "X799B1A5285D00859" ], 
-  [ "\033[2XHermiteIntMatLLL\033[102X", "1.5-2", [ 1, 5, 2 ], 331, 9, 
-      "hermiteintmatlll", "X7C6AE6777B72F9D2" ], 
-  [ "\033[2XHermiteIntMatLLLTrans\033[102X", "1.5-3", [ 1, 5, 3 ], 338, 9, 
-      "hermiteintmatllltrans", "X862962B7878A284F" ], 
-  [ "\033[2XSmithIntMatLLL\033[102X", "1.5-4", [ 1, 5, 4 ], 356, 9, 
-      "smithintmatlll", "X8626F15179C09798" ], 
-  [ "\033[2XSmithIntMatLLLTrans\033[102X", "1.5-5", [ 1, 5, 5 ], 363, 9, 
+  [ "\033[2XElementaryDivisorsPPartRkI\033[102X", "1.2-1", [ 1, 2, 1 ], 68, 5, 
+      "elementarydivisorsppartrki", "X813B0D73868CD751" ], 
+  [ "\033[2XElementaryDivisorsPPartRkII\033[102X", "1.2-1", [ 1, 2, 1 ], 68, 
5, 
+      "elementarydivisorsppartrkii", "X813B0D73868CD751" ], 
+  [ "\033[2XElementaryDivisorsPPartRkExp\033[102X", "1.2-1", [ 1, 2, 1 ], 68, 
5, 
+      "elementarydivisorsppartrkexp", "X813B0D73868CD751" ], 
+  [ "\033[2XElementaryDivisorsPPartRkExpSmall\033[102X", "1.2-1", [ 1, 2, 1 ], 
68, 5, 
+      "elementarydivisorsppartrkexpsmall", "X813B0D73868CD751" ], 
+  [ "\033[2XElementaryDivisorsPPartHavasSterling\033[102X", "1.2-2", [ 1, 2, 2 
], 127, 6, 
+      "elementarydivisorspparthavassterling", "X82EC4724865F4DF9" ], 
+  [ "\033[2XInverseRatMat\033[102X", "1.3-1", [ 1, 3, 1 ], 158, 6, 
"inverseratmat", 
+      "X7A9656D47C4D2D16" ], [ "\033[2XRationalSolutionIntMat\033[102X", 
"1.3-2", [ 1, 3, 2 ], 177, 
+      6, "rationalsolutionintmat", "X8302B31E86B3AFDB" ], 
+  [ "\033[2XExponentSquareIntMatFullRank\033[102X", "1.3-3", [ 1, 3, 3 ], 193, 
7, 
+      "exponentsquareintmatfullrank", "X86DA61D978D2D889" ], 
+  [ "\033[2XElementaryDivisorsSquareIntMatFullRank\033[102X", "1.4-1", [ 1, 4, 
1 ], 233, 7, 
+      "elementarydivisorssquareintmatfullrank", "X7B6A3B8486872B0C" ], 
+  [ "\033[2XElementaryDivisorsIntMatDeterminant\033[102X", "1.4-2", [ 1, 4, 2 
], 272, 8, 
+      "elementarydivisorsintmatdeterminant", "X821E30477A5DCE68" ], 
+  [ "\033[2XGcdexIntLLL\033[102X", "1.5-1", [ 1, 5, 1 ], 318, 9, 
"gcdexintlll", "X799B1A5285D00859" ]
+    , [ "\033[2XHermiteIntMatLLL\033[102X", "1.5-2", [ 1, 5, 2 ], 331, 9, 
"hermiteintmatlll", 
+      "X7C6AE6777B72F9D2" ], [ "\033[2XHermiteIntMatLLLTrans\033[102X", 
"1.5-3", [ 1, 5, 3 ], 338, 
+      9, "hermiteintmatllltrans", "X862962B7878A284F" ], 
+  [ "\033[2XSmithIntMatLLL\033[102X", "1.5-4", [ 1, 5, 4 ], 356, 9, 
"smithintmatlll", 
+      "X8626F15179C09798" ], [ "\033[2XSmithIntMatLLLTrans\033[102X", "1.5-5", 
[ 1, 5, 5 ], 363, 9, 
       "smithintmatllltrans", "X86094B1B7C87EBF6" ], 
-  [ "\033[2XRatNumberFromModular\033[102X", "1.6-1", [ 1, 6, 1 ], 386, 10, 
-      "ratnumberfrommodular", "X7EC844F97C469C03" ], 
-  [ "\033[2XInverseIntMatMod\033[102X", "1.6-2", [ 1, 6, 2 ], 398, 10, 
+  [ "\033[2XRatNumberFromModular\033[102X", "1.6-1", [ 1, 6, 1 ], 386, 10, 
"ratnumberfrommodular", 
+      "X7EC844F97C469C03" ], [ "\033[2XInverseIntMatMod\033[102X", "1.6-2", [ 
1, 6, 2 ], 398, 10, 
       "inverseintmatmod", "X78518E1D81435762" ], 
-  [ "\033[2XHadamardBoundIntMat\033[102X", "1.6-3", [ 1, 6, 3 ], 412, 10, 
-      "hadamardboundintmat", "X7CDF3D2081207080" ], 
-  [ "\033[2XCheapFactorsInt\033[102X", "1.6-4", [ 1, 6, 4 ], 420, 10, 
+  [ "\033[2XHadamardBoundIntMat\033[102X", "1.6-3", [ 1, 6, 3 ], 412, 10, 
"hadamardboundintmat", 
+      "X7CDF3D2081207080" ], [ "\033[2XCheapFactorsInt\033[102X", "1.6-4", [ 
1, 6, 4 ], 420, 10, 
       "cheapfactorsint", "X7BAB977C7EB05067" ], 
-  [ "\033[2XRankMod\033[102X", "1.6-5", [ 1, 6, 5 ], 432, 11, "rankmod", 
-      "X8312EDA78209B4EA" ] ]
+  [ "\033[2XRankMod\033[102X", "1.6-5", [ 1, 6, 5 ], 432, 11, "rankmod", 
"X8312EDA78209B4EA" ] ]
 );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/EDIM-1.3.8/src/ediv.c new/EDIM-1.3.9/src/ediv.c
--- old/EDIM-1.3.8/src/ediv.c   2024-02-21 22:47:37.000000000 +0100
+++ new/EDIM-1.3.9/src/ediv.c   2026-10-08 16:20:27.000000000 +0200
@@ -12,7 +12,7 @@
 
 /* read GAP source header files with a combined header file */
 
-#include        "compiled.h"          /* GAP headers                */
+#include        "gap_all.h"          /* GAP headers                */
 
 
 #include        <stdio.h>
@@ -21,9 +21,9 @@
 /*          the functions         */
 
 /* a helper function for computing k^-1 mod p */
-long invmodpcint(long k, long p)
+Int invmodpcint(Int k, Int p)
 {
-  long f, g, h, fk, gk, hk, q;
+  Int f, g, h, fk, gk, hk, q;
   if (0 <= k) {
     f = k;
     fk = 1;
@@ -58,9 +58,9 @@
                                         Obj robj,
                                         Obj ilobj) /* info level */
 {
-  unsigned long m, n, nn, r, rk, ch, chmax, p, pr, i, j, 
+  UInt m, n, nn, r, rk, ch, chmax, p, pr, i, j, 
                 ii, i0, i1, x, c, pos, il;
-  unsigned long *A1, *A2, *Tp, *res, *inv, *vv;
+  UInt *A1, *A2, *Tp, *res, *inv, *vv;
   Obj A1obj, A2obj, Tpobj, resobj, invobj, probj, obj, row;
 
   /*  change args  */
@@ -68,40 +68,40 @@
       ! (IS_PLIST(A) || IS_POSOBJ(ELM_PLIST(A, 1)))) {
      ErrorQuit("A must be an integer matrix",0L,0L); 
   }
-  m = (unsigned long) LEN_PLIST(A);
-  n = (unsigned long) LEN_PLIST(ELM_PLIST(A, 1));
+  m = (UInt) LEN_PLIST(A);
+  n = (UInt) LEN_PLIST(ELM_PLIST(A, 1));
   if (! IS_INTOBJ(pobj)) { 
      ErrorQuit("p must be a small integer (not a %s)",(Int)TNAM_OBJ(pobj),0L); 
   }
-  p = (unsigned long) INT_INTOBJ(pobj);
+  p = (UInt) INT_INTOBJ(pobj);
   if (! IS_INTOBJ(rkobj)) { 
      ErrorQuit("rk must be a small integer (not a 
%s)",(Int)TNAM_OBJ(rkobj),0L);
   }
-  rk = (unsigned long) INT_INTOBJ(rkobj);
+  rk = (UInt) INT_INTOBJ(rkobj);
   if (! IS_INTOBJ(robj)) { 
      ErrorQuit("r must be a small integer (not a %s)",(Int)TNAM_OBJ(robj),0L);
   }
-  r = (unsigned long) INT_INTOBJ(robj);
+  r = (UInt) INT_INTOBJ(robj);
   if (! IS_INTOBJ(ilobj)) { 
      ErrorQuit("il must be a small integer (not a 
%s)",(Int)TNAM_OBJ(ilobj),0L);
   }
-  il = (unsigned long) INT_INTOBJ(ilobj);
+  il = (UInt) INT_INTOBJ(ilobj);
 
   /* pr = p^(r+1) */
   probj = PowInt(pobj, SumInt(robj, INTOBJ_INT(1)));
   if (! IS_INTOBJ(probj)) { 
      ErrorQuit("exponent too large, see 
?ElementaryDivisorsPPartRkExpSmall",0L,0L);
   }
-  /* p^(r+1)-1 must fit at least (p-1) times into an unsigned long */
-  pr = (unsigned long) INT_INTOBJ(probj);
-  if (ULONG_MAX/(pr-1) < (p-1)) {
+  /* p^(r+1)-1 must fit at least (p-1) times into an UInt */
+  pr = (UInt) INT_INTOBJ(probj);
+  if (((UInt)-1)/(pr-1) < (p-1)) {
      ErrorQuit("exponent too large, see 
?ElementaryDivisorsPPartRkExpSmall",0L,0L);
   }
   /* max sum of coeffs of numbers of size (p^(r+1)-1) before reduction is 
      necessary to avoid integer overflow */
-  chmax = ULONG_MAX/(pr-1)-1;
-  A2obj = NewBag(T_DATOBJ, (n+1)*(m+1)*sizeof(unsigned long));
-  A2 = (unsigned long *)ADDR_OBJ(A2obj);
+  chmax = ((UInt)-1)/(pr-1)-1;
+  A2obj = NewBag(T_DATOBJ, (n+1)*(m+1)*sizeof(UInt));
+  A2 = (UInt *)ADDR_OBJ(A2obj);
   A2[0] = m;
   nn = n+1;
   /* reduce matrix entries modulo p^(r+1) */
@@ -119,28 +119,28 @@
       if (LtInt(probj, obj) || LtInt(obj, INTOBJ_INT(0))) {
        obj = ModInt(obj, probj);
         /* this could have changed because of a garbage collection */
-       A2 = (unsigned long *)ADDR_OBJ(A2obj);
-       A2[i*nn+j] = (unsigned long) INT_INTOBJ(obj);
+       A2 = (UInt *)ADDR_OBJ(A2obj);
+       A2[i*nn+j] = (UInt) INT_INTOBJ(obj);
       }
       else {
-       A2 = (unsigned long *)ADDR_OBJ(A2obj);
-       A2[i*nn+j] = (unsigned long) INT_INTOBJ(obj);
+       A2 = (UInt *)ADDR_OBJ(A2obj);
+       A2[i*nn+j] = (UInt) INT_INTOBJ(obj);
       }
     }
   }
 
   /* allocating space for local variables */
-  A1obj = NewBag(T_DATOBJ, (n+1)*(m+1)*sizeof(unsigned long));
-  invobj = NewBag(T_DATOBJ, (n+1)*sizeof(unsigned long));
-  resobj = NewBag(T_DATOBJ, (r+2)*sizeof(unsigned long));
-  Tpobj = NewBag(T_DATOBJ, (n+1)*sizeof(unsigned long));
-  A1 = (unsigned long *)ADDR_OBJ(A1obj);
+  A1obj = NewBag(T_DATOBJ, (n+1)*(m+1)*sizeof(UInt));
+  invobj = NewBag(T_DATOBJ, (n+1)*sizeof(UInt));
+  resobj = NewBag(T_DATOBJ, (r+2)*sizeof(UInt));
+  Tpobj = NewBag(T_DATOBJ, (n+1)*sizeof(UInt));
+  A1 = (UInt *)ADDR_OBJ(A1obj);
   A1[0] = 0UL;
-  res = (unsigned long *)ADDR_OBJ(resobj);
+  res = (UInt *)ADDR_OBJ(resobj);
   res[0] = 0UL;
-  inv = (unsigned long *)ADDR_OBJ(invobj);
-  Tp = (unsigned long *)ADDR_OBJ(Tpobj);
-  A2 = (unsigned long *)ADDR_OBJ(A2obj);
+  inv = (UInt *)ADDR_OBJ(invobj);
+  Tp = (UInt *)ADDR_OBJ(Tpobj);
+  A2 = (UInt *)ADDR_OBJ(A2obj);
 
   /* from now on the pointers above are safe: we only  manipulate  the data
      in the allocated bags and don't use any GAP function which could cause

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.T4h0Nl/_old  2026-10-09 21:46:59.894395120 +0200
+++ /var/tmp/diff_new_pack.T4h0Nl/_new  2026-10-09 21:46:59.901395415 +0200
@@ -1,5 +1,5 @@
-mtime: 1740697817
-commit: 89d0f8021c1f721050cb2c75fccb2c175562f03e27d20f05e53ef9c49786c5f2
+mtime: 1791537481
+commit: 698119178b68b5f6b3b470e9e6d786c197c96c9fefcd34af704256feae15f349
 url: https://src.opensuse.org/jengelh/gap-edim
 revision: master
 

++++++ build.specials.obscpio ++++++

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2026-10-09 11:18:01.000000000 +0200
@@ -0,0 +1 @@
+.osc

Reply via email to