On Monday 28 November 2011, Simon King wrote:
> Hi Martin,

Hi Simon,

> Indeed. The prime slice (earlier, you named it bitslice) approach
> should not be forgotten.

Yep, btislice (p=2) and prime slice (p > 2) :)
 
> But I wonder one thing: How would you compute echelon forms using
> bitslice? Is that as straight forward as for matrix multiplication?

You'd reduce it to matrix-matrix multiplication essentially. For this one 
needs Triangular System Solving with Matrices (which also reduces to matrix-
matrix products + a base case) and a decent base case implementation (a la 
MeatAxe or using ideas like Newton-John (formerly Travolta) tables).

Here's an implementation for GF(2^e):

https://bitbucket.org/malb/m4rie/src/171b1528e4a3/src/ple.c

note that this implementation is much faster than the Newton-John table based 
approach (which I'd expect to be faster than MeatAxe when extended to general 
p, but I am not sure). E.g.,:

sage: A = random_matrix(GF(2^7,'a'),6000,6000)

sage: %time copy(A).echelonize('travolta')
CPU times: user 13.00 s, sys: 0.03 s, total: 13.03 s
Wall time: 13.09 s

sage: %time copy(A).echelonize('ple')
CPU times: user 4.95 s, sys: 0.04 s, total: 4.98 s
Wall time: 5.01 s

Note that this also means that your benchmark examples on the M4RIE got quite 
a bit faster using M4RIE compared to when we benchmarked them, i.e., you 
should see some additional speed up using the development code of M4RIE (I 
need to cut a new SPKG).

> > On the other hand, talking about the "long term" isn't what Sage is
> > usually about, ...
> 
> I guess you speak here about implementation, not about features,
> right? So, you wouldn't mind to have a particular matrix
> implementation for some time and wouldn't mind to change as soon as
> you find something better?

Yes, that's of course possible. I'd rather work on a prime-slice 
implementation, but if you prefer to have libCMeatAxe now, I'd of course not 
oppose it.
 
> > Oh, LinBox does support
> > non-prime finite fields but even Clément couldn't make it work easily
> > IIRC.
> 
> I remember they have non-prime fields. But at least #4260 doesn't use
> it.

Yep, that's correct.

> Best regards,
> Simon

Cheers,
Martin

--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x8EF0DC99
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de

-- 
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