I noticed on the Detailed SciPy Roadmap under sparse.linalg, there is a line item for:
- add interfaces to SuiteSparse CHOLMOD and SPQR
I have updated the scikit-sparse interface to CHOLMOD to be more similar to the scipy.linalg (dense) cholesky interface in my own development fork. I have a PR open to merge it.
I realize there are license issues with including SuiteSparse code directly in SciPy, but it seems like the interface to the headers and requiring SuiteSparse as a dependency is reasonable given the utility it would add to scipy.sparse.linalg. I am happy to work on incorporating this CHOLMOD interface into the scipy.sparse.linalg._dsolve module, as well as build the SPQR interface.
Similarly, I have also created interfaces to the AMD, COLAMD, etc. SuiteSparse matrix reordering routines that are available in my scikit-sparse development fork.
I am curious to hear everyone’s opinions on this topic. There is also certainly room for discussion around these items:
- add license-compatible sparse Cholesky or incomplete Cholesky
- add license-compatible sparse QR
although I would need someone with more expertise in licensing to weigh in on how to approach the algorithm design and implementation to avoid conflict with SuiteSparse itself.