Fast and differentiable implementations of matrix exponentials, Krylov exponential matrix-vector multiplications ("expmv"), KIOPS, ExpoKit functions, and more. All your exponential needs in SciML form.
Currently to use a matrix-free operator we need to implement the LinearAlgebra.ishermitian and LinearAlgebra.opnorm (or provide a custom norm function). These slows down rapid prototyping and for some sparse types (e.g. SymTridiagonal) the default methods are not very efficient.
Since only scalar values are really needed, we should change the methods to not accept the functions themselves but their values with defaults (as suggested in #1).
For rapid prototyping & interfacing between packages, the end goal should be that only LinearAlgebra.mul! and Base.size needs to be implemented.
Currently to use a matrix-free operator we need to implement the
LinearAlgebra.ishermitian
andLinearAlgebra.opnorm
(or provide a custom norm function). These slows down rapid prototyping and for some sparse types (e.g.SymTridiagonal
) the default methods are not very efficient.Since only scalar values are really needed, we should change the methods to not accept the functions themselves but their values with defaults (as suggested in #1).
For rapid prototyping & interfacing between packages, the end goal should be that only
LinearAlgebra.mul!
andBase.size
needs to be implemented.