linbox
Bug List
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 >

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 ?
Global BlasMatrix< _Field, _Storage >::operator[] (size_t i)
Rows and Cols should be BlasVectors
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

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

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 (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)
leaks here (new not deleted)
Global generate_precRatMat (string &filename, RMatrix &M, DVector &den, Integer &denPrec)
non reentrant strtok
Class indexDomain
does not belong here
Class IndexedCategory< BlasMatrix< Field, _Rep > >
this is trait, not a Category
Namespace LinBox

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

those are not just traits:

this does not belong here.

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

this crude size check can be refined

Global LinBox::isPositiveDefinite (const Blackbox &A, const RingCategories::IntegerTag &tag, const Method::DenseElimination &M)
why map (same field)? This is a copy.
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 ?

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)
Global LinBox::rank (size_t &res, const Blackbox &A, const RingCategories::ModularTag &tag, const Method::Wiedemann &M)
This is too much for solutions. It belongs in algorithms
Global LinBox::rankInPlace (size_t &r, Blackbox &A)
there is no Elimination() method there.
Namespace LinBox::SparseFileFormat
use the enum!!!!
Global LinBox::VectorWrapper::constRefSpecialized (Vector &v, size_t i, VectorCategories::SparseSequenceVectorTag)
who is zero ?
Global LinBox::VectorWrapper::constRefSpecialized (Vector &v, size_t i, VectorCategories::SparseParallelVectorTag)
who is zero ?
Global LinBox::VectorWrapper::refSpecialized (Vector &v, size_t i, VectorCategories::SparseSequenceVectorTag)
who is zero ?
Global LinBox::VectorWrapper::refSpecialized (Vector &v, size_t i, VectorCategories::SparseParallelVectorTag)
who is zero ?
Global main (int argc, char *argv[])
q or not q ?
Global main (int ac, char **av)
: this one completely fails :
Global main (int argc, char **argv)

testRandomIterator fails

testRandomIterator fails

should be tried on NTZ_LL too

should be tried on NTZ_LL too

File matrix/random-matrix.h
this belongs to algorithms...
Global MatrixDomain< Field_ >::Rep_
should be BlasVector
Class MatrixDomain< GF2 >
this is half done and makes MatrixDomain on GF2 hardly usable.
Global MatrixDomain< GF2 >::mulColSpecialized (Vector1 &w, const Matrix &A, const Vector2 &v, VectorCategories::DenseZeroOneVectorTag, VectorCategories::DenseZeroOneVectorTag) const
what's happening here ?
Class MatrixRank< _Ring, _Field, _RandomPrime >
there is no generic rankIn method.
Global MatrixRank< _Ring, _Field, _RandomPrime >::rank (const SparseMatrix< Ring, Row > &A) const
we suppose we can map IRing to Field...
Global MatrixRank< _Ring, _Field, _RandomPrime >::rank (const BlasMatrix< IRing > &A) const
we suppose we can map IRing to Field...
File modular.h
move Element& init(const Element&) to FFPACK. use using more..
Global MoorePenrose< Blackbox >::MoorePenrose (const MoorePenrose &A)
Value of pointer '_matB1', which points to allocated memory, is copied in copy constructor instead of allocating new memory.
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

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
may be 0...
Global SparseMatrix< _Field, SparseMatrixFormat::CSR >::SparseMatrix (const _Field &F, VectStream &stream)
may be 0...
Global SparseMatrix< _Field, SparseMatrixFormat::HYB >::applyTranspose (Vector &y, const Vector &x, const Element &a) const
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