diff --git a/src/cholesky.jl b/src/cholesky.jl index 4d9977f0..d960ce57 100644 --- a/src/cholesky.jl +++ b/src/cholesky.jl @@ -413,7 +413,7 @@ end # cholesky!. Destructive methods for computing Cholesky factorization of real symmetric # or Hermitian matrix ## No pivoting (default) -function cholesky!(A::SelfAdjoint, ::NoPivot = NoPivot(); check::Bool = true) +function cholesky!(A::RealSymHermitian, ::NoPivot = NoPivot(); check::Bool = true) C, info = _chol!(A.data, A.uplo == 'U' ? UpperTriangular : LowerTriangular) check && checkpositivedefinite(info) return Cholesky(C.data, A.uplo, info) @@ -455,7 +455,7 @@ end ## With pivoting ### Non BLAS/LAPACK element types (generic). -function cholesky!(A::SelfAdjoint, ::RowMaximum; tol = 0.0, check::Bool = true) +function cholesky!(A::RealSymHermitian, ::RowMaximum; tol = 0.0, check::Bool = true) AA, piv, rank, info = _cholpivoted!(A.data, A.uplo == 'U' ? UpperTriangular : LowerTriangular, tol, check) C = CholeskyPivoted(AA, A.uplo, piv, rank, tol, info) check && chkfullrank(C) diff --git a/src/symmetric.jl b/src/symmetric.jl index 51a1d94b..5eb3fe51 100644 --- a/src/symmetric.jl +++ b/src/symmetric.jl @@ -224,6 +224,7 @@ const RealHermSymSymTri{T<:Real} = Union{RealHermSym{T}, SymTridiagonal{T}} const RealHermSymComplexHerm{T<:Real,S} = Union{Hermitian{T,S}, Symmetric{T,S}, Hermitian{Complex{T},S}} const RealHermSymComplexSym{T<:Real,S} = Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} const RealHermSymSymTriComplexHerm{T<:Real} = Union{RealHermSymComplexSym{T}, SymTridiagonal{T}} +const RealSymHermitian{S} = Union{Symmetric{<:Real,S}, Hermitian{<:Any,S}} const SelfAdjoint = Union{SymTridiagonal{<:Real}, Symmetric{<:Real}, Hermitian} wrappertype(::Union{Symmetric, SymTridiagonal}) = Symmetric