For a simple example of why I need this, letβs say I want to compute the entropy of a multivariate Gaussian. One can do this as follows:
\text{Entropy} \propto -\frac{1}{2}*\log|-H|
where -H is the negative Hessian at the maximum of the Gaussian distribution. I.e., we need to calculate the log-determinant of the negative Hessian. One can calculate this in a stable way using the Cholesky decomposition, and in theory this can be done in O(T) time but only if you exploit the structure of the matrix (in my case this would be a banded matrix).
Do you know if these packages are compatible with other LinearAlgebra routines? It seems Banded.jl has some methods that override things like the \ operator, but for something like:
cholesky(my_banded_matrix)
or some other general method. I guess in the same way using Hermitian(some_matrix) from LinearAlgebra.jl provides speed-ups if the specific structure can be exploited?
(Note that you donβt need to interact with ArrayLayouts.jl directly, just showing that the methods you donβt see overloaded are because of this interface, so cholesky(A) will just work with the most efficient method.)