Skip to content

Commit 4add253

Browse files
committed
Add hermitian/symmetric checks
1 parent 675ce94 commit 4add253

2 files changed

Lines changed: 3 additions & 1 deletion

File tree

src/MatrixAlgebraKit.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ using LinearAlgebra: LinearAlgebra
44
using LinearAlgebra: norm # TODO: eleminate if we use VectorInterface.jl?
55
using LinearAlgebra: mul!, rmul!, lmul!, adjoint!, rdiv!, ldiv!
66
using LinearAlgebra: sylvester
7-
using LinearAlgebra: isposdef, ishermitian
7+
using LinearAlgebra: isposdef, ishermitian, issymmetric
88
using LinearAlgebra: Diagonal, diag, diagind, isdiag
99
using LinearAlgebra: UpperTriangular, LowerTriangular
1010
using LinearAlgebra: BlasFloat, BlasReal, BlasComplex, BlasInt

src/implementations/eigh.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ end
3333
function check_input(::typeof(eigh_full!), A::AbstractMatrix, DV, ::DiagonalAlgorithm)
3434
m, n = size(A)
3535
@assert m == n && isdiag(A)
36+
@assert (eltype(A) <: Real && issymmetric(A)) || ishermitian(A)
3637
D, V = DV
3738
@assert D isa Diagonal && V isa Diagonal
3839
@check_size(D, (m, m))
@@ -44,6 +45,7 @@ end
4445
function check_input(::typeof(eigh_vals!), A::AbstractMatrix, D, ::DiagonalAlgorithm)
4546
m, n = size(A)
4647
@assert m == n && isdiag(A)
48+
@assert (eltype(A) <: Real && issymmetric(A)) || ishermitian(A)
4749
@assert D isa AbstractVector
4850
@check_size(D, (n,))
4951
@check_scalar(D, A, real)

0 commit comments

Comments
 (0)