--- /tmp/linbox-1.6.3-3vbuj5qw2/debian/liblinbox-doc_1.6.3-3_all.deb
+++ liblinbox-doc_1.6.3-3_all.deb
├── file list
│ @@ -1,3 +1,3 @@
│ -rw-r--r-- 0 0 0 4 2021-05-09 16:28:04.000000 debian-binary
│ --rw-r--r-- 0 0 0 77892 2021-05-09 16:28:04.000000 control.tar.xz
│ --rw-r--r-- 0 0 0 65136832 2021-05-09 16:28:04.000000 data.tar.xz
│ +-rw-r--r-- 0 0 0 77784 2021-05-09 16:28:04.000000 control.tar.xz
│ +-rw-r--r-- 0 0 0 65137636 2021-05-09 16:28:04.000000 data.tar.xz
├── control.tar.xz
│ ├── control.tar
│ │ ├── ./md5sums
│ │ │ ├── ./md5sums
│ │ │ │┄ Files differ
├── data.tar.xz
│ ├── data.tar
│ │ ├── file list
│ │ │ @@ -154,15 +154,15 @@
│ │ │ -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
│ │ │ -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
│ │ │ -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
│ │ │ -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
│ │ │ -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
│ │ │ -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
│ │ │ -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
│ │ │ --rw-r--r-- 0 root (0) root (0) 30041 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/bug.html
│ │ │ +-rw-r--r-- 0 root (0) root (0) 30341 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/bug.html
│ │ │ -rw-r--r-- 0 root (0) root (0) 6650 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/butterfly_8h.html
│ │ │ -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
│ │ │ -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
│ │ │ -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
│ │ │ -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
│ │ │ -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
│ │ │ -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
│ │ │ @@ -3688,15 +3688,15 @@
│ │ │ -rw-r--r-- 0 root (0) root (0) 10633 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/timer_8h.html
│ │ │ -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
│ │ │ -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
│ │ │ -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
│ │ │ -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
│ │ │ -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
│ │ │ -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
│ │ │ --rw-r--r-- 0 root (0) root (0) 26825 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/todo.html
│ │ │ +-rw-r--r-- 0 root (0) root (0) 26826 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/todo.html
│ │ │ -rw-r--r-- 0 root (0) root (0) 9509 2021-05-09 16:28:04.000000 ./usr/share/doc/liblinbox-dev/toeplitz_8h.html
│ │ │ -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
│ │ │ -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
│ │ │ -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
│ │ │ -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
│ │ │ -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
│ │ │ -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
│ │ ├── ./usr/share/doc/liblinbox-dev/bug.html
│ │ │ @@ -46,16 +46,16 @@
│ │ │
Global bench_rank (int carac)
│ │ │ no gz reader ?
│ │ │ Global BlackboxContainerBase< Field, Blackbox >::BlackboxContainerBase (const Blackbox *BB, const Field &F, size_t Size)
│ │ │ no need for F
│ │ │ Global BlackboxContainerBase< Field, Blackbox >::BlackboxContainerBase (const Blackbox *BB, const Field &F)
│ │ │ no need for F
│ │ │ Class BlasMatrix< _Field, _Storage >
│ │ │ -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)
│ │ │ -why not BlasMatrixDomain ?
│ │ │ +why not BlasMatrixDomain ?
│ │ │ +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)
│ │ │
│ │ │ Global BlasMatrix< _Field, _Storage >::_MD
│ │ │ why public ?
│ │ │ Global BlasMatrix< _Field, _Storage >::_ptr
│ │ │ why public ?
│ │ │ Global BlasMatrix< _Field, _Storage >::_VD
│ │ │ why public ?
│ │ │ @@ -64,37 +64,37 @@
│ │ │ Global BlasMatrix< _Field, _Storage >::random (const size_t &b)
│ │ │ does not work for submatrices.
│ │ │ Class BlasMatrix< _Field, _Storage >::rebind< _Tp1 >
│ │ │ other rep
│ │ │ Global BlasMatrixDomain< Field_ >::areEqual (const Matrix1 &A, const Matrix2 &B) const
│ │ │ use refs
│ │ │ Global BlasMatrixDomain< Field_ >::isIdentity (const Matrix1 &A) const
│ │ │ -use refs
│ │ │ -use refs
│ │ │ +use refs
│ │ │ +use refs
│ │ │
│ │ │ Global BlasMatrixDomain< Field_ >::isIdentityGeneralized (const Matrix1 &A) const
│ │ │ -use refs
│ │ │ -use refs
│ │ │ +use refs
│ │ │ +use refs
│ │ │
│ │ │ Global BlasMatrixDomain< Field_ >::isZero (const Matrix1 &A) const
│ │ │ use refs
│ │ │ Global BlasMatrixDomain< Field_ >::setZero (Matrix &I) const
│ │ │ use fflas-ffpack
│ │ │ Global BlasSubmatrix< _Matrix >::apply (Vector1 &y, const Vector2 &x) const
│ │ │ every vector we use here should have a stride/be blas vectors so it's not really templated by Vector1 Vector2 in general
│ │ │ Global BlasSubmatrix< _Matrix >::applyTranspose (Vector1 &y, const Vector2 &x) const
│ │ │ use Matrix domain
│ │ │ Global BlasSubmatrix< _Matrix >::BlasSubmatrix (constMatrixType &M, size_t rowbeg, size_t colbeg, size_t Rowdim, size_t Coldim)
│ │ │ NOT HERE
│ │ │ Global BlasSubmatrix< _Matrix >::read (std::istream &file)
│ │ │ reading a submatrix should not be allowed !!
│ │ │ -Global CRABuilderEarlyMultip< Domain_Type >::dot (DomainElement &z, const Domain &D, const Vect1 &v1, const Vect2 &v2)
│ │ │ -why a dot product here ?
│ │ │ Global CRABuilderEarlyMultip< Domain_Type >::dot (Integer &z, const Integer &D, const Vect1 &v1, const Vect2 &v2)
│ │ │ why a dot product here ?
│ │ │ +Global CRABuilderEarlyMultip< Domain_Type >::dot (DomainElement &z, const Domain &D, const Vect1 &v1, const Vect2 &v2)
│ │ │ +why a dot product here ?
│ │ │ Global distinct (I1 a, I1 b, Lp &c)
│ │ │ this already exists elsewhere
│ │ │ this already exists elsewhere
│ │ │
│ │ │ Global field_subtests::testRingTrivia (const Field &F, const char *name)
│ │ │ BlockRing does not know about 0 and 1 !
│ │ │ Global FieldArchetype::constructor (FieldAbstract *trait, Field_qcq *field_ptr)
│ │ │ @@ -103,36 +103,36 @@
│ │ │ non reentrant strtok
│ │ │ Class indexDomain
│ │ │ does not belong here
│ │ │ Class IndexedCategory< BlasMatrix< Field, _Rep > >
│ │ │ this is trait, not a Category
│ │ │ Namespace LinBox
│ │ │ those are not just traits:
│ │ │ -it is dangerous to include matrices defs that include hom for their rebind...
│ │ │ -this does not belong here.
│ │ │ +this does not belong here.
│ │ │ +it is dangerous to include matrices defs that include hom for their rebind...
│ │ │
│ │ │ Global LinBox::checkBlasPrime (const Prime p)
│ │ │ why is this hard coded ?
│ │ │ 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)
│ │ │ not used
│ │ │ Global LinBox::isPositiveDefinite (const Blackbox &A, const RingCategories::IntegerTag &tag, const Method::Auto &M)
│ │ │ -should try a modular minpoly and decide on the degree of that...
│ │ │ -this crude size check can be refined
│ │ │ -
│ │ │ +should try a modular minpoly and decide on the degree of that...
│ │ │ Global LinBox::isPositiveDefinite (const Blackbox &A, const RingCategories::IntegerTag &tag, const Method::DenseElimination &M)
│ │ │ why map (same field)? This is a copy.
│ │ │ +Global LinBox::isPositiveDefinite (const Blackbox &A, const RingCategories::IntegerTag &tag, const Method::Auto &M)
│ │ │ +this crude size check can be refined
│ │ │ Global LinBox::Protected::checkBlasApply (const Field &F, size_t n)
│ │ │ this does not seem right for float or any non M/modular field: doing blas wherever we have a fflas-ffpack field (?)
│ │ │ should return true for some Givaro::ZRing
│ │ │
│ │ │ 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)
│ │ │ long et size_t ne cohabitent pas bien.
│ │ │ Global LinBox::Protected::random_rankupdate (Field &F, const Randiter &R, BlasMatrix< Field > &A, int &rank, const RingCategories::IntegerTag &tag)
│ │ │ -const !
│ │ │ -do perms ?
│ │ │ +do perms ?
│ │ │ +const !
│ │ │
│ │ │ Global LinBox::randomAns (const Ring &R, Matrix &Mat, size_t n, size_t epr)
│ │ │ use BlasVector.
│ │ │ Global LinBox::RandomMatrixWithDet (const Field &F, typename Field ::Element *A, const size_t &m, const size_t &lda, const typename Field ::Element &det)
│ │ │ not used
│ │ │ Global LinBox::rank (size_t &r, const Blackbox &A, const RingCategories::ModularTag &tag, const Method::Auto &m)
│ │ │ choose (benchmark) better cuttoff (size, nbnz, sparse rep)
│ │ │ @@ -183,25 +183,23 @@
│ │ │ Global OpenCLMatrixDomain< Field_ >::areEqual (const Matrix1 &A, const Matrix2 &B)
│ │ │ use refs
│ │ │ Global OpenCLMatrixDomain< Field_ >::isIdentity (const Matrix1 &A)
│ │ │ use refs
│ │ │ use refs
│ │ │
│ │ │ Global OpenCLMatrixDomain< Field_ >::isIdentityGeneralized (const Matrix1 &A)
│ │ │ -use refs
│ │ │ -use refs
│ │ │ +use refs
│ │ │ +use refs
│ │ │
│ │ │ Global OpenCLMatrixDomain< Field_ >::isZero (const Matrix1 &A)
│ │ │ use refs
│ │ │ Class PLUQMatrix< Field >
│ │ │ Should really be tempalted by Matrix and be a (sub)domain
│ │ │ Global PLUQMatrix< Field >::PLUQMatrix (BlasMatrix< Field, _Rep > &A, BlasPermutation< size_t > &P, BlasPermutation< size_t > &Q)
│ │ │ in place ?
│ │ │ -Global printPolynomial (const Field &F, const Polynomial &v)
│ │ │ -this should be elsewhere
│ │ │ File rational-reconstruction.h
│ │ │ there seems to be a confusion between Ring _r, [iI]nteger... Besides we have to check that Ring/Integer/NTL_ZZ are the 'same'.
│ │ │ Global ScalarMatrix< Field_ >::ScalarMatrix ()
│ │ │ this should not be allowed (unknown field)
│ │ │ Global SparseMatrix< _Field, SparseMatrixFormat::COO >::SparseMatrix (const _Field &F, VectStream &stream)
│ │ │ may be 0...
│ │ │ Global SparseMatrix< _Field, SparseMatrixFormat::COO::implicit >::apply (Vector &y, const Vector &x, const Element &a) const
│ │ │ @@ -212,52 +210,54 @@
│ │ │ if too big, create transpose.
│ │ │ Global SparseMatrix< Field_, SparseMatrixFormat::TPL >::write (std::ostream &out) const
│ │ │ we should not support too many formats
│ │ │ Global SparseMatrixGeneric< _Field, _Row, Trait >::size () const
│ │ │ should it be elements or non zero elements ?
│ │ │ Global SparseMatrixWriteHelper< Matrix >::write (const Matrix &A, std::ostream &os, Tag::FileFormat format)
│ │ │ this is reall the "generic" one
│ │ │ -File test-charpoly.C
│ │ │ -occasionnnaly there is a "SIGFPE, Arithmetic exception." in CRA
│ │ │ -testRandomCharpoly is not always tested !!
│ │ │ -
│ │ │ File test-commentator.C
│ │ │ this test does not even test if anything is outputted (and it passes even though)
│ │ │ -File test-ffpack.C
│ │ │ -this file does not compile or the test fails for some fields.
│ │ │ -File test-ftrmm.C
│ │ │ -ftrmm fails on non-double transposed versions.
│ │ │ -is fgemm correct on null A and B ?
│ │ │ -
│ │ │ File test-matrix-stream.C
│ │ │ this tests reveals memory leaks
│ │ │ File test-matrix-utils.h
│ │ │ put in matrix/random-matrix.h
│ │ │ File test-smith-form.C
│ │ │ should work for NTL Integers too
│ │ │ -Global test_fgemm (std::ostream &report, const Field &F)
│ │ │ -if beta != 0 but A and B are 0 (or don't exist) then C != beta C
│ │ │ -needs p prime.
│ │ │ -
│ │ │ -Global test_ftrmm (std::ostream &report, const Field &F)
│ │ │ -same code as above ?
│ │ │ -same code as above ?
│ │ │ -same code as above ?
│ │ │ -same code as above ?
│ │ │ -same code as above ?
│ │ │ -same code as above ?
│ │ │ -
│ │ │ Global test_full_multip_matrix (std::ostream &report, size_t PrimeSize, size_t Size, std::pair< size_t, size_t > dims)
│ │ │ it is not possible to allocate some memory and use submatrices ?
│ │ │ Global Toeplitz< typename _PRing::CoeffField, _PRing >::write (std::ostream &os=std::cout) const
│ │ │ this is not MM format at all
│ │ │ Class Transpose< Blackbox >
│ │ │ no write here. test-blackbox.h requires it
│ │ │ Class ZOQuad< _Field >
│ │ │ -needs read for test-blackbox.h
│ │ │ +needs read for test-blackbox.h
│ │ │ +Global printPolynomial (const Field &F, const Polynomial &v)
│ │ │ +this should be elsewhere
│ │ │ +File test-charpoly.C
│ │ │ +occasionnnaly there is a "SIGFPE, Arithmetic exception." in CRA
│ │ │ +testRandomCharpoly is not always tested !!
│ │ │ +
│ │ │ +File test-ffpack.C
│ │ │ +this file does not compile or the test fails for some fields.
│ │ │ +File test-ftrmm.C
│ │ │ +ftrmm fails on non-double transposed versions.
│ │ │ +is fgemm correct on null A and B ?
│ │ │ +
│ │ │ +Global test_fgemm (std::ostream &report, const Field &F)
│ │ │ +needs p prime.
│ │ │ +if beta != 0 but A and B are 0 (or don't exist) then C != beta C
│ │ │ +
│ │ │ +Global test_ftrmm (std::ostream &report, const Field &F)
│ │ │ +same code as above ?
│ │ │ +same code as above ?
│ │ │ +same code as above ?
│ │ │ +same code as above ?
│ │ │ +same code as above ?
│ │ │ +same code as above ?
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ ├── ./usr/share/doc/liblinbox-dev/test.html
│ │ │ @@ -39,36 +39,36 @@
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ -- File test-charpoly.C
│ │ │ -- characteristic polynomial of some matrices (sparse, special)
│ │ │ -- File test-commentator.C
│ │ │ -- tests LinBox::Commentator
│ │ │ -- File test-cra.C
│ │ │ -- cra algorithms
│ │ │ - File test-bitonic-sort.C
│ │ │ - NO DOC
│ │ │ - File test-blackbox-block-container.C
│ │ │ - no doc.
│ │ │ - File test-blas-domain.C
│ │ │ NO DOC
│ │ │ NO DOC
│ │ │
│ │ │ - File test-block-ring.C
│ │ │ - NO DOC
│ │ │ - File test-block-wiedemann.C
│ │ │ - no doc.
│ │ │ - File test-butterfly.C
│ │ │ - NO DOC
│ │ │ +- File test-charpoly.C
│ │ │ +- characteristic polynomial of some matrices (sparse, special)
│ │ │ +- File test-commentator.C
│ │ │ +- tests LinBox::Commentator
│ │ │ - File test-companion.C
│ │ │ - NO DOC
│ │ │ +- File test-cra.C
│ │ │ +- cra algorithms
│ │ │ - File test-cradomain.C
│ │ │ - tests LinBox::ChineseRemainer (see Chinese Remaindering Algorithm)
│ │ │ - File test-dense-zero-one.C
│ │ │ - NO DOC
│ │ │ - File test-dense.C
│ │ │ - NO DOC
│ │ │ - File test-det.C
│ │ │ @@ -211,44 +211,44 @@
│ │ │ - no doc.
│ │ │ - File test-smith-form-local.C
│ │ │ no doc.
│ │ │ no doc.
│ │ │
│ │ │ - File test-smith-form.C
│ │ │ - no doc. !
│ │ │ -- File test-solve.C
│ │ │ -no doc.
│ │ │ -no doc.
│ │ │ -
│ │ │ -- File test-sparse.C
│ │ │ -- no doc.
│ │ │ - File test-subiterator.C
│ │ │ - no doc.
│ │ │ - File test-submatrix.C
│ │ │ - no doc.
│ │ │ - File test-subvector.C
│ │ │ - no doc.
│ │ │ -- File test-sum.C
│ │ │ -- no doc.
│ │ │ - File test-toeplitz-det.C
│ │ │ - no doc.
│ │ │ - File test-toom-cook.C
│ │ │ - toom-cook multiplication routine
│ │ │ -- File test-trace.C
│ │ │ -- no doc.
│ │ │ - File test-transpose.C
│ │ │ - no doc.
│ │ │ - File test-triplesbb-omp.C
│ │ │ - no doc.
│ │ │ - File test-triplesbb.C
│ │ │ - no doc.
│ │ │ -- File test-tutorial.C
│ │ │ -- no doc.
│ │ │ - File test-vector-domain.C
│ │ │ - no doc.
│ │ │ +- File test-solve.C
│ │ │ +no doc.
│ │ │ +no doc.
│ │ │ +
│ │ │ +- File test-sparse.C
│ │ │ +- no doc.
│ │ │ +- File test-sum.C
│ │ │ +- no doc.
│ │ │ +- File test-trace.C
│ │ │ +- no doc.
│ │ │ +- File test-tutorial.C
│ │ │ +- no doc.
│ │ │ - File test-zero-one.C
│ │ │ - no doc.
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │ Namespace LinBox
│ │ │ 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.
│ │ │ Global LinBox::NullSpaceBasis (const Tag::Side Side, const BlasMatrix< Field > &A, BlasMatrix< Field > &Ker, size_t &kerdim)
│ │ │ make it work for BlasSubmatrix too
│ │ │ Global LinBox::NullSpaceBasisIn (const Tag::Side Side, BlasSubmatrix< DenseMat > &A, BlasMatrix< typename DenseMat::Field > &Ker, size_t &kerdim)
│ │ │ -use copy
│ │ │ -uses too much memory
│ │ │ +uses too much memory
│ │ │ +use copy
│ │ │
│ │ │ Global LinBox::NullSpaceBasisIn (const Tag::Side Side, BlasMatrix< Field > &A, BlasMatrix< Field > &Ker, size_t &kerdim)
│ │ │ make it work for BlasSubmatrix too
│ │ │ Global LinBox::prepare (const Field &F, Vector &y, const typename Field::Element &a)
│ │ │ Vector knows Field
│ │ │ Global LinBox::Protected::random_lu_rank (const Field &F, const Randiter &R, BlasMatrix< Field > &A, int &rank, const RingCategories::ModularTag &tag)
│ │ │ -!!!
│ │ │ +: 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ême UL
│ │ │ +!!!
│ │ │ RandomPermutation avec P de type [Matrix-Blas]Permutation
│ │ │ -: 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ême UL
│ │ │ create BMD.applyP(A,P,Tag::Left) ; avec P : BlasPermutation ou P : MatrixPermutation
│ │ │ BlasPermutation a un ordre p
et une taille r
distinctes !!!
│ │ │
│ │ │ Global LinBox::Protected::random_lu_rank (const Ring &ZZ, const Randiter &R, BlasMatrix< Ring > &A, int &rank, const RingCategories::IntegerTag &tag)
│ │ │ ZZ is A.field() !
│ │ │ 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)
│ │ │ use fzero
│ │ │ @@ -124,59 +124,43 @@
│ │ │ Global MatrixPermutation< _UnsignedInt >::Transpose ()
│ │ │ in place ! (revient à parcourir des cycles)
│ │ │ File minpoly-integer.h
│ │ │ better filter out repeated primes
│ │ │ Global OpenCLMatrixDomain< Field_ >::mulpoly (Polynomial &res, const Polynomial &P1, const Polynomial &P2) const
│ │ │ Temporary: waiting for an implementation of a domain of polynomial
│ │ │ Class PlotGraph
│ │ │ -use getUsingSeries in latex/html/csv/xml
│ │ │ -make depend on PlotStyle (that owns data)
│ │ │ +make depend on PlotStyle (that owns data)
│ │ │ +use getUsingSeries in latex/html/csv/xml
│ │ │
│ │ │ Class PlotStyle
│ │ │ setUsingSeries(const svector_t &)
│ │ │ Allow for 'speed up against col X' style
│ │ │ make depend on PlotData
│ │ │
│ │ │ -Class RNS< Unsigned >
│ │ │ -template by field and ring
│ │ │ -Module solutions
│ │ │ -its multipliers? its output form variants?
│ │ │ -primary form? Relative primary form of A? Primary form is similar to A and finest which is a direct sum of companion matrices Cfi such that, for all i, j, gcd(fi, fj) = 1 or fi or fj. Relative primary form is coarsest such decomposition.
│ │ │ -this may soon be reversed, in fact.
│ │ │ -
│ │ │ -Global test_applyP (std::ostream &report, const Field &F)
│ │ │ -test NULL
permutation
│ │ │ -Global test_ftrmm (std::ostream &report, const Field &F)
│ │ │ -check ftrsm fails nicely with non invertible A !
│ │ │ -InvertibleRandomIter
│ │ │ -F.isInvertible()
│ │ │ -
│ │ │ -Global testRing (Ring &F, const char *title, bool fieldp=true, bool runInitConvertIdentity=true)
│ │ │ -untested so far :
│ │ │ -- ostream &write (ostream &os) const
│ │ │ -- istream &read (istream &is)
│ │ │ -- ostream &write (ostream &os, const Element &x) const
│ │ │ -- istream &read (istream &is, Element &x) const
│ │ │ -- FieldArchetype (FieldAbstract*, ElementAbstract*, RandIterAbstract* = 0)
│ │ │ -
│ │ │ -
│ │ │ Global PowerGaussDomainPowerOfTwo< UnsignedIntType >::isOdd (const UInt_t &b) const
│ │ │ use Givaro isOdd
│ │ │ Global RandomDenseMatrix< Randiter, Field >::randomRank (Matrix &A, int rank)
│ │ │ use CatergoryTag
│ │ │ File rational-reconstruction.h
│ │ │ wrap Mat_ZZ<T>/IntMat in BlasMatrix<T>, BlasMatrix<Integer> e.g.
│ │ │ Global RationalReconstruction< _LiftingContainer, RatRecon >::dot (Integer &d, const InVect1 &v1, const InVect2 &v2) const
│ │ │ WHY a dot product here ?
│ │ │ Global RationalReconstruction< _LiftingContainer, RatRecon >::RationalReconstruction (const LiftingContainer &lcontainer, const Ring &r=Ring(), int THRESHOLD=50)
│ │ │ maybe use different ring than the ring in lcontainer
│ │ │ Class RawVector< Element >
│ │ │ template by Field
│ │ │ +Class RNS< Unsigned >
│ │ │ +template by field and ring
│ │ │ Global RNS< Unsigned >::RNS (size_t l, size_t ps=21)
│ │ │ if log2(maxint/curint)<ps use smaller genprime.
│ │ │ +Module solutions
│ │ │ +its multipliers? its output form variants?
│ │ │ +primary form? Relative primary form of A? Primary form is similar to A and finest which is a direct sum of companion matrices Cfi such that, for all i, j, gcd(fi, fj) = 1 or fi or fj. Relative primary form is coarsest such decomposition.
│ │ │ +this may soon be reversed, in fact.
│ │ │ +
│ │ │ Global SparseMatrix< _Field, SparseMatrixFormat::COO >::consistent () const
│ │ │
│ │ │ Global SparseMatrix< _Field, SparseMatrixFormat::COO >::setEntry (const size_t &i, const size_t &j, const Element &e)
│ │ │ make it faster if i is 0 or m-1 ?
│ │ │ Global SparseMatrix< _Field, SparseMatrixFormat::COO >::SparseMatrix (const _Field &F)
│ │ │ convert from other matrix.
│ │ │ Global SparseMatrix< _Field, SparseMatrixFormat::COO::implicit >::consistent () const
│ │ │ @@ -197,18 +181,18 @@
│ │ │ make it faster if i is 0 or m-1 ?
│ │ │ Global SparseMatrix< _Field, SparseMatrixFormat::ELL >::SparseMatrix (const _Field &F, VectStream &stream)
│ │ │
│ │ │ Global SparseMatrix< _Field, SparseMatrixFormat::ELL >::SparseMatrix (const _Field &F)
│ │ │ convert from other matrix.
│ │ │ Global SparseMatrix< _Field, SparseMatrixFormat::ELL_R >::setEntry (const size_t &i, const size_t &j, const Element &e)
│ │ │ make it faster if i is 0 or m-1 ?
│ │ │ -Global SparseMatrix< _Field, SparseMatrixFormat::ELL_R >::SparseMatrix (const _Field &F)
│ │ │ -convert from other matrix.
│ │ │ Global SparseMatrix< _Field, SparseMatrixFormat::ELL_R >::SparseMatrix (const _Field &F, VectStream &stream)
│ │ │
│ │ │ +Global SparseMatrix< _Field, SparseMatrixFormat::ELL_R >::SparseMatrix (const _Field &F)
│ │ │ +convert from other matrix.
│ │ │ Global SparseMatrix< _Field, SparseMatrixFormat::HYB >::consistent () const
│ │ │ Non element marker.
│ │ │ Global SparseMatrix< _Field, SparseMatrixFormat::HYB >::optimise ()
│ │ │ ±1 !
│ │ │ Global SparseMatrix< _Field, SparseMatrixFormat::HYB >::setEntry (const size_t &i, const size_t &j, const Element &e)
│ │ │ make it faster if i is 0 or m-1 ?
│ │ │ Global SparseMatrix< _Field, SparseMatrixFormat::HYB >::SparseMatrix ()
│ │ │ @@ -218,15 +202,31 @@
│ │ │ Global Squarize< Blackbox >::applyTranspose (Vector1 &y, const Vector2 &x) const
│ │ │ use field().zero
│ │ │ File test-matrix-stream.C
│ │ │ I would like to see a matrix writer that writes sms format and generic dense format.
│ │ │ File test-nullspace.C
│ │ │ test non dense nullspace
│ │ │ test for submatrices
│ │ │ -make sure this is faster than FFPACK ?
│ │ │ +make sure this is faster than FFPACK ?
│ │ │ +
│ │ │ +Global test_applyP (std::ostream &report, const Field &F)
│ │ │ +test NULL
permutation
│ │ │ +Global test_ftrmm (std::ostream &report, const Field &F)
│ │ │ +F.isInvertible()
│ │ │ +InvertibleRandomIter
│ │ │ +check ftrsm fails nicely with non invertible A !
│ │ │ +
│ │ │ +Global testRing (Ring &F, const char *title, bool fieldp=true, bool runInitConvertIdentity=true)
│ │ │ +untested so far :
│ │ │ +- ostream &write (ostream &os) const
│ │ │ +- istream &read (istream &is)
│ │ │ +- ostream &write (ostream &os, const Element &x) const
│ │ │ +- istream &read (istream &is, Element &x) const
│ │ │ +- FieldArchetype (FieldAbstract*, ElementAbstract*, RandIterAbstract* = 0)
│ │ │ +
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │