- Global HYB_ELL_COO_THRESHOLD
- benchmark me
- Module solutions
this may soon be reversed, in fact.
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.
its multipliers? its output form variants?
- Global LinBox::smithForm (SmithList< typename Blackbox::Field > &S, const Blackbox &A, const Method &M)
- Other methods will be provided later. For now see the examples/smith.C for ways to call other smith form algorithms.
- "
- tune me ?
- Global SparseMatrix< _Field, SparseMatrixFormat::HYB >::consistent () const
- Non element marker.
- 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 >::optimise ()
- ±1 !
- Global SparseMatrix< _Field, SparseMatrixFormat::HYB >::SparseMatrix ()
- convert from other matrix.
- "
±1 !
benchmark me
benchmark me
what is small ?
- File debug.h
- we should put vector printing elsewhere.
- Global HYB_ELL_THRESHOLD
- benchmark me
- "
- much less needs to be copied (faster?)
- 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, VectStream &stream)
-
- Global SparseMatrix< _Field, SparseMatrixFormat::ELL_R >::SparseMatrix (const _Field &F)
- convert from other matrix.
- Global SparseMatrix< _Field, SparseMatrixFormat::ELL >::consistent () const
- Non element marker.
- Global SparseMatrix< _Field, SparseMatrixFormat::ELL >::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 >::SparseMatrix (const _Field &F, VectStream &stream)
-
- Global SparseMatrix< _Field, SparseMatrixFormat::ELL >::SparseMatrix (const _Field &F)
- convert from other matrix.
- Global LinBox::prepare (const Field &F, Vector &y, const typename Field::Element &a)
- Vector knows Field
- Global SparseMatrix< _Field, SparseMatrixFormat::CSR >::consistent () const
-
- Global SparseMatrix< _Field, SparseMatrixFormat::CSR >::setEntry (const size_t &i, const size_t &j, const Element &e)
- make it faster if i is 0 or m-1 ?
- Global test_ftrmm (std::ostream &report, const Field &F)
- F.isInvertible()
- Class PlotGraph
use getUsingSeries in latex/html/csv/xml
make depend on PlotStyle (that owns data)
- Class PlotStyle
setUsingSeries(const svector_t &)
Allow for 'speed up against col X' style
make depend on PlotData
- Class DataSeries
- Times and Values could be dmatrix_t (and mergeable)
- "
check FN opened.
use getUsingSeries in latex/html/csv/xml
- File test-nullspace.C
test non dense nullspace
test for submatrices
make sure this is faster than FFPACK ?
- File test-matrix-stream.C
- I would like to see a matrix writer that writes sms format and generic dense format. Then we could have a self contained test that checks the write/read cycle without depending on preexisting data files.
- 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
- Global SparseMatrix< _Field, SparseMatrixFormat::CSR >::SparseMatrix (const _Field &F)
- convert from other matrix.
- Global _LB_MAX_SZ
- !
- Global field_subtests::testRingTrivia (const Field &F, const char *name)
- enable init with 1UL et -1L pour GMPRationalElement
- 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)
- " </dt><dd> \anchor _todo000089 come up with better test data, so can have a big singular matrix of all 0..9
<p>change "probability of dependence" to "set X dependent rows"
- Global generate_precRatMat (string &filename, RMatrix &M, DVector &den, Integer &denPrec)
- temp fix
- "
- : other convertions
- Class RawVector< Element >
- template by Field
- Class ContainerTraits< std::vector< _Rep > >
- remove vectors
- "
use functions, not =
more general subvectors
subvector of ptr
- 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.
- File lattice.h
Create a BlasMatrix<NTL_ZZ> that is just like a mat_ZZ !
Create a BlasMatrix<FPLLL_ZZ> that is just like a IntMatrix !
This will avoid copy back/forth a BlasMatrix<Givaro::ZRing<Integer> >
- Global Squarize< Blackbox >::applyTranspose (Vector1 &y, const Vector2 &x) const
- use field().zero
- Global Squarize< Blackbox >::apply (Vector1 &y, const Vector2 &x) const
- use field().zero
- Global PowerGaussDomainPowerOfTwo< UnsignedIntType >::isOdd (const UInt_t &b) const
- use Givaro isOdd
- "
- if log2(maxint/curint)<ps use smaller genprime.
- Global RNS< Unsigned >::RNS (size_t l, size_t ps=21)
- if log2(maxint/curint)<ps use smaller genprime.
- "
why not max int reachable to save maybe a couple primes ? bof.
why not max int reachable to save maybe a couple primes ? bof.
- Class RNS< Unsigned >
- template by field and ring
- 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
- File rational-reconstruction.h
- wrap Mat_ZZ<T>/IntMat in BlasMatrix<T>, BlasMatrix<Integer> e.g.
- File minpoly-integer.h
- better filter out repeated primes
- Global BlasSubmatrix< _Matrix >::BlasSubmatrix (constSelf_t &SM, size_t rowbeg, size_t colbeg, size_t Rowdim, size_t Coldim)
- BlasSub from (sub)Vector
- "
- is it
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
- Global LinBox::NullSpaceBasisIn (const Tag::Side Side, BlasSubmatrix< DenseMat > &A, BlasMatrix< typename DenseMat::Field > &Ker, size_t &kerdim)
use copy
uses too much memory
- 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, BlasMatrix< Field > &A, BlasMatrix< Field > &Ker, size_t &kerdim)
- make it work for BlasSubmatrix too
- File dense-nullspace.h
- random nullspace vector
- "
use faster mul/mod here !
Could be much faster
Could be much faster
- Global CRABuilderEarlyMultip< Domain_Type >::progress (const Domain &D, const BlasVector< OKDomain > &e)
- Could be much faster
- do not compute twice the product of moduli
- reconstruct one element of e until Early Termination, then only, try a random linear combination.
- Global CRABuilderEarlyMultip< Domain_Type >::progress (const Domain &D, const Vect &e)
- Could be much faster
- do not compute twice the product of moduli
- reconstruct one element of e until Early Termination, then only, try a random linear combination.
- Global RandomDenseMatrix< Randiter, Field >::randomRank (Matrix &A, int rank)
- use CatergoryTag
- 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
-
- Global SparseMatrix< _Field, SparseMatrixFormat::COO::implicit >::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::implicit >::SparseMatrix ()
- convert from other matrix.
- 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::random_lu_rank (const Field &F, const Randiter &R, BlasMatrix< Field > &A, int &rank, const RingCategories::ModularTag &tag)
BlasPermutation a un ordre p
et une taille r
distinctes !!!
create BMD.applyP(A,P,Tag::Left) ; avec P : BlasPermutation ou P : MatrixPermutation
: 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
!!!
- "
factorize this in BlasPermutation
.
is there a copy made ?
- Global LinBox::RandomBlasPermutation (BlasPermutation< size_t > &P)
- To be factorized.
- File matrix/random-matrix.h
- à la vector/stream.h
- Global MatrixPermutation< _UnsignedInt >::Transpose ()
- in place ! (revient à parcourir des cycles)
- Global OpenCLMatrixDomain< Field_ >::mulpoly (Polynomial &res, const Polynomial &P1, const Polynomial &P2) const
- Temporary: waiting for an implementation of a domain of polynomial
- Global MatrixDomain< Field_ >::pow_apply (Matrix1 &M1, const Matrix2 &M2, unsigned long int k) const
- Need documentation of these methods
- Global MatrixDomain< Field_ >::muladd (Matrix1 &D, const typename Field::Element &beta, const Matrix1 &C, const typename Field::Element &alpha, const Matrix2 &A, const Matrix3 &B) const
- not efficient...
- Class MatrixDomain< GF2 >
- this is where m4ri will play.
- "
- check equal submatrix types
- Global BlasMatrixDomain< Field_ >::mulpoly (Polynomial &res, const Polynomial &P1, const Polynomial &P2) const
- Temporary: waiting for an implementation of a domain of polynomial
- Module matrix
- vector of rows ?
- Global BlasMatrix< _Field, _Storage >::random (const size_t &b)
- b should be the random generator