Hi!

Martin Albrecht had opened #9562 and proposed to use M4RIE as default
for matrices over GF(2^e). If I understand correctly, the package
builds fine on all supported platforms (including Cygwin).

The ticket is almost getting a positive review from me, modulo some
minor issues with documentation.

On the ticket, David Kirkby reminded us that a new standard spkg
requires a vote on sage-devel, so, here we are...

I, for one, am particularly impressed by the performance. If I
understood correctly, it is not only VASTLY faster than the current
implementation in Sage - it even beats Magma. Perhaps Martin can make
a stronger case.

Here is an example:

With the current implementation, we have

sage: MS = MatrixSpace(GF(64,'a'),800,800)
sage: %time A = MS.random_element()
CPU times: user 1.10 s, sys: 0.01 s, total: 1.10 s
Wall time: 1.10 s
sage: B = MS.random_element()
sage: save((A,B),'testmat')
sage: %time C=A*B
CPU times: user 38.24 s, sys: 0.02 s, total: 38.26 s
Wall time: 38.38 s
sage: %time A.echelonize()
CPU times: user 21.55 s, sys: 0.00 s, total: 21.56 s
Wall time: 21.62 s

With M4RIE, we have
sage: MS = MatrixSpace(GF(64,'a'),800,800)
sage: %time A = MS.random_element()
CPU times: user 0.02 s, sys: 0.00 s, total: 0.02 s
Wall time: 0.02 s
sage: B = MS.random_element()
sage: %time C=A*B
CPU times: user 0.12 s, sys: 0.00 s, total: 0.12 s
Wall time: 0.12 s
sage: %time A.echelonize()
CPU times: user 0.12 s, sys: 0.00 s, total: 0.12 s
Wall time: 0.13 s

I will certainly use M4RIE in my applications (where I need fast
matrices over finite not necessarily prime fields), and I vote for
including it as a standard package.

Best regards,
Simon

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to