Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/eigen.jl
Original file line number Diff line number Diff line change
Expand Up @@ -276,6 +276,8 @@ eigvecs(A::Union{Number, AbstractMatrix}; kws...) =
eigvecs(F::Union{Eigen, GeneralizedEigen}) = F.vectors

eigvals(F::Union{Eigen, GeneralizedEigen}) = F.values
eigmin(F::Union{Eigen, GeneralizedEigen}) = minimum(F.values)
eigmax(F::Union{Eigen, GeneralizedEigen}) = maximum(F.values)

"""
eigvals!(A; permute::Bool=true, scale::Bool=true, sortby) -> values
Expand Down
18 changes: 18 additions & 0 deletions test/eigen.jl
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,15 @@ aimg = randn(n,n)/2
@test inv(a) ≈ inv(f)
@test isposdef(a) == isposdef(f)
@test eigvals(f) === f.values

if all(isreal, f.values)
@test eigmin(f) == minimum(f.values)
@test eigmax(f) == maximum(f.values)
else
@test_throws MethodError eigmin(f)
@test_throws MethodError eigmax(f)
end

@test eigvecs(f) === f.vectors
@test Array(f) ≈ a

Expand Down Expand Up @@ -81,6 +90,15 @@ aimg = randn(n,n)/2
@test prod(f.values) ≈ prod(eigvals(asym_sg/(ASG2))) atol=200ε
@test eigvecs(asym_sg, ASG2) == f.vectors
@test eigvals(f) === f.values

if all(isreal, f.values)
@test eigmin(f) == minimum(f.values)
@test eigmax(f) == maximum(f.values)
else
@test_throws MethodError eigmin(f)
@test_throws MethodError eigmax(f)
end

@test eigvecs(f) === f.vectors
@test_throws FieldError f.Z

Expand Down