I’d be happy to work on this interface, as I have just revamped the CHOLMOD interface, and created AMD, COLAMD, BTF, etc. interfaces in the scikit-sparse package (see this topic).
Are there more details documented about the goals of what an updated interface would look like?
I have some ideas, but would like to make sure we are all in agreement.
For example, the existing scikit-umfpack interface is written with SWIG, which seems to be deprecated in favor of Cython in new SciPy code. The use of a global variable for useUmfpack in scipy/sparse/linalg/_dsolve/linsolve.py is also problematic, as the kwarg use_umfpack, which defaults to False, in spsolve is overridden without warning if scikit-umfpack is installed.
I went ahead and created the new interface in this scikit-sparse PR. I think the Cython interface will be more maintainable (and probably faster) than the existing scikits-umfpack SWIG interface in the long run.
Thanks for sharing @broesler! It’s great to see both scikit-sparse development picking up and having a good (probably better & more future-proof) alternative to scikit-umfpack.
I think your initial question didn’t get a response because no one who is actively working on SciPy at the moment was involved in the initial scikit-umfpack interface or planned to work on that roadmap item.
scikit-umfpack support is pretty shaky at the moment; IIRC 0.4.0/0.4.1 are hard to install and 0.4.2 broke compatibility with SciPy and that still needs looking into; in CI we use 0.3.3.
Using Cython for your new wrapper makes a lot of sense. I’d be happy to see support for it in scipy.sparse.linalg.
Completely agreed. We can change that. The global should be removed I think. We can manage the backwards compat issues that are related to that, they seem pretty minor.