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:
Pkg.add("ExpmV")
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.