[SciPy-Dev] Fwd: Re: Interpolative Decomposition

Pauli Virtanen pav@iki...
Mon Mar 11 05:23:57 CDT 2013

[oops, forgot to include the list in recipients]


07.03.2013 00:23, Andreas Kloeckner kirjoitti:
> Ken Ho [1] has produced a wrapper [2] for the Interpolative
> Decomposition code [3] originated by Per-Gunnar Martinsson, Vladimir
> Rokhlin, Yoel Shkolnisky, and Mark Tygert. This is a matrix
> decomposition that successfully competes with the SVD in a number of
> applications. I thought that this might be a nice thing to have in
> scipy.linalg and got in touch with Ken to see if he might be
> interested in helping to integrate it. He was, and specifically, he's
> OK with adapting the license (currently GPL3) to Scipy's needs. The
> underlying ID package is BSD-ish [4] as far as I can tell, so that
> doesn't seem to pose extra restrictions.

The PyMatrixID package looks pretty complete, and if you think that this
decomposition is useful to people (I hadn't heard about it before), I
don't think there's a reason why it couldn't just be dropped into
scipy.linalg. Only some minor style changes (e.g. docstrings of exposed
functions in Numpy/Scipy format) would be needed as far as I see.

A PR/patch would be appreciated. One way to go would be to prefix the
PyMatrixID package with `_` to mark them private to Scipy, and then
import the useful set of functions in the main scipy.linalg namespace.
In this approach some functions would need to be renamed, though ---
`id` unfortunately is a Python keyword and shouldn't be overridden. The
recon* functions should be prefixed with id_*, and I personally would
prefer spelling out "estimate_rank", "id_reconstruct_skeleton" over

Another way would be to add `scipy.linalg.id_decomp` module where the
useful functions are. I'm not sure which one is less hassle to use.

Best regards,

More information about the SciPy-Dev mailing list