{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.dvWzOZCc/b1/linbox_1.6.3-3_amd64.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.dvWzOZCc/b2/linbox_1.6.3-3_amd64.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -1,5 +1,5 @@\n \n 5e60202b341ea6e95d594421f88ad677 1278436 debug optional liblinbox-1.6.3-0-dbgsym_1.6.3-3_amd64.deb\n ab62fe9afbd514495edcb07260bc7c9d 206384 libs optional liblinbox-1.6.3-0_1.6.3-3_amd64.deb\n- 155ee83411cac3451fb82620adbe54e0 1234552 libdevel optional liblinbox-dev_1.6.3-3_amd64.deb\n- d4647b293394f8342884b678a90094f4 65215612 doc optional liblinbox-doc_1.6.3-3_all.deb\n+ aa96e8613654700dfa29fba5f6b945bb 1234648 libdevel optional liblinbox-dev_1.6.3-3_amd64.deb\n+ 45a5a63dfb857d94db675d34013d6e26 65214936 doc optional liblinbox-doc_1.6.3-3_all.deb\n"}, {"source1": "liblinbox-dev_1.6.3-3_amd64.deb", "source2": "liblinbox-dev_1.6.3-3_amd64.deb", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -1,3 +1,3 @@\n -rw-r--r-- 0 0 0 4 2021-05-09 16:28:04.000000 debian-binary\n -rw-r--r-- 0 0 0 13548 2021-05-09 16:28:04.000000 control.tar.xz\n--rw-r--r-- 0 0 0 1220812 2021-05-09 16:28:04.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 1220908 2021-05-09 16:28:04.000000 data.tar.xz\n"}, {"source1": "control.tar.xz", "source2": "control.tar.xz", "unified_diff": null, "details": [{"source1": "control.tar", "source2": "control.tar", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "comments": ["Files differ"], "unified_diff": null}]}]}]}, {"source1": "data.tar.xz", "source2": "data.tar.xz", "unified_diff": null, "details": [{"source1": "data.tar", "source2": "data.tar", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -465,15 +465,15 @@\n drwxr-xr-x 0 root (0) root (0) 0 2021-05-09 16:28:04.000000 ./usr/share/doc/\n drwxr-xr-x 0 root (0) root (0) 0 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/\n -rw-r--r-- 0 root (0) root (0) 3172 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/changelog.Debian.gz\n -rw-r--r-- 0 root (0) root (0) 55951 2019-06-07 13:22:08.000000 ./usr/share/doc/liblinbox-dev/changelog.gz\n -rw-r--r-- 0 root (0) root (0) 3457 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/copyright\n drwxr-xr-x 0 root (0) root (0) 0 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/examples/\n -rw-r--r-- 0 root (0) root (0) 3264 2019-06-07 13:22:08.000000 ./usr/share/doc/liblinbox-dev/examples/Makefile.am\n--rw-r--r-- 0 root (0) root (0) 9769 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/examples/Makefile.gz\n+-rw-r--r-- 0 root (0) root (0) 9766 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/examples/Makefile.gz\n -rw-r--r-- 0 root (0) root (0) 9613 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/examples/Makefile.in.gz\n -rw-r--r-- 0 root (0) root (0) 46 2019-06-07 13:22:08.000000 ./usr/share/doc/liblinbox-dev/examples/Readme\n -rw-r--r-- 0 root (0) root (0) 1746 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/examples/Readme-make.in.gz\n -rw-r--r-- 0 root (0) root (0) 2893 2019-06-07 13:22:08.000000 ./usr/share/doc/liblinbox-dev/examples/athadet.C\n -rw-r--r-- 0 root (0) root (0) 2772 2019-06-07 13:22:08.000000 ./usr/share/doc/liblinbox-dev/examples/bench-fft.C.gz\n -rw-r--r-- 0 root (0) root (0) 4787 2019-06-07 13:22:08.000000 ./usr/share/doc/liblinbox-dev/examples/bench-matpoly-mult.C.gz\n -rw-r--r-- 0 root (0) root (0) 3004 2019-06-07 13:22:08.000000 ./usr/share/doc/liblinbox-dev/examples/bench-new-fft.C.gz\n@@ -490,15 +490,15 @@\n -rw-r--r-- 0 root (0) root (0) 3480 2019-06-07 13:22:08.000000 ./usr/share/doc/liblinbox-dev/examples/blackbox/random-rank.C\n -rw-r--r-- 0 root (0) root (0) 4461 2019-06-07 13:22:08.000000 ./usr/share/doc/liblinbox-dev/examples/blackbox/smith.C.gz\n -rw-r--r-- 0 root (0) root (0) 1855 2019-06-07 13:22:08.000000 ./usr/share/doc/liblinbox-dev/examples/blassolve.C.gz\n -rw-r--r-- 0 root (0) root (0) 1996 2019-06-07 13:22:08.000000 ./usr/share/doc/liblinbox-dev/examples/charpoly.C.gz\n -rw-r--r-- 0 root (0) root (0) 2953 2019-06-07 13:22:08.000000 ./usr/share/doc/liblinbox-dev/examples/checksolve.C\n drwxr-xr-x 0 root (0) root (0) 0 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/examples/data/\n -rw-r--r-- 0 root (0) root (0) 920 2019-06-07 13:22:08.000000 ./usr/share/doc/liblinbox-dev/examples/data/Makefile.am\n--rw-r--r-- 0 root (0) root (0) 5092 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/examples/data/Makefile.gz\n+-rw-r--r-- 0 root (0) root (0) 5090 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/examples/data/Makefile.gz\n -rw-r--r-- 0 root (0) root (0) 4836 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/examples/data/Makefile.in.gz\n -rw-r--r-- 0 root (0) root (0) 174 2019-06-07 13:22:08.000000 ./usr/share/doc/liblinbox-dev/examples/data/lowmat.sms\n -rw-r--r-- 0 root (0) root (0) 50 2019-06-07 13:22:08.000000 ./usr/share/doc/liblinbox-dev/examples/data/mat.txt\n -rw-r--r-- 0 root (0) root (0) 36 2019-06-07 13:22:08.000000 ./usr/share/doc/liblinbox-dev/examples/data/mat2.txt\n -rw-r--r-- 0 root (0) root (0) 90 2019-06-07 13:22:08.000000 ./usr/share/doc/liblinbox-dev/examples/data/symmat.sms\n -rw-r--r-- 0 root (0) root (0) 194 2019-06-07 13:22:08.000000 ./usr/share/doc/liblinbox-dev/examples/data/test.matrix\n -rw-r--r-- 0 root (0) root (0) 295420 2019-06-07 13:22:08.000000 ./usr/share/doc/liblinbox-dev/examples/data/wikivote.gz\n"}, {"source1": "./usr/share/doc/liblinbox-dev/examples/Makefile.gz", "source2": "./usr/share/doc/liblinbox-dev/examples/Makefile.gz", "unified_diff": null, "details": [{"source1": "Makefile", "source2": "Makefile", "unified_diff": "@@ -505,15 +505,15 @@\n PKG_CONFIG_PATH = \n PROF = no\n RANLIB = ranlib\n SACLIB_CFLAGS = \n SACLIB_LIBS = \n SED = /bin/sed\n SET_MAKE = \n-SHELL = /bin/bash\n+SHELL = /bin/sh\n SIMD_FLAGS = \n STRIP = strip\n TESTS_CFLAGS = -O2 -Wall -g -DNDEBUG -U_LB_DEBUG\n VERSION = 1.6.3\n WARN = no\n XML_LIBS = \n abs_builddir = /build/reproducible-path/linbox-1.6.3/examples\n"}]}, {"source1": "./usr/share/doc/liblinbox-dev/examples/data/Makefile.gz", "source2": "./usr/share/doc/liblinbox-dev/examples/data/Makefile.gz", "unified_diff": null, "details": [{"source1": "Makefile", "source2": "Makefile", "unified_diff": "@@ -272,15 +272,15 @@\n PKG_CONFIG_PATH = \n PROF = no\n RANLIB = ranlib\n SACLIB_CFLAGS = \n SACLIB_LIBS = \n SED = /bin/sed\n SET_MAKE = \n-SHELL = /bin/bash\n+SHELL = /bin/sh\n SIMD_FLAGS = \n STRIP = strip\n TESTS_CFLAGS = -O2 -Wall -g -DNDEBUG -U_LB_DEBUG\n VERSION = 1.6.3\n WARN = no\n XML_LIBS = \n abs_builddir = /build/reproducible-path/linbox-1.6.3/examples/data\n"}]}]}]}]}, {"source1": "liblinbox-doc_1.6.3-3_all.deb", "source2": "liblinbox-doc_1.6.3-3_all.deb", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -1,3 +1,3 @@\n -rw-r--r-- 0 0 0 4 2021-05-09 16:28:04.000000 debian-binary\n--rw-r--r-- 0 0 0 77784 2021-05-09 16:28:04.000000 control.tar.xz\n--rw-r--r-- 0 0 0 65137636 2021-05-09 16:28:04.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 77892 2021-05-09 16:28:04.000000 control.tar.xz\n+-rw-r--r-- 0 0 0 65136852 2021-05-09 16:28:04.000000 data.tar.xz\n"}, {"source1": "control.tar.xz", "source2": "control.tar.xz", "unified_diff": null, "details": [{"source1": "control.tar", "source2": "control.tar", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "comments": ["Files differ"], "unified_diff": null}]}]}]}, {"source1": "data.tar.xz", "source2": "data.tar.xz", "unified_diff": null, "details": [{"source1": "data.tar", "source2": "data.tar", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -154,15 +154,15 @@\n -rw-r--r-- 0 root (0) root (0) 14133 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/blas-vector_8h.html\n -rw-r--r-- 0 root (0) root (0) 6647 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/blas-vector_8h__dep__incl.map\n -rw-r--r-- 0 root (0) root (0) 32 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/blas-vector_8h__dep__incl.md5\n -rw-r--r-- 0 root (0) root (0) 320934 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/blas-vector_8h__dep__incl.png\n -rw-r--r-- 0 root (0) root (0) 2848 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/blas-vector_8h__incl.map\n -rw-r--r-- 0 root (0) root (0) 32 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/blas-vector_8h__incl.md5\n -rw-r--r-- 0 root (0) root (0) 116654 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/blas-vector_8h__incl.png\n--rw-r--r-- 0 root (0) root (0) 30341 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/bug.html\n+-rw-r--r-- 0 root (0) root (0) 30041 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/bug.html\n -rw-r--r-- 0 root (0) root (0) 6650 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/butterfly_8h.html\n -rw-r--r-- 0 root (0) root (0) 227 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/butterfly_8h__dep__incl.map\n -rw-r--r-- 0 root (0) root (0) 32 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/butterfly_8h__dep__incl.md5\n -rw-r--r-- 0 root (0) root (0) 2944 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/butterfly_8h__dep__incl.png\n -rw-r--r-- 0 root (0) root (0) 391 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/butterfly_8h__incl.map\n -rw-r--r-- 0 root (0) root (0) 32 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/butterfly_8h__incl.md5\n -rw-r--r-- 0 root (0) root (0) 4190 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/butterfly_8h__incl.png\n@@ -3688,15 +3688,15 @@\n -rw-r--r-- 0 root (0) root (0) 10633 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/timer_8h.html\n -rw-r--r-- 0 root (0) root (0) 6495 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/timer_8h__dep__incl.map\n -rw-r--r-- 0 root (0) root (0) 32 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/timer_8h__dep__incl.md5\n -rw-r--r-- 0 root (0) root (0) 267942 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/timer_8h__dep__incl.png\n -rw-r--r-- 0 root (0) root (0) 281 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/timer_8h__incl.map\n -rw-r--r-- 0 root (0) root (0) 32 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/timer_8h__incl.md5\n -rw-r--r-- 0 root (0) root (0) 4495 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/timer_8h__incl.png\n--rw-r--r-- 0 root (0) root (0) 26826 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/todo.html\n+-rw-r--r-- 0 root (0) root (0) 27167 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/todo.html\n -rw-r--r-- 0 root (0) root (0) 9509 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/toeplitz_8h.html\n -rw-r--r-- 0 root (0) root (0) 440 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/toeplitz_8h__dep__incl.map\n -rw-r--r-- 0 root (0) root (0) 32 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/toeplitz_8h__dep__incl.md5\n -rw-r--r-- 0 root (0) root (0) 5143 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/toeplitz_8h__dep__incl.png\n -rw-r--r-- 0 root (0) root (0) 2646 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/toeplitz_8h__incl.map\n -rw-r--r-- 0 root (0) root (0) 32 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/toeplitz_8h__incl.md5\n -rw-r--r-- 0 root (0) root (0) 104080 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/toeplitz_8h__incl.png\n"}, {"source1": "./usr/share/doc/liblinbox-dev/bug.html", "source2": "./usr/share/doc/liblinbox-dev/bug.html", "unified_diff": "@@ -46,16 +46,16 @@\n
Global bench_rank (int carac)
\n
no gz reader ?
\n
Global BlackboxContainerBase< Field, Blackbox >::BlackboxContainerBase (const Blackbox *BB, const Field &F, size_t Size)
\n
no need for F
\n
Global BlackboxContainerBase< Field, Blackbox >::BlackboxContainerBase (const Blackbox *BB, const Field &F)
\n
no need for F
\n
Class BlasMatrix< _Field, _Storage >
\n-

why not BlasMatrixDomain ?

\n-

necessitates the inclusion of those things after of before. We should not include directly this but just the matrices and they automatically need their domain (for now)

\n+

necessitates the inclusion of those things after of before. We should not include directly this but just the matrices and they automatically need their domain (for now)

\n+

why not BlasMatrixDomain ?

\n
\n
Global BlasMatrix< _Field, _Storage >::_MD
\n
why public ?
\n
Global BlasMatrix< _Field, _Storage >::_ptr
\n
why public ?
\n
Global BlasMatrix< _Field, _Storage >::_VD
\n
why public ?
\n@@ -64,37 +64,37 @@\n
Global BlasMatrix< _Field, _Storage >::random (const size_t &b)
\n
does not work for submatrices.
\n
Class BlasMatrix< _Field, _Storage >::rebind< _Tp1 >
\n
other rep
\n
Global BlasMatrixDomain< Field_ >::areEqual (const Matrix1 &A, const Matrix2 &B) const
\n
use refs
\n
Global BlasMatrixDomain< Field_ >::isIdentity (const Matrix1 &A) const
\n-

use refs

\n-

use refs

\n+

use refs

\n+

use refs

\n
\n
Global BlasMatrixDomain< Field_ >::isIdentityGeneralized (const Matrix1 &A) const
\n-

use refs

\n-

use refs

\n+

use refs

\n+

use refs

\n
\n
Global BlasMatrixDomain< Field_ >::isZero (const Matrix1 &A) const
\n
use refs
\n
Global BlasMatrixDomain< Field_ >::setZero (Matrix &I) const
\n
use fflas-ffpack
\n
Global BlasSubmatrix< _Matrix >::apply (Vector1 &y, const Vector2 &x) const
\n
every vector we use here should have a stride/be blas vectors so it's not really templated by Vector1 Vector2 in general
\n
Global BlasSubmatrix< _Matrix >::applyTranspose (Vector1 &y, const Vector2 &x) const
\n
use Matrix domain
\n
Global BlasSubmatrix< _Matrix >::BlasSubmatrix (constMatrixType &M, size_t rowbeg, size_t colbeg, size_t Rowdim, size_t Coldim)
\n
NOT HERE
\n
Global BlasSubmatrix< _Matrix >::read (std::istream &file)
\n
reading a submatrix should not be allowed !!
\n-
Global CRABuilderEarlyMultip< Domain_Type >::dot (Integer &z, const Integer &D, const Vect1 &v1, const Vect2 &v2)
\n-
why a dot product here ?
\n
Global CRABuilderEarlyMultip< Domain_Type >::dot (DomainElement &z, const Domain &D, const Vect1 &v1, const Vect2 &v2)
\n
why a dot product here ?
\n+
Global CRABuilderEarlyMultip< Domain_Type >::dot (Integer &z, const Integer &D, const Vect1 &v1, const Vect2 &v2)
\n+
why a dot product here ?
\n
Global distinct (I1 a, I1 b, Lp &c)
\n

this already exists elsewhere

\n

this already exists elsewhere

\n
\n
Global field_subtests::testRingTrivia (const Field &F, const char *name)
\n
BlockRing does not know about 0 and 1 !
\n
Global FieldArchetype::constructor (FieldAbstract *trait, Field_qcq *field_ptr)
\n@@ -103,36 +103,36 @@\n
non reentrant strtok
\n
Class indexDomain
\n
does not belong here
\n
Class IndexedCategory< BlasMatrix< Field, _Rep > >
\n
this is trait, not a Category
\n
Namespace LinBox
\n

those are not just traits:

\n-

this does not belong here.

\n-

it is dangerous to include matrices defs that include hom for their rebind...

\n+

it is dangerous to include matrices defs that include hom for their rebind...

\n+

this does not belong here.

\n
\n
Global LinBox::checkBlasPrime (const Prime p)
\n
why is this hard coded ?
\n
Global LinBox::CheckRank (const Field &F, const typename Field ::Element *A, const size_t &m, const size_t &n, const size_t &lda, const size_t &alledged_rank)
\n
not used
\n
Global LinBox::isPositiveDefinite (const Blackbox &A, const RingCategories::IntegerTag &tag, const Method::Auto &M)
\n-
should try a modular minpoly and decide on the degree of that...
\n+

should try a modular minpoly and decide on the degree of that...

\n+

this crude size check can be refined

\n+
\n
Global LinBox::isPositiveDefinite (const Blackbox &A, const RingCategories::IntegerTag &tag, const Method::DenseElimination &M)
\n
why map (same field)? This is a copy.
\n-
Global LinBox::isPositiveDefinite (const Blackbox &A, const RingCategories::IntegerTag &tag, const Method::Auto &M)
\n-
this crude size check can be refined
\n
Global LinBox::Protected::checkBlasApply (const Field &F, size_t n)
\n

this does not seem right for float or any non M/modular field: doing blas wherever we have a fflas-ffpack field (?)

\n

should return true for some Givaro::ZRing

\n
\n
Global LinBox::Protected::Identity (const Field &F, typename Field::Element *Id, const size_t ldI, const size_t lig1, const size_t col1, const size_t lig2, const size_t col2)
\n
long et size_t ne cohabitent pas bien.
\n
Global LinBox::Protected::random_rankupdate (Field &F, const Randiter &R, BlasMatrix< Field > &A, int &rank, const RingCategories::IntegerTag &tag)
\n-

do perms ?

\n-

const !

\n+

const !

\n+

do perms ?

\n
\n
Global LinBox::randomAns (const Ring &R, Matrix &Mat, size_t n, size_t epr)
\n
use BlasVector.
\n
Global LinBox::RandomMatrixWithDet (const Field &F, typename Field ::Element *A, const size_t &m, const size_t &lda, const typename Field ::Element &det)
\n
not used
\n
Global LinBox::rank (size_t &r, const Blackbox &A, const RingCategories::ModularTag &tag, const Method::Auto &m)
\n
choose (benchmark) better cuttoff (size, nbnz, sparse rep)
\n@@ -183,23 +183,25 @@\n
Global OpenCLMatrixDomain< Field_ >::areEqual (const Matrix1 &A, const Matrix2 &B)
\n
use refs
\n
Global OpenCLMatrixDomain< Field_ >::isIdentity (const Matrix1 &A)
\n

use refs

\n

use refs

\n
\n
Global OpenCLMatrixDomain< Field_ >::isIdentityGeneralized (const Matrix1 &A)
\n-

use refs

\n-

use refs

\n+

use refs

\n+

use refs

\n
\n
Global OpenCLMatrixDomain< Field_ >::isZero (const Matrix1 &A)
\n
use refs
\n
Class PLUQMatrix< Field >
\n
Should really be tempalted by Matrix and be a (sub)domain
\n
Global PLUQMatrix< Field >::PLUQMatrix (BlasMatrix< Field, _Rep > &A, BlasPermutation< size_t > &P, BlasPermutation< size_t > &Q)
\n
in place ?
\n+
Global printPolynomial (const Field &F, const Polynomial &v)
\n+
this should be elsewhere
\n
File rational-reconstruction.h
\n
there seems to be a confusion between Ring _r, [iI]nteger... Besides we have to check that Ring/Integer/NTL_ZZ are the 'same'.
\n
Global ScalarMatrix< Field_ >::ScalarMatrix ()
\n
this should not be allowed (unknown field)
\n
Global SparseMatrix< _Field, SparseMatrixFormat::COO >::SparseMatrix (const _Field &F, VectStream &stream)
\n
may be 0...
\n
Global SparseMatrix< _Field, SparseMatrixFormat::COO::implicit >::apply (Vector &y, const Vector &x, const Element &a) const
\n@@ -210,54 +212,52 @@\n
if too big, create transpose.
\n
Global SparseMatrix< Field_, SparseMatrixFormat::TPL >::write (std::ostream &out) const
\n
we should not support too many formats
\n
Global SparseMatrixGeneric< _Field, _Row, Trait >::size () const
\n
should it be elements or non zero elements ?
\n
Global SparseMatrixWriteHelper< Matrix >::write (const Matrix &A, std::ostream &os, Tag::FileFormat format)
\n
this is reall the \"generic\" one
\n-
File test-commentator.C
\n-
this test does not even test if anything is outputted (and it passes even though)
\n-
File test-matrix-stream.C
\n-
this tests reveals memory leaks
\n-
File test-matrix-utils.h
\n-
put in matrix/random-matrix.h
\n-
File test-smith-form.C
\n-
should work for NTL Integers too
\n-
Global test_full_multip_matrix (std::ostream &report, size_t PrimeSize, size_t Size, std::pair< size_t, size_t > dims)
\n-
it is not possible to allocate some memory and use submatrices ?
\n-
Global Toeplitz< typename _PRing::CoeffField, _PRing >::write (std::ostream &os=std::cout) const
\n-
this is not MM format at all
\n-
Class Transpose< Blackbox >
\n-
no write here. test-blackbox.h requires it
\n-
Class ZOQuad< _Field >
\n-
needs read for test-blackbox.h
\n-
Global printPolynomial (const Field &F, const Polynomial &v)
\n-
this should be elsewhere
\n
File test-charpoly.C
\n

occasionnnaly there is a \"SIGFPE, Arithmetic exception.\" in CRA

\n

testRandomCharpoly is not always tested !!

\n
\n+
File test-commentator.C
\n+
this test does not even test if anything is outputted (and it passes even though)
\n
File test-ffpack.C
\n
this file does not compile or the test fails for some fields.
\n
File test-ftrmm.C
\n

ftrmm fails on non-double transposed versions.

\n

is fgemm correct on null A and B ?

\n
\n+
File test-matrix-stream.C
\n+
this tests reveals memory leaks
\n+
File test-matrix-utils.h
\n+
put in matrix/random-matrix.h
\n+
File test-smith-form.C
\n+
should work for NTL Integers too
\n
Global test_fgemm (std::ostream &report, const Field &F)
\n-

needs p prime.

\n-

if beta != 0 but A and B are 0 (or don't exist) then C != beta C

\n+

if beta != 0 but A and B are 0 (or don't exist) then C != beta C

\n+

needs p prime.

\n
\n
Global test_ftrmm (std::ostream &report, const Field &F)
\n-

same code as above ?

\n-

same code as above ?

\n-

same code as above ?

\n-

same code as above ?

\n+

same code as above ?

\n+

same code as above ?

\n

same code as above ?

\n-

same code as above ?

\n+

same code as above ?

\n+

same code as above ?

\n+

same code as above ?

\n
\n+
Global test_full_multip_matrix (std::ostream &report, size_t PrimeSize, size_t Size, std::pair< size_t, size_t > dims)
\n+
it is not possible to allocate some memory and use submatrices ?
\n+
Global Toeplitz< typename _PRing::CoeffField, _PRing >::write (std::ostream &os=std::cout) const
\n+
this is not MM format at all
\n+
Class Transpose< Blackbox >
\n+
no write here. test-blackbox.h requires it
\n+
Class ZOQuad< _Field >
\n+
needs read for test-blackbox.h
\n \n \n \n \n
\n Generated on Sun May 9 2021 16:28:04 for linbox by \"doxygen\"/ 1.9.1\n
\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -10,18 +10,18 @@\n Global BlackboxContainerBase<_Field,_Blackbox_>::BlackboxContainerBase (const\n Blackbox *BB, const Field &F, size_t Size)\n no need for F\n Global BlackboxContainerBase<_Field,_Blackbox_>::BlackboxContainerBase (const\n Blackbox *BB, const Field &F)\n no need for F\n Class BlasMatrix<__Field,__Storage_>\n- why not BlasMatrixDomain ?\n necessitates the inclusion of those things after of before. We should not\n include directly this but just the matrices and they automatically need\n their domain (for now)\n+ why not BlasMatrixDomain ?\n Global BlasMatrix<__Field,__Storage_>::_MD\n why public ?\n Global BlasMatrix<__Field,__Storage_>::_ptr\n why public ?\n Global BlasMatrix<__Field,__Storage_>::_VD\n why public ?\n Global BlasMatrix<__Field,__Storage_>::operator[] (size_t i)\n@@ -51,20 +51,20 @@\n &x) const\n use Matrix domain\n Global BlasSubmatrix<__Matrix_>::BlasSubmatrix (constMatrixType &M, size_t\n rowbeg, size_t colbeg, size_t Rowdim, size_t Coldim)\n NOT HERE\n Global BlasSubmatrix<__Matrix_>::read (std::istream &file)\n reading a submatrix should not be allowed !!\n- Global CRABuilderEarlyMultip<_Domain_Type_>::dot (Integer &z, const Integer\n- &D, const Vect1 &v1, const Vect2 &v2)\n- why a dot product here ?\n Global CRABuilderEarlyMultip<_Domain_Type_>::dot (DomainElement &z, const\n Domain &D, const Vect1 &v1, const Vect2 &v2)\n why a dot product here ?\n+ Global CRABuilderEarlyMultip<_Domain_Type_>::dot (Integer &z, const Integer\n+ &D, const Vect1 &v1, const Vect2 &v2)\n+ why a dot product here ?\n Global distinct (I1 a, I1 b, Lp &c)\n this already exists elsewhere\n this already exists elsewhere\n Global field_subtests::testRingTrivia (const Field &F, const char *name)\n BlockRing does not know about 0 and 1 !\n Global FieldArchetype::constructor (FieldAbstract *trait, Field_qcq\n *field_ptr)\n@@ -74,44 +74,42 @@\n non reentrant strtok\n Class indexDomain\n does not belong here\n Class IndexedCategory<_BlasMatrix<_Field,__Rep_>_>\n this is trait, not a Category\n Namespace LinBox\n those are not just traits:\n- this does not belong here.\n it is dangerous to include matrices defs that include hom for their\n rebind...\n+ this does not belong here.\n Global LinBox::checkBlasPrime (const Prime p)\n why is this hard coded ?\n Global LinBox::CheckRank (const Field &F, const typename Field ::Element *A,\n const size_t &m, const size_t &n, const size_t &lda, const size_t\n &alledged_rank)\n not used\n Global LinBox::isPositiveDefinite (const Blackbox &A, const RingCategories::\n IntegerTag &tag, const Method::Auto &M)\n should try a modular minpoly and decide on the degree of that...\n+ this crude size check can be refined\n Global LinBox::isPositiveDefinite (const Blackbox &A, const RingCategories::\n IntegerTag &tag, const Method::DenseElimination &M)\n why map (same field)? This is a copy.\n- Global LinBox::isPositiveDefinite (const Blackbox &A, const RingCategories::\n- IntegerTag &tag, const Method::Auto &M)\n- this crude size check can be refined\n Global LinBox::Protected::checkBlasApply (const Field &F, size_t n)\n this does not seem right for float or any non M/modular field: doing blas\n wherever we have a fflas-ffpack field (?)\n should return true for some Givaro::ZRing\n Global LinBox::Protected::Identity (const Field &F, typename Field::Element\n *Id, const size_t ldI, const size_t lig1, const size_t col1, const size_t\n lig2, const size_t col2)\n long et size_t ne cohabitent pas bien.\n Global LinBox::Protected::random_rankupdate (Field &F, const Randiter &R,\n BlasMatrix<_Field_> &A, int &rank, const RingCategories::IntegerTag &tag)\n- do perms ?\n const !\n+ do perms ?\n Global LinBox::randomAns (const Ring &R, Matrix &Mat, size_t n, size_t epr)\n use BlasVector.\n Global LinBox::RandomMatrixWithDet (const Field &F, typename Field ::Element\n *A, const size_t &m, const size_t &lda, const typename Field ::Element &det)\n not used\n Global LinBox::rank (size_t &r, const Blackbox &A, const RingCategories::\n ModularTag &tag, const Method::Auto &m)\n@@ -180,14 +178,16 @@\n Global OpenCLMatrixDomain<_Field__>::isZero (const Matrix1 &A)\n use refs\n Class PLUQMatrix<_Field_>\n Should really be tempalted by Matrix and be a (sub)domain\n Global PLUQMatrix<_Field_>::PLUQMatrix (BlasMatrix< Field, _Rep > &A,\n BlasPermutation<_size_t_> &P, BlasPermutation<_size_t_> &Q)\n in place ?\n+ Global printPolynomial (const Field &F, const Polynomial &v)\n+ this should be elsewhere\n File rational-reconstruction.h\n there seems to be a confusion between Ring _r, [iI]nteger... Besides we\n have to check that Ring/Integer/NTL_ZZ are the 'same'.\n Global ScalarMatrix<_Field__>::ScalarMatrix ()\n this should not be allowed (unknown field)\n Global SparseMatrix<__Field,_SparseMatrixFormat::COO_>::SparseMatrix (const\n _Field &F, VectStream &stream)\n@@ -205,49 +205,47 @@\n &out) const\n we should not support too many formats\n Global SparseMatrixGeneric<__Field,__Row,_Trait_>::size () const\n should it be elements or non zero elements ?\n Global SparseMatrixWriteHelper<_Matrix_>::write (const Matrix &A, std::\n ostream &os, Tag::FileFormat format)\n this is reall the \"generic\" one\n+ File test-charpoly.C\n+ occasionnnaly there is a \"SIGFPE, Arithmetic exception.\" in CRA\n+ testRandomCharpoly is not always tested !!\n File test-commentator.C\n this test does not even test if anything is outputted (and it passes even\n though)\n+ File test-ffpack.C\n+ this file does not compile or the test fails for some fields.\n+ File test-ftrmm.C\n+ ftrmm fails on non-double transposed versions.\n+ is fgemm correct on null A and B ?\n File test-matrix-stream.C\n this tests reveals memory leaks\n File test-matrix-utils.h\n put in matrix/random-matrix.h\n File test-smith-form.C\n should work for NTL Integers too\n+ Global test_fgemm (std::ostream &report, const Field &F)\n+ if beta != 0 but A and B are 0 (or don't exist) then C != beta C\n+ needs p prime.\n+ Global test_ftrmm (std::ostream &report, const Field &F)\n+ same code as above ?\n+ same code as above ?\n+ same code as above ?\n+ same code as above ?\n+ same code as above ?\n+ same code as above ?\n Global test_full_multip_matrix (std::ostream &report, size_t PrimeSize,\n size_t Size, std::pair< size_t, size_t > dims)\n it is not possible to allocate some memory and use submatrices ?\n Global Toeplitz<_typename__PRing::CoeffField,__PRing_>::write (std::ostream\n &os=std::cout) const\n this is not MM format at all\n Class Transpose<_Blackbox_>\n no write here. test-blackbox.h requires it\n Class ZOQuad<__Field_>\n needs read for test-blackbox.h\n- Global printPolynomial (const Field &F, const Polynomial &v)\n- this should be elsewhere\n- File test-charpoly.C\n- occasionnnaly there is a \"SIGFPE, Arithmetic exception.\" in CRA\n- testRandomCharpoly is not always tested !!\n- File test-ffpack.C\n- this file does not compile or the test fails for some fields.\n- File test-ftrmm.C\n- ftrmm fails on non-double transposed versions.\n- is fgemm correct on null A and B ?\n- Global test_fgemm (std::ostream &report, const Field &F)\n- needs p prime.\n- if beta != 0 but A and B are 0 (or don't exist) then C != beta C\n- Global test_ftrmm (std::ostream &report, const Field &F)\n- same code as above ?\n- same code as above ?\n- same code as above ?\n- same code as above ?\n- same code as above ?\n- same code as above ?\n \n ===============================================================================\n Generated on Sun May 9 2021 16:28:04 for linbox by\u00a0[doxygen] 1.9.1\n"}]}, {"source1": "./usr/share/doc/liblinbox-dev/test.html", "source2": "./usr/share/doc/liblinbox-dev/test.html", "comments": ["Ordering differences only"], "unified_diff": "@@ -211,44 +211,44 @@\n
no doc.
\n
File test-smith-form-local.C
\n

no doc.

\n

no doc.

\n
\n
File test-smith-form.C
\n
no doc. !
\n+
File test-solve.C
\n+

no doc.

\n+

no doc.

\n+
\n+
File test-sparse.C
\n+
no doc.
\n
File test-subiterator.C
\n
no doc.
\n
File test-submatrix.C
\n
no doc.
\n
File test-subvector.C
\n
no doc.
\n+
File test-sum.C
\n+
no doc.
\n
File test-toeplitz-det.C
\n
no doc.
\n
File test-toom-cook.C
\n
toom-cook multiplication routine
\n+
File test-trace.C
\n+
no doc.
\n
File test-transpose.C
\n
no doc.
\n
File test-triplesbb-omp.C
\n
no doc.
\n
File test-triplesbb.C
\n
no doc.
\n-
File test-vector-domain.C
\n-
no doc.
\n-
File test-solve.C
\n-

no doc.

\n-

no doc.

\n-
\n-
File test-sparse.C
\n-
no doc.
\n-
File test-sum.C
\n-
no doc.
\n-
File test-trace.C
\n-
no doc.
\n
File test-tutorial.C
\n
no doc.
\n+
File test-vector-domain.C
\n+
no doc.
\n
File test-zero-one.C
\n
no doc.
\n \n \n \n \n
\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -174,41 +174,41 @@\n File test-smith-form-iliopoulos.C\n no doc.\n File test-smith-form-local.C\n no doc.\n no doc.\n File test-smith-form.C\n no doc. !\n+ File test-solve.C\n+ no doc.\n+ no doc.\n+ File test-sparse.C\n+ no doc.\n File test-subiterator.C\n no doc.\n File test-submatrix.C\n no doc.\n File test-subvector.C\n no doc.\n+ File test-sum.C\n+ no doc.\n File test-toeplitz-det.C\n no doc.\n File test-toom-cook.C\n toom-cook multiplication routine\n+ File test-trace.C\n+ no doc.\n File test-transpose.C\n no doc.\n File test-triplesbb-omp.C\n no doc.\n File test-triplesbb.C\n no doc.\n- File test-vector-domain.C\n- no doc.\n- File test-solve.C\n- no doc.\n- no doc.\n- File test-sparse.C\n- no doc.\n- File test-sum.C\n- no doc.\n- File test-trace.C\n- no doc.\n File test-tutorial.C\n no doc.\n+ File test-vector-domain.C\n+ no doc.\n File test-zero-one.C\n no doc.\n \n ===============================================================================\n Generated on Sun May 9 2021 16:28:04 for linbox by\u00a0[doxygen] 1.9.1\n"}]}, {"source1": "./usr/share/doc/liblinbox-dev/todo.html", "source2": "./usr/share/doc/liblinbox-dev/todo.html", "unified_diff": "@@ -85,25 +85,25 @@\n

This will avoid copy back/forth a BlasMatrix<Givaro::ZRing<Integer> >

\n \n
Namespace LinBox
\n
GMP Integers can be configured with limbs of different sizes (32 or 64 bits), depending on the machine. We do not handle that right now, but storing info about their dimension might be a good idea, to at least emit a warning.
\n
Global LinBox::NullSpaceBasis (const Tag::Side Side, const BlasMatrix< Field > &A, BlasMatrix< Field > &Ker, size_t &kerdim)
\n
make it work for BlasSubmatrix too
\n
Global LinBox::NullSpaceBasisIn (const Tag::Side Side, BlasSubmatrix< DenseMat > &A, BlasMatrix< typename DenseMat::Field > &Ker, size_t &kerdim)
\n-

uses too much memory

\n-

use copy

\n-
\n+
uses too much memory
\n
Global LinBox::NullSpaceBasisIn (const Tag::Side Side, BlasMatrix< Field > &A, BlasMatrix< Field > &Ker, size_t &kerdim)
\n
make it work for BlasSubmatrix too
\n+
Global LinBox::NullSpaceBasisIn (const Tag::Side Side, BlasSubmatrix< DenseMat > &A, BlasMatrix< typename DenseMat::Field > &Ker, size_t &kerdim)
\n+
use copy
\n
Global LinBox::prepare (const Field &F, Vector &y, const typename Field::Element &a)
\n
Vector knows Field
\n
Global LinBox::Protected::random_lu_rank (const Field &F, const Randiter &R, BlasMatrix< Field > &A, int &rank, const RingCategories::ModularTag &tag)
\n-

: L = [[L1,0],[A,L2]] ;U = [[U1,B],[0,U2]] ; LU = [[ rec(L1,U1), ftrmm(L1,B)],[ftrmm(A,U1),fgemm(A,B)+rec(L2,U2) ]] de m\u00eame UL

\n-

!!!

\n+

!!!

\n

RandomPermutation avec P de type [Matrix-Blas]Permutation

\n+

: L = [[L1,0],[A,L2]] ;U = [[U1,B],[0,U2]] ; LU = [[ rec(L1,U1), ftrmm(L1,B)],[ftrmm(A,U1),fgemm(A,B)+rec(L2,U2) ]] de m\u00eame UL

\n

create BMD.applyP(A,P,Tag::Left) ; avec P : BlasPermutation ou P : MatrixPermutation

\n

BlasPermutation a un ordre p et une taille r distinctes !!!

\n
\n
Global LinBox::Protected::random_lu_rank (const Ring &ZZ, const Randiter &R, BlasMatrix< Ring > &A, int &rank, const RingCategories::IntegerTag &tag)
\n
ZZ is A.field() !
\n
Global LinBox::Protected::Zero (const Field &F, typename Field::Element *Z, const size_t ldZ, const size_t lig1, const size_t col1, const size_t lig2, const size_t col2)
\n
use fzero
\n@@ -124,16 +124,16 @@\n
Global MatrixPermutation< _UnsignedInt >::Transpose ()
\n
in place ! (revient \u00e0 parcourir des cycles)
\n
File minpoly-integer.h
\n
better filter out repeated primes
\n
Global OpenCLMatrixDomain< Field_ >::mulpoly (Polynomial &res, const Polynomial &P1, const Polynomial &P2) const
\n
Temporary: waiting for an implementation of a domain of polynomial
\n
Class PlotGraph
\n-

make depend on PlotStyle (that owns data)

\n-

use getUsingSeries in latex/html/csv/xml

\n+

use getUsingSeries in latex/html/csv/xml

\n+

make depend on PlotStyle (that owns data)

\n
\n
Class PlotStyle
\n

setUsingSeries(const svector_t &)

\n

Allow for 'speed up against col X' style

\n

make depend on PlotData

\n
\n
Global PowerGaussDomainPowerOfTwo< UnsignedIntType >::isOdd (const UInt_t &b) const
\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -55,27 +55,29 @@\n a warning.\n Global LinBox::NullSpaceBasis (const Tag::Side Side, const BlasMatrix<_Field\n > &A, BlasMatrix<_Field_> &Ker, size_t &kerdim)\n make it work for BlasSubmatrix too\n Global LinBox::NullSpaceBasisIn (const Tag::Side Side, BlasSubmatrix<\n DenseMat > &A, BlasMatrix< typename DenseMat::Field > &Ker, size_t &kerdim)\n uses too much memory\n- use copy\n Global LinBox::NullSpaceBasisIn (const Tag::Side Side, BlasMatrix<_Field_>\n &A, BlasMatrix<_Field_> &Ker, size_t &kerdim)\n make it work for BlasSubmatrix too\n+ Global LinBox::NullSpaceBasisIn (const Tag::Side Side, BlasSubmatrix<\n+ DenseMat > &A, BlasMatrix< typename DenseMat::Field > &Ker, size_t &kerdim)\n+ use copy\n Global LinBox::prepare (const Field &F, Vector &y, const typename Field::\n Element &a)\n Vector knows Field\n Global LinBox::Protected::random_lu_rank (const Field &F, const Randiter &R,\n BlasMatrix<_Field_> &A, int &rank, const RingCategories::ModularTag &tag)\n- : L = [[L1,0],[A,L2]] ;U = [[U1,B],[0,U2]] ; LU = [[ rec(L1,U1), ftrmm\n- (L1,B)],[ftrmm(A,U1),fgemm(A,B)+rec(L2,U2) ]] de m\u00eame UL\n !!!\n RandomPermutation avec P de type [Matrix-Blas]Permutation\n+ : L = [[L1,0],[A,L2]] ;U = [[U1,B],[0,U2]] ; LU = [[ rec(L1,U1), ftrmm\n+ (L1,B)],[ftrmm(A,U1),fgemm(A,B)+rec(L2,U2) ]] de m\u00eame UL\n create BMD.applyP(A,P,Tag::Left) ; avec P : BlasPermutation ou P :\n MatrixPermutation\n BlasPermutation a un ordre p et une taille r distinctes !!!\n Global LinBox::Protected::random_lu_rank (const Ring &ZZ, const Randiter &R,\n BlasMatrix< Ring > &A, int &rank, const RingCategories::IntegerTag &tag)\n ZZ is A.field() !\n Global LinBox::Protected::Zero (const Field &F, typename Field::Element *Z,\n@@ -105,16 +107,16 @@\n in place ! (revient \u00e0 parcourir des cycles)\n File minpoly-integer.h\n better filter out repeated primes\n Global OpenCLMatrixDomain<_Field__>::mulpoly (Polynomial &res, const\n Polynomial &P1, const Polynomial &P2) const\n Temporary: waiting for an implementation of a domain of polynomial\n Class PlotGraph\n- make depend on PlotStyle (that owns data)\n use getUsingSeries in latex/html/csv/xml\n+ make depend on PlotStyle (that owns data)\n Class PlotStyle\n setUsingSeries(const svector_t &)\n Allow for 'speed up against col X' style\n make depend on PlotData\n Global PowerGaussDomainPowerOfTwo<_UnsignedIntType_>::isOdd (const UInt_t &b)\n const\n use Givaro isOdd\n"}]}]}]}]}]}