PDMats.jl
PDMats.jl copied to clipboard
Uniform Interface for positive definite matrices of various structures
This PR defines - `dim` - `whiten`, `whiten!` - `unwhiten`, `unwhiten!` - `quad`, `quad!` - `invquad`, `invquad!` - `X_A_Xt`, `Xt_A_X`, `X_invA_Xt`, `Xt_invA_X` for `Cholesky`. Ultimately, I think we should forward...
Looks like there are still a few things hiding out that use `Matrix` instead of `AbstractMatrix`. Here's one example: ```julia julia> a=PDMat(SMatrix{3,3}([ 0.880022 0.646205 0.598234 0.646205 0.578793 0.449772 0.598234 0.449772...
An error is thrown when differentiating a trace of a matrix division with a `PDMat`: ```julia using LinearAlgebra using PDMats using Zygote function kernel(x) return [1. x; x 1.] end...
Like `invquad(M, x) == quad(inv(M), x)`, it would be useful to also have functions `invwhiten(M, x) == whiten(inv(M), x)` and `invunwhiten(M, x) == unwhiten(inv(M), x)`. This is primarily useful when...
As pointed out in the README, `PDMat` always stores both Cholesky factorisation and full matrix. For many operations that are commonly used downstream, such as logdet and the quadratic forms,...
I was wondering if it was remotely possible to use `view` on `PDMat` matrices. Technically one would just have to use `view` on the `chol` field and it should work...
I'm not familiar with type inference so not sure what is going on, and whether this has more to do with `KeyedDistributions` than with `PDMats`. However I wasn't seeing the...
At present there is no check for positivity of the arguments that will be on the diagonal of a `PDiagMat` or `ScalMat`. Probably a good idea to check that. ```julia...
Would be really helpful in downstream code if I wouldn't have to think whether I've got a `Diagonal` -> wrap in `PDiagMat` or not -> wrap in `PDMat`. How about...
Suppose a user has a `Cholesky` decomposition of a matrix `R` and a vector of positive entries `σ` and wishes to create `Σ = PDMat(cholesky(σ .* Matrix(R) .* σ'))`. This...