Open
Description
Just like LU in #131, we also need these:
- cholesky(a')
- ldlt(a')
- det(a')
- inv(a')
- qr(a') works, but we should verify it is not taking a slow path
In addition, we should put promotion rules in place at the very least:
- Adjoints and transposes of various factorizations sent to \ (Large sparse matrices are always shown as Braille pattern #22)
- Ensure Float32 and ComplexF32 versions work or give clear errors about non-existence of solvers. (Incomplete promotion rules for sparse matrices #54,
\
on Symmetric{Float32, SparseMatrixCSC{Float32, Int64} fails #125)
Also, need to make these all work for Symmetric, Hermitian, [etc.] (#13, #125) (https://docs.julialang.org/en/v1/stdlib/LinearAlgebra/#Special-matrices)
Much of this essentially needs to have promotion rules in place to convert the matrix to a regular sparse matrix and then call the usual method. Over time, we can optimize certain paths.
Similar issue in the dense case that has a complete list of factorizations (not all of which may have sparse counterparts): JuliaLang/LinearAlgebra.jl#776