Skip to content

In-place cholesky fails for Hermitian with a non-Hermitian parent #1173

Open
@jishnub

Description

@jishnub
julia> M = @MMatrix [30 1; 2 30]
2×2 MMatrix{2, 2, Int64, 4} with indices SOneTo(2)×SOneTo(2):
 30   1
  2  30

julia> isposdef(Hermitian(Matrix(M)))
true

julia> cholesky!(Hermitian(M))
ERROR: PosDefException: matrix is not Hermitian; Cholesky factorization failed.
Stacktrace:
 [1] non_hermitian_error()
   @ StaticArrays ~/Dropbox/JuliaPackages/StaticArrays.jl/src/cholesky.jl:2
 [2] #cholesky#532
   @ ~/Dropbox/JuliaPackages/StaticArrays.jl/src/cholesky.jl:4 [inlined]
 [3] cholesky
   @ ~/Dropbox/JuliaPackages/StaticArrays.jl/src/cholesky.jl:3 [inlined]
 [4] _chol!
   @ ~/Dropbox/JuliaPackages/StaticArrays.jl/src/cholesky.jl:11 [inlined]
 [5] cholesky!(A::Hermitian{Int64, MMatrix{2, 2, Int64, 4}}, ::NoPivot; check::Bool)
   @ LinearAlgebra ~/packages/julias/julia-1.9/share/julia/stdlib/v1.9/LinearAlgebra/src/cholesky.jl:267
 [6] cholesky!
   @ ~/packages/julias/julia-1.9/share/julia/stdlib/v1.9/LinearAlgebra/src/cholesky.jl:266 [inlined]
 [7] cholesky!(A::Hermitian{Int64, MMatrix{2, 2, Int64, 4}})
   @ LinearAlgebra ~/packages/julias/julia-1.9/share/julia/stdlib/v1.9/LinearAlgebra/src/cholesky.jl:266
 [8] top-level scope
   @ REPL[24]:1

This should not check if the parent is also hermitian

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions