I have a custom struct that represents a block-matrix of the form
X = [
A B
0 A
]
Where A
and B
are arbitrary (probably non-pathological) square matrices. A
and B
are small in the context I’m currently looking at. They’d be stored as StaticArrays.SMatrix
instances, as properties of my struct.
I’m looking to implement a method for exp
for my struct. The exponential is going to have the same block structure as the original X
, with
exp(X) = [
exp(A) F
0 exp(A)
]
where the matrix F
is a little less trivial. I found some notes about the mathematical background, which also discusses solutions.
Does anyone who is less rusty than me on their linear algebra have any recommendations for how to most easily (but efficiently) get F
? Is there any package I should be aware of that helps with this? Again, A
and B
are small, so I’m not looking for anything Krylov-based. I was thinking maybe I should adapt padm
from Expokit
. Is there something easier or better?