PS:
On 2016-02-26, Simon King <
simon...@uni-koeln.de> wrote:
> Isn't it the case that new packages should first be experimental,
> unless there is a compelling reason to immediately make them optional?
Some more background information:
Upstream is the "Aachen C-MeatAxe". I could be mistaken, but I *think* I
was told that it is used in GAP (internally --- if a user creates a
matrix, MeatAxe is *not* used).
The MeatAxe project is not very actively developed, but it isn't dead.
Upstream told me that they prepare a new version (after almost 10
years).
Moreover, I have used MeatAxe inside of my group cohomology spkg, that
used to be "optional" but was broken by the release manager.
That's what speaks in favour of making the package "optional".
However, I did patch the upstream sources rather non-trivially:
- One patch prevents MeatAxe from writing multiplication tables into the
current directory.
- One patch implements error propagation (upstream would just crash on
any kind of error).
- One patch improves the performance of the computation of echelon
forms, in a rather obvious way.
- One patch implements asymptotically fast matrix multiplication, which
beats MeatAxe's schoolbook implementation even for relatively small
matrices. Thus, I use it as default algorithm in my Cython wrapper.
- One patch makes it so that MeatAxe uses asymptotically fast
multiplication internally, in some places.
I did send my patches to upstream, but there was no reaction at all (not
even acknowleding receipt). That's what speaks in favour of making it
"experimental".
Concerning test coverage:
- MeatAxe has a test suite, that can be executed during installation of
the package (of course only upon request).
- In my Cython wrapper, I have doc tests with random matrices, and compare
the results of computing echelon form and matrix products obtained by
MeatAxe with or without asymptotically fast algorithms respectively
obtained by Sage's current implementation of matrices.
MeatAxe is A *LOT* faster in matrix arithmetics and echelon computation
than the current matrix implementation in Sage, in the case of finite
non-prime fields of odd characteristic and order < 255. For these base
fields, my MeatAxe wrapper can be seen as a drop-in replacement of the
current default implementation in Sage.
So, that's another reason for making it "experimental".
I guess I should post this to sage-devel?
Best regards,
Simon