diff --git a/src/solvers/cholmod.jl b/src/solvers/cholmod.jl index 9c832ef7..6b8ba859 100644 --- a/src/solvers/cholmod.jl +++ b/src/solvers/cholmod.jl @@ -1439,6 +1439,17 @@ cholesky(A::Union{SparseMatrixCSC{T}, SparseMatrixCSC{Complex{T}}, Hermitian{T, <:SparseMatrixCSC{T}}}; kws...) where {T<:Real} = cholesky(Sparse(A); kws...) +LinearAlgebra._cholesky(A::Union{SparseMatrixCSC{T}, SparseMatrixCSC{Complex{T}}, + Symmetric{T, <:SparseMatrixCSC{T}}, + Hermitian{Complex{T}, <:SparseMatrixCSC{Complex{T}}}, + Hermitian{T, <:SparseMatrixCSC{T}}}; + kws...) where {T<:Real} = cholesky(A; kws...) +LinearAlgebra._cholesky(A::Union{SparseMatrixCSC{T}, SparseMatrixCSC{Complex{T}}, + Symmetric{T, <:SparseMatrixCSC{T}}, + Hermitian{Complex{T}, <:SparseMatrixCSC{Complex{T}}}, + Hermitian{T, <:SparseMatrixCSC{T}}}, ::LinearAlgebra.PivotingStrategy; + kws...) where {T<:Real} = error("Pivoting Strategies are not supported for `SparseMatrixCSC`s") + function ldlt!(F::Factor{Tv}, A::Sparse{Tv}; shift::Real=0.0, check::Bool = true) where Tv # Makes it an LDLt diff --git a/src/solvers/spqr.jl b/src/solvers/spqr.jl index d1a09f90..f7c8189a 100644 --- a/src/solvers/spqr.jl +++ b/src/solvers/spqr.jl @@ -230,6 +230,11 @@ LinearAlgebra.qr(A::FixedSparseCSC; tol=_default_tol(A), ordering=ORDERING_DEFAU let B=A qr(_unsafe_unfix(B); tol, ordering) end + +LinearAlgebra._qr(A::SparseMatrixCSC; kwargs...) = qr(A; kwargs...) +LinearAlgebra._qr(::SparseMatrixCSC, ::LinearAlgebra.PivotingStrategy; kwargs...) = + error("Pivoting Strategies are not supported for `SparseMatrixCSC`s") + function LinearAlgebra.lmul!(Q::QRSparseQ, A::StridedVecOrMat) if size(A, 1) != size(Q, 1) throw(DimensionMismatch("size(Q) = $(size(Q)) but size(A) = $(size(A))"))