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 @@ [1XElementary Divisors and Integer Matrices[101X - 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">‣ CheapFactorsInt</code>( <var class="Arg">n</var>[, <var class="Arg">nr</var>] )</td><td class="tdright">( function )</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">‣ CheapFactorsInt</code>( <var class="Arg">n</var>[, <var class="Arg">nr</var>] )</td><td class="tdright">( function )</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 @@ [1XReferences[101X - [[20XDix82[120X] [16XDixon, J. D.[116X, [17XExact Solution of Linear Equations Using p-adic - Expansions[117X, [18XNumer. Math.[118X, [19X40[119X (1982), 137--141. + [[20XDix82[120X] [16XDixon, J. D.[116X, [17XExact Solution of Linear Equations Using p-adic Expansions[117X, [18XNumer. Math.[118X, [19X40[119X + (1982), 137--141. - [[20XHMM98[120X] [16XHavas, G., Majewski, B. S. and Matthews, K. R.[116X, [17XExtended gcd and - Hermite normal form algorithms via lattice basis reduction[117X, [18XExperimental - Mathematics[118X, [19X7[119X (1998), 125--135. - - [[20XHS79[120X] [16XHavas, G. and Sterling, L. S.[116X, [17XInteger matrices and abelian groups[117X, - in Symbolic and algebraic computation, Springer-Verlag, Berlin, Lecture - Notes in Computer Science, [19X72[119X (1979), 431--451. + [[20XHMM98[120X] [16XHavas, G., Majewski, B. S. and Matthews, K. R.[116X, [17XExtended gcd and Hermite normal form + algorithms via lattice basis reduction[117X, [18XExperimental Mathematics[118X, [19X7[119X (1998), 125--135. - [[20XLüb02[120X] [16XLübeck, F.[116X, [17XOn the Computation of Elementary Divisors of Integer - Matrices[117X, [18XJournal of Symbolic Computation[118X, [19X33[119X (2002), 57--65. + [[20XHS79[120X] [16XHavas, G. and Sterling, L. S.[116X, [17XInteger matrices and abelian groups[117X, in Symbolic and + algebraic computation, Springer-Verlag, Berlin, Lecture Notes in Computer Science, [19X72[119X (1979), + 431--451. + + [[20XLüb02[120X] [16XLübeck, F.[116X, [17XOn the Computation of Elementary Divisors of Integer Matrices[117X, [18XJournal of + Symbolic Computation[118X, [19X33[119X (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 @@ [1XIndex[101X [2XCheapFactorsInt[102X 1.6-4 - [5XEDIM[105X 1. + [5XEDIM[105X 1.0 [2XElementaryDivisorsIntMatDeterminant[102X 1.4-2 [2XElementaryDivisorsPPartHavasSterling[102X 1.2-2 [2XElementaryDivisorsPPartRk[102X 1.2-1 @@ -20,7 +20,7 @@ [2XInfoEDIM[102X 1.1-1 [2XInverseIntMatMod[102X 1.6-2 [2XInverseRatMat[102X 1.3-1 - License .-1 + License 0.0-1 [2XRankMod[102X 1.6-5 [2XRationalSolutionIntMat[102X 1.3-2 [2XRatNumberFromModular[102X 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) +<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/˜Frank.Luebeck</Homepage> </Author> - <Date>February 2024</Date> + <Date>October 2026</Date> <Copyright> <Index>License</Index> ©right; 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
