From 878e487154956047c6543716f7f353e3534f2df8 Mon Sep 17 00:00:00 2001 From: Daniel Karrasch Date: Fri, 8 Sep 2023 13:51:06 +0200 Subject: [PATCH] Respect pivot strategy (if given) in `cholesky` --- stdlib/LinearAlgebra/src/cholesky.jl | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/stdlib/LinearAlgebra/src/cholesky.jl b/stdlib/LinearAlgebra/src/cholesky.jl index 528eca5c3d8a3..3766ad6abdd17 100644 --- a/stdlib/LinearAlgebra/src/cholesky.jl +++ b/stdlib/LinearAlgebra/src/cholesky.jl @@ -398,12 +398,13 @@ julia> C.L * C.U == A true ``` """ -cholesky(A::AbstractMatrix, ::NoPivot=NoPivot(); check::Bool = true) = - _cholesky(cholcopy(A); check) +cholesky(A::AbstractMatrix, args...; kwargs...) = + _cholesky(cholcopy(A), args...; kwargs...) @deprecate cholesky(A::Union{StridedMatrix,RealHermSymComplexHerm{<:Real,<:StridedMatrix}}, ::Val{false}; check::Bool = true) cholesky(A, NoPivot(); check) false -function cholesky(A::AbstractMatrix{Float16}, ::NoPivot=NoPivot(); check::Bool = true) - X = _cholesky(cholcopy(A); check = check) +cholesky(A::AbstractMatrix{Float16}; kwargs...) = cholesky(A, NoPivot(); kwargs...) +function cholesky(A::AbstractMatrix{Float16}, ::NoPivot; check::Bool = true) + X = _cholesky(cholcopy(A), NoPivot(); check) return Cholesky{Float16}(X) end @deprecate cholesky(A::Union{StridedMatrix{Float16},RealHermSymComplexHerm{Float16,<:StridedMatrix}}, ::Val{false}; check::Bool = true) cholesky(A, NoPivot(); check) false @@ -466,15 +467,13 @@ julia> l == C.L && u == C.U true ``` """ -cholesky(A::AbstractMatrix, ::RowMaximum; tol = 0.0, check::Bool = true) = - _cholesky(cholcopy(A), RowMaximum(); tol, check) -@deprecate cholesky(A::Union{StridedMatrix,RealHermSymComplexHerm{<:Real,<:StridedMatrix}}, ::Val{true}; tol = 0.0, check::Bool = true) cholesky(A, RowMaximum(); tol, check) false - function cholesky(A::AbstractMatrix{Float16}, ::RowMaximum; tol = 0.0, check::Bool = true) X = _cholesky(cholcopy(A), RowMaximum(); tol, check) return CholeskyPivoted{Float16}(X) end +@deprecate cholesky(A::Union{StridedMatrix,RealHermSymComplexHerm{<:Real,<:StridedMatrix}}, ::Val{true}; tol = 0.0, check::Bool = true) cholesky(A, RowMaximum(); tol, check) false + ## Number function cholesky(x::Number, uplo::Symbol=:U) C, info = _chol!(x, uplo)