scipy/scipy — pull request #2456 by argriffing (2013-05-07 03:58:32+00:00)
Title: expm_action

This is an implementation of the action of the matrix exponential of a sparse or dense matrix on a matrix or a vector at multiple equally spaced time points. It does some of the things that EXPOKIT also does. I wrote this according to algorithms 3.2 and 5.2 in http://eprints.ma.man.ac.uk/1591/ incorporating a table in http://eprints.ma.man.ac.uk/1451/ and patching a few omissions and typos. It depends on the efficient 1-norm estimation of linear operators from http://eprints.ma.man.ac.uk/321/ as applied to operators that are powers of matrices.

Quite extensive tests are included. Although the generality of the algorithm had the potential to cause the interface to become messy, I think it is not so bad. Some of the messiness is hidden behind an interface inspired by numpy.linspace, and some of the messiness is handled by allowing the returned ndarray to take various ndims and shapes.