Clément Pernet
Clément Pernet
Currently, `fgemm` with `DelayedTag` mode tests whether it is possible to convert the arguments over floats or double (in order to compute faster). This switch is too low in the...
This is part of the matrix-multiplication helper rewrite in progess (see #106 and #162). In the Strassen-Winograd schedule, additions may be preceded by modular reductions if some overflow may happen....
There is some implicit assumption in `fflas_fgemm.inl:412` (routine `fgemm`, `DynamicPeeling` and `DynamicPeeling2`) that the helper has `Cmin, Cmax, Outmin, Outmax`, etc. which is not the case with generic helpers.
All routines in the call tree of fgemm generic wrt the ModeCategory of the base field mention Helper fields such as `OutMax, OutMin, Cmin` which do not belong to Helpers...
Some routines are well documented, others aren't. The content verbosity of the global presentation `fflas-ffpack.doxy` `fflas.doxy` `ffpack.doxy` needs to be improved.
At the moment, permutations are quite hard to manipulate: - some routines like `PLUQ` and `LUdivine` produce a row and a column permutation, but some are transposed and others aren't....
The Algorithm and ParSeq fields have become too interdependent (in particular with the WinogradPar algorithm trait). This causes a nightmare of partial template specializations. A complete reorganization is required with...
When the user does not need the rank profile matrix, he should be able to tell PLUQ to use transpositions instead of rotations in one (or the two) dimensions.
Results differ from fspmm. There are some offsets by 1 sometimes. According to my tests, fspmv is the wrong one.
As we start working with always more fields whose elements are not elementary type, e.g. ModularRecInt::rint, Modular, etc, we should stop passing the scalars alpha and beta by value.