Julia package to compute the result of expm(t*A)*v when A is a sparse matrix, without computing expm(t*A).



Build Status

This is a fork from https://github.com/marcusps/ExpmV.jl, implementing the evaluation for multiple values of the parameter t.

This is a Julia translation of the MATLAB implementation of Al-Mohy and Higham's function for computing expm(t*A)*v when A is sparse, without explicitly computing expm(A).

If t is a StepRangeLen object (i. e. a linspace), use an optimized algorithm to output the result for all t.

The original code can be found at (https://github.com/higham/expmv), and the theory is explained in the following article:

Computing the Action of the Matrix Exponential, with an Application to Exponential Integrators, Awad H. Al-Mohy and Nicholas J. Higham, SIAM Journal on Scientific Computing 2011 33:2, 488-511. (preprint)


Install into Julia using the package manager:


## Usage

expmv(t, A, v)

Eg. t = 1., or t = linspace(0, 1, 100).


Need to run updated benchmarks on Julia v1.0


Released under the BSD 2-clause license used in Al-Mohy and Higham's original code, with the exception of function norm1est: the fast 1-norm estimation that is crucial for the speed of this algorithm is adapted from code available in Julia's Base module. This function (norm1est) is licensed under the MIT license.

First Commit


Last Touched

9 days ago


140 commits


Used By: