Skip to content

Commit 6d23c53

Browse files
committed
Add 'eigmin'/'eigmax' methods for 'Eigen'
We add the methods 'eigmin' and 'eigmax' on the type 'F::Union{Eigen, GeneralizedEigen}' similarly to how 'eigvals' is defined on 'F'. Note that the corresponding unit tests in 'test/eigen.jl' that call 'eigvals' on such a struct are updated to include 'eigmin' and 'eigmax' calls as well. (Resolves #1464 by @longemen3000.)
1 parent 7b21cab commit 6d23c53

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

src/eigen.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,8 @@ eigvecs(A::Union{Number, AbstractMatrix}; kws...) =
276276
eigvecs(F::Union{Eigen, GeneralizedEigen}) = F.vectors
277277

278278
eigvals(F::Union{Eigen, GeneralizedEigen}) = F.values
279+
eigmin(F::Union{Eigen, GeneralizedEigen}) = minimum(F.values)
280+
eigmax(F::Union{Eigen, GeneralizedEigen}) = maximum(F.values)
279281

280282
"""
281283
eigvals!(A; permute::Bool=true, scale::Bool=true, sortby) -> values

test/eigen.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ aimg = randn(n,n)/2
4444
@test inv(a) inv(f)
4545
@test isposdef(a) == isposdef(f)
4646
@test eigvals(f) === f.values
47+
@test eigmin(f) == minimum(f.values)
48+
@test eigmax(f) == maximum(f.values)
4749
@test eigvecs(f) === f.vectors
4850
@test Array(f) a
4951

@@ -81,6 +83,8 @@ aimg = randn(n,n)/2
8183
@test prod(f.values) prod(eigvals(asym_sg/(ASG2))) atol=200ε
8284
@test eigvecs(asym_sg, ASG2) == f.vectors
8385
@test eigvals(f) === f.values
86+
@test eigmin(f) == minimum(f.values)
87+
@test eigmax(f) == maximum(f.values)
8488
@test eigvecs(f) === f.vectors
8589
@test_throws FieldError f.Z
8690

0 commit comments

Comments
 (0)