#13584: Add rcm to matrix/matrix2.pyx
-------------------------------------+-------------------------------------
Reporter: r.gaia.cs | Owner: r.gaia.cs
Type: enhancement | Status: needs_work
Priority: major | Milestone: sage-6.5
Component: linear algebra | Resolution:
Keywords: matrix, rcm | Merged in:
Authors: William A. Stein, | Reviewers:
Marco Mezzarobba, Rob Beezer, | Work issues: Cython issues
Frédéric Chapoton, Ralf Stephan | Commit:
Report Upstream: N/A | c3fb93fe197a6d47643fc66f7beb8cd06888c551
Branch: | Stopgaps:
public/ticket/13584 |
Dependencies: |
-------------------------------------+-------------------------------------
Changes (by jdemeyer):
* status: needs_review => needs_work
* work_issues: => Cython issues
* milestone: sage-6.4 => sage-6.5
Comment:
There are various Cython issues:
1. (*) The code cannot be interrupted, see
[http://www.sagemath.org/doc/developer/coding_in_cython.html#interrupt-
and-signal-handling]
1. Sometimes there is `cdef int i` when there is no `i`.
1. When you use `for i in xrange(n)`, you should declare the type of `i`.
1. You can replace `xrange()` by `range()` in such code.
1. More generally, try to declare the types of your variables.
1. (*) When you `cdef` a type, make sure it is correct. In particular
`ncols()` is not an `int`!
1. Instead of `matrix.ncols()`, in Cython you can use `matrix._ncols`.
1. About the private methods you add (like
`_find_pseudo_peripheral_node`): you should consider making them `cpdef`
for speed.
The (*) items must be fixed, the rest are suggestions.
--
Ticket URL: <http://trac.sagemath.org/ticket/13584#comment:14>
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.