@@ -162,7 +162,7 @@ function eig2x2!(d::StridedVector, e::StridedVector, j::Integer, vectors::Matrix
162162 return c, s
163163end
164164
165- function eigvalsPWK! (S:: SymTridiagonal{T} ; tol = eps (T)) where {T<: Real }
165+ function eigvalsPWK! (S:: SymTridiagonal{T} ; tol = eps (T), sortby :: Union{Function,Nothing} = LinearAlgebra . eigsortby ) where {T<: Real }
166166 d = S. dv
167167 e = S. ev
168168 n = length (d)
@@ -216,7 +216,7 @@ function eigvalsPWK!(S::SymTridiagonal{T}; tol = eps(T)) where {T<:Real}
216216 end
217217 end
218218 end
219- sort ! (d)
219+ LinearAlgebra . sorteig ! (d, sortby )
220220end
221221
222222function eigQL! (
@@ -570,39 +570,39 @@ function symtriUpper!(
570570end
571571
572572
573- _eigvals! (A:: SymmetricTridiagonalFactorization ; tol = eps (real (eltype (A)))) =
574- eigvalsPWK! (A. diagonals, tol = tol )
573+ _eigvals! (A:: SymmetricTridiagonalFactorization ; tol = eps (real (eltype (A))), sortby :: Union{Function,Nothing} = LinearAlgebra . eigsortby ) =
574+ eigvalsPWK! (A. diagonals; tol, sortby )
575575
576- _eigvals! (A:: SymTridiagonal ; tol = eps (real (eltype (A)))) = eigvalsPWK! (A, tol = tol )
576+ _eigvals! (A:: SymTridiagonal ; tol = eps (real (eltype (A))), sortby :: Union{Function,Nothing} = LinearAlgebra . eigsortby ) = eigvalsPWK! (A; tol, sortby )
577577
578- _eigvals! (A:: Hermitian ; tol = eps (real (eltype (A)))) = eigvals! (symtri! (A), tol = tol )
578+ _eigvals! (A:: Hermitian ; tol = eps (real (eltype (A))), sortby :: Union{Function,Nothing} = LinearAlgebra . eigsortby ) = eigvals! (symtri! (A); tol, sortby )
579579
580580
581- LinearAlgebra. eigvals! (A:: SymmetricTridiagonalFactorization ; tol = eps (real (eltype (A)))) =
582- _eigvals! (A, tol = tol )
581+ LinearAlgebra. eigvals! (A:: SymmetricTridiagonalFactorization ; tol = eps (real (eltype (A))), sortby :: Union{Function,Nothing} = LinearAlgebra . eigsortby ) =
582+ _eigvals! (A; tol, sortby )
583583
584- LinearAlgebra. eigvals! (A:: SymTridiagonal ; tol = eps (real (eltype (A)))) =
585- _eigvals! (A, tol = tol )
584+ LinearAlgebra. eigvals! (A:: SymTridiagonal ; tol = eps (real (eltype (A))), sortby :: Union{Function,Nothing} = LinearAlgebra . eigsortby ) =
585+ _eigvals! (A; tol, sortby )
586586
587- LinearAlgebra. eigvals! (A:: Hermitian ; tol = eps (real (eltype (A)))) = _eigvals! (A, tol = tol )
587+ LinearAlgebra. eigvals! (A:: Hermitian ; tol = eps (real (eltype (A))), sortby :: Union{Function,Nothing} = LinearAlgebra . eigsortby ) = _eigvals! (A; tol, sortby )
588588
589589
590- _eigen! (A:: SymmetricTridiagonalFactorization ; tol = eps (real (eltype (A)))) =
591- LinearAlgebra. Eigen (eigQL! (A. diagonals, vectors = Array (A. Q), tol = tol)... )
590+ _eigen! (A:: SymmetricTridiagonalFactorization ; tol = eps (real (eltype (A))), sortby :: Union{Function,Nothing} = LinearAlgebra . eigsortby ) =
591+ LinearAlgebra. Eigen (LinearAlgebra . sorteig! ( eigQL! (A. diagonals, vectors = Array (A. Q), tol = tol) ... , sortby )... )
592592
593- _eigen! (A:: SymTridiagonal ; tol = eps (real (eltype (A)))) = LinearAlgebra. Eigen (
593+ _eigen! (A:: SymTridiagonal ; tol = eps (real (eltype (A))), sortby :: Union{Function,Nothing} = LinearAlgebra . eigsortby ) = LinearAlgebra. Eigen (
594594 eigQL! (A, vectors = Matrix {eltype(A)} (I, size (A, 1 ), size (A, 1 )), tol = tol)... ,
595595)
596596
597- _eigen! (A:: Hermitian ; tol = eps (real (eltype (A)))) = _eigen! (symtri! (A), tol = tol)
597+ _eigen! (A:: Hermitian ; tol = eps (real (eltype (A))), sortby :: Union{Function,Nothing} = LinearAlgebra . eigsortby ) = _eigen! (symtri! (A), tol = tol)
598598
599599
600- LinearAlgebra. eigen! (A:: SymmetricTridiagonalFactorization ; tol = eps (real (eltype (A)))) =
601- _eigen! (A, tol = tol )
600+ LinearAlgebra. eigen! (A:: SymmetricTridiagonalFactorization ; tol = eps (real (eltype (A))), sortby :: Union{Function,Nothing} = LinearAlgebra . eigsortby ) =
601+ _eigen! (A; tol, sortby )
602602
603- LinearAlgebra. eigen! (A:: SymTridiagonal ; tol = eps (real (eltype (A)))) = _eigen! (A, tol = tol )
603+ LinearAlgebra. eigen! (A:: SymTridiagonal ; tol = eps (real (eltype (A))), sortby :: Union{Function,Nothing} = LinearAlgebra . eigsortby ) = _eigen! (A; tol, sortby )
604604
605- LinearAlgebra. eigen! (A:: Hermitian ; tol = eps (real (eltype (A)))) = _eigen! (A, tol = tol )
605+ LinearAlgebra. eigen! (A:: Hermitian ; tol = eps (real (eltype (A))), sortby :: Union{Function,Nothing} = LinearAlgebra . eigsortby ) = _eigen! (A; tol, sortby )
606606
607607
608608function eigen2! (
0 commit comments