- Global _LB_MAX_SZ
- !
- Global BlasMatrix< _Field, _Storage >::random (const size_t &b)
- b should be the random generator
- Global BlasMatrixDomain< Field_ >::mulpoly (Polynomial &res, const Polynomial &P1, const Polynomial &P2) const
- Temporary: waiting for an implementation of a domain of polynomial
- Global BlasSubmatrix< _Matrix >::BlasSubmatrix (constSelf_t &SM, size_t rowbeg, size_t colbeg, size_t Rowdim, size_t Coldim)
- BlasSub from (sub)Vector
- Class ContainerTraits< std::vector< _Rep > >
- remove vectors
- Class DataSeries
- Times and Values could be dmatrix_t (and mergeable)
- File debug.h
- we should put vector printing elsewhere.
- File dense-nullspace.h
- random nullspace vector
- Global EarlyMultipCRA< 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 EarlyMultipCRA< 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 field_subtests::testRingTrivia (const Field &F, const char *name)
- enable init with 1UL et -1L pour GMPRationalElement
- Global generate_precRatMat (string &filename, RMatrix &M, DVector &den, Integer &denPrec)
- temp fix
- Global HYB_ELL_COO_THRESHOLD
- benchmark me
- Global HYB_ELL_THRESHOLD
- benchmark me
- Class IMLTraits
enable multi-vectors.
enable right/left solving.
be input aware (long/Integer)
- Global IMLTraits::IMLTraits (const IMLNonSing &imlroutine, bool withRNS=false)
- make the special flags available in
Specifier
.
- 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 LinBox::BLAS2::mul (_anyVector &C, const SparseMatrix< typename _anyVector::Field, SparseMatrixFormat::CSR > &A, const _anyVector &B, const BLAS3::mulMethod::CRA &)
- pourqoi ?
- Global LinBox::IsNegative (const uint8_t &p)
- or use integer_traits<T>::is_unsigned ??
- Global LinBox::NullSpaceBasis (const LINBOX_enum(Tag::Side) Side, const BlasMatrix< Field > &A, BlasMatrix< Field > &Ker, size_t &kerdim)
- make it work for BlasSubmatrix too
- Global LinBox::NullSpaceBasisIn (const LINBOX_enum(Tag::Side) Side, BlasMatrix< Field > &A, BlasMatrix< Field > &Ker, size_t &kerdim)
- make it work for BlasSubmatrix too
- Global LinBox::NullSpaceBasisIn (const LINBOX_enum(Tag::Side) Side, BlasSubmatrix< DenseMat > &A, BlasMatrix< typename DenseMat::Field > &Ker, size_t &kerdim)
uses too much memory
use copy
- 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)
!!!
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
- Global LinBox::RandomBlasPermutation (BlasPermutation< size_t > &P)
- To be factorized.
- Global LinBox::smithForm (std::list< std::pair< typename Blackbox::Field::Element, size_t > > &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.
- Module matrix
- vector of rows ?
- File matrix/random-matrix.h
- à la vector/stream.h
- 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...
- Global MatrixDomain< Field_ >::pow_apply (Matrix1 &M1, const Matrix2 &M2, unsigned long int k) const
- Need documentation of these methods
- Class MatrixDomain< GF2 >
- this is where m4ri will play.
- 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
make depend on PlotStyle (that owns data)
use getUsingSeries in latex/html/csv/xml
- Class PlotStyle
Allow for 'speed up against col X' style
make depend on PlotData
setUsingSeries(const svector_t &)
- Global PowerGaussDomainPowerOfTwo< UnsignedIntType >::isOdd (const UInt_t &b) const
- use Givaro isOdd
- Global RandomDenseMatrix< Randiter, Field >::randomRank (Matrix &A, int rank)
- use CatergoryTag
- Class RandomPrimeIter
- one could create the same one on a LinBox::PID_double ?
- Global RandomPrimeIter::random_between (integer &a, uint64_t _low_bits) const
- uses random_between when givaro is released.
- Global RandomPrimeIter::random_exact (integer &a) const
- uses random_exact when givaro is released.
- 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 (unsigned long l, unsigned long 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
-
- 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 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 SparseMatrix< _Field, SparseMatrixFormat::CSR >::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)
- convert from other matrix.
- Global SparseMatrix< _Field, SparseMatrixFormat::ELL >::SparseMatrix (const _Field &F, VectStream &stream)
-
- 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::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 ()
- convert from other matrix.
- Global Squarize< Blackbox >::apply (Vector1 &y, const Vector2 &x) const
- use field().zero
- 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 ?
- 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)