#17492: Speedup k-closed check
-------------------------------------+-------------------------------------
       Reporter:  tscrim             |        Owner:  tscrim
           Type:  enhancement        |       Status:  needs_review
       Priority:  major              |    Milestone:  sage-6.5
      Component:  matroid theory     |   Resolution:
       Keywords:  k-closed           |    Merged in:
        Authors:  Travis Scrimshaw   |    Reviewers:
Report Upstream:  N/A                |  Work issues:
         Branch:                     |       Commit:
  u/tscrim/k_closed_speedup-17492    |  2da089f7f2be369af66a5277eb5c9797dcbc5234
   Dependencies:                     |     Stopgaps:
-------------------------------------+-------------------------------------
Changes (by tscrim):

 * status:  new => needs_review
 * commit:   => 2da089f7f2be369af66a5277eb5c9797dcbc5234
 * branch:   => u/tscrim/k_closed_speedup-17492


Comment:

 With patch:
 {{{
 sage: PR4 = RootSystem(['D',4]).root_lattice().positive_roots()
 sage: m4 = matrix(map(lambda x: x.to_vector(), PR4)).transpose()
 sage: M4 = Matroid(m4)
 sage: %timeit M4.is_k_closed(3)
 10 loops, best of 3: 147 ms per loop
 sage: %timeit M4.is_k_closed(4)
 1 loops, best of 3: 413 ms per loop
 sage: PR5 = RootSystem(['D',5]).root_lattice().positive_roots()
 sage: m5 = matrix(map(lambda x: x.to_vector(), PR5)).transpose()
 sage: M5 = Matroid(m5)
 sage: %timeit M5.is_k_closed(3)
 1 loops, best of 3: 1.45 s per loop
 }}}
 Before:
 {{{
 sage: %timeit M4.is_k_closed(3)
 1 loops, best of 3: 776 ms per loop
 sage: %timeit M4.is_k_closed(4)
 1 loops, best of 3: 3.09 s per loop
 sage: %timeit M5.is_k_closed(3)
 1 loops, best of 3: 4.16 s per loop
 }}}
 So we are getting a 3x~4x speedup.
 ----
 New commits:
 
||[http://git.sagemath.org/sage.git/commit/?id=ff68516e2ce63ac8a8d6de57ec9490e9b05c9ad3
 ff68516]||{{{Speedup k-closure by using python sets.}}}||
 
||[http://git.sagemath.org/sage.git/commit/?id=07c0a3f4d5101844e1fe22044f073380a1a1433d
 07c0a3f]||{{{Removed unnecessary import.}}}||
 
||[http://git.sagemath.org/sage.git/commit/?id=2da089f7f2be369af66a5277eb5c9797dcbc5234
 2da089f]||{{{One additional tweak to avoid unnecessary checks.}}}||

--
Ticket URL: <http://trac.sagemath.org/ticket/17492#comment:1>
Sage <http://www.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 unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to