Dear all,
This is to inform that a Google Summer of Code project related to LinBox / FFLAS-FFPACK was carried out this summer, by student Marie Bonboire from Sorbonne Université.
In short, the goal was to improve as much as possible the integration of LinBox / FFLAS-FFPACK inside SageMath, within the given time frame (12 weeks). The idea of this project was born after some disturbing observations within SageMath, such as the fact that creating a 2000 x 2000 zero matrix over a prime field (say 20 bit prime), or taking a submatrix of some 2000 x 2000 matrix, was taking roughly as much time (~0.2-0.5sec) as computing the reduced row echelon form of a 2000 x 2000 matrix.
In the end, these particular issues were solved, and many other similar improvements have been done. For more details, you can read Marie's internship report at:
The information is also condensed on her GSoC final submission website:
Since dealing with the basic issues was more intricate than initially thought, some goals were left as future work. In particular, it would be nice to provide some more flexibility on the Gaussian elimination / echelon forms provided in SageMath based on LinBox / FFLAS-FFPACK. Currently, the only interfaced method does not preserve rank profiles, which is a limitation in some contexts. It does not seem like a lot of work: switching between FfpackSlabRecursive / FfpackTileRecursive LuTag, perhaps offering better access to the row and column permutations, and doing all necessary sanity checks. If anyone is interested in having a look at this, please let me know.
Best regards,
Vincent N.