Ticket #3376 (closed enhancement: fixed)
[with patch, positive review, depends on #3780] matrix multiplication should use Strassen's algorithm
| Reported by: | zimmerma | Owned by: | malb |
|---|---|---|---|
| Priority: | minor | Milestone: | sage-3.1.2 |
| Component: | linear algebra | Keywords: | |
| Cc: | malb | Author(s): | |
| Report Upstream: | Reviewer(s): | ||
| Merged in: | Work issues: |
Description
Multiplication of large matrices over GF(2) seems to use a cubic algorithm in Sage, whereas Magma implements Strassen's algorithm:
---------------------------------------------------------------------- | SAGE Version 3.0.2, Release Date: 2008-05-24 | | Type notebook() for the GUI, and license() for information. | ---------------------------------------------------------------------- sage: A=Matrix(GF(2),2048);A.randomize() sage: B=Matrix(GF(2),2048);B.randomize() sage: time C=A*B CPU times: user 0.03 s, sys: 0.00 s, total: 0.03 s Wall time: 0.03 s sage: A=Matrix(GF(2),4096);A.randomize() sage: B=Matrix(GF(2),4096);B.randomize() sage: time C=A*B CPU times: user 0.26 s, sys: 0.00 s, total: 0.26 s Wall time: 0.26 s sage: A=Matrix(GF(2),8192);A.randomize() sage: B=Matrix(GF(2),8192);B.randomize() sage: time C=A*B CPU times: user 4.31 s, sys: 0.01 s, total: 4.31 s Wall time: 4.31 s
And in Magma:
Magma V2.14-8 Fri Jun 6 2008 08:25:49 on pasta [Seed = 1195890521] Type ? for help. Type <Ctrl>-D to quit. Loading startup file "/users/cacao/zimmerma/.magmarc" > n:=2048; > A:=RandomMatrix(GF(2),n,n); > B:=RandomMatrix(GF(2),n,n); > time C:=A*B; Time: 0.030 > n:=4096; > A:=RandomMatrix(GF(2),n,n); > B:=RandomMatrix(GF(2),n,n); > time C:=A*B; Time: 0.200 > n:=8192; > A:=RandomMatrix(GF(2),n,n); > B:=RandomMatrix(GF(2),n,n); > time C:=A*B; Time: 1.370
Attachments
Change History
Note: See
TracTickets for help on using
tickets.

