#5510: [with patch, positive review] update M4RI interface
----------------------------+-----------------------------------------------
 Reporter:  malb            |       Owner:  malb                
     Type:  enhancement     |      Status:  new                 
 Priority:  major           |   Milestone:  sage-4.0.2          
Component:  linear algebra  |    Keywords:  m4ri, linear algebra
 Reviewer:                  |      Author:                      
   Merged:                  |  
----------------------------+-----------------------------------------------

Comment(by jason):

 I re-ran my timings (on a different computer) in 4.0.  Here are the
 results:

 BEFORE:
 {{{
 sage: A = matrix(GF(2),100, 100,0)
 sage: timeit('A.rank(); A._clear_cache()')
 625 loops, best of 3: 47.9 µs per loop
 sage: A = matrix(GF(2),10, 10,0)
 sage: timeit('A.rank(); A._clear_cache()')
 625 loops, best of 3: 39.9 µs per loop
 sage: A = matrix(GF(2),100, 100,0)
 sage: timeit('A.rank(); A._clear_cache()')
 625 loops, best of 3: 47.7 µs per loop
 sage: A = matrix(GF(2),1000, 1000,0)
 sage: timeit('A.rank(); A._clear_cache()')
 625 loops, best of 3: 222 µs per loop
 sage: A = random_matrix(GF(2), 1000)
 sage: save(A,'m4ri.sobj')
 sage: timeit('A.rank(); A._clear_cache()')
 125 loops, best of 3: 6.85 ms per loop
 sage: A = random_matrix(GF(2), 100)
 sage: save(A,'m4ri2.sobj')
 sage: timeit('A.rank(); A._clear_cache()')
 625 loops, best of 3: 164 µs per loop
 sage: A = random_matrix(GF(2), 10000)
 sage: save(A,'m4ri3.sobj')
 sage: timeit('A.rank(); A._clear_cache()')
 5 loops, best of 3: 4.24 s per loop
 }}}

 AFTER
 {{{
 sage: A = matrix(GF(2),100, 100,0)
 sage: timeit('A.rank(); A._clear_cache()')
 625 loops, best of 3: 17.9 µs per loop
 sage: A = matrix(GF(2),10, 10,0)
 sage: timeit('A.rank(); A._clear_cache()')
 625 loops, best of 3: 13.4 µs per loop
 sage: A = matrix(GF(2),100, 100,0)
 sage: timeit('A.rank(); A._clear_cache()')
 625 loops, best of 3: 18.3 µs per loop
 sage: A = matrix(GF(2),1000, 1000,0)
 sage: timeit('A.rank(); A._clear_cache()')
 625 loops, best of 3: 205 µs per loop
 sage: A=load('./m4ri.sobj')
 sage: timeit('A.rank(); A._clear_cache()')
 125 loops, best of 3: 4.72 ms per loop
 sage: A=load('./m4ri2.sobj')
 sage: timeit('A.rank(); A._clear_cache()')
 625 loops, best of 3: 115 µs per loop
 sage: A=load('./m4ri3.sobj')
 sage: timeit('A.rank(); A._clear_cache()')
 5 loops, best of 3: 2.57 s per loop
 }}}

 The new code is a clear winner.  I don't know what was happening before,
 but it seems great now.  Positive review.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/5510#comment:6>
Sage <http://sagemath.org/>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to