@@ -448,8 +448,7 @@ function singleShiftQR!(
448
448
end
449
449
450
450
symtri! (A:: Hermitian ) = A. uplo == ' L' ? symtriLower! (A. data) : symtriUpper! (A. data)
451
- symtri! (A:: Symmetric{T} ) where {T<: Real } =
452
- A. uplo == ' L' ? symtriLower! (A. data) : symtriUpper! (A. data)
451
+ symtri! (A:: Symmetric{<:Real} ) = A. uplo == ' L' ? symtriLower! (A. data) : symtriUpper! (A. data)
453
452
454
453
# Assume that lower triangle stores the relevant part
455
454
function symtriLower! (
@@ -580,6 +579,7 @@ _eigvals!(A::SymTridiagonal; tol = eps(real(eltype(A))), sortby::Union{Function,
580
579
581
580
_eigvals! (A:: Hermitian ; tol = eps (real (eltype (A))), sortby:: Union{Function,Nothing} = LinearAlgebra. eigsortby) = eigvals! (symtri! (A); tol, sortby)
582
581
582
+ _eigvals! (A:: Symmetric{<:Real} ; tol = eps (eltype (A)), sortby:: Union{Function,Nothing} = LinearAlgebra. eigsortby) = eigvals! (symtri! (A); tol, sortby)
583
583
584
584
LinearAlgebra. eigvals! (A:: SymmetricTridiagonalFactorization ; tol = eps (real (eltype (A))), sortby:: Union{Function,Nothing} = LinearAlgebra. eigsortby) =
585
585
_eigvals! (A; tol, sortby)
@@ -589,6 +589,7 @@ LinearAlgebra.eigvals!(A::SymTridiagonal; tol = eps(real(eltype(A))), sortby::Un
589
589
590
590
LinearAlgebra. eigvals! (A:: Hermitian ; tol = eps (real (eltype (A))), sortby:: Union{Function,Nothing} = LinearAlgebra. eigsortby) = _eigvals! (A; tol, sortby)
591
591
592
+ LinearAlgebra. eigvals! (A:: Symmetric{<:Real} ; tol = eps (eltype (A)), sortby:: Union{Function,Nothing} = LinearAlgebra. eigsortby) = _eigvals! (A; tol, sortby)
592
593
593
594
_eigen! (A:: SymmetricTridiagonalFactorization ; tol = eps (real (eltype (A))), sortby:: Union{Function,Nothing} = LinearAlgebra. eigsortby) =
594
595
LinearAlgebra. Eigen (LinearAlgebra. sorteig! (eigQL! (A. diagonals, vectors = Array (A. Q), tol = tol)... , sortby)... )
@@ -599,6 +600,7 @@ _eigen!(A::SymTridiagonal; tol = eps(real(eltype(A))), sortby::Union{Function,No
599
600
600
601
_eigen! (A:: Hermitian ; tol = eps (real (eltype (A))), sortby:: Union{Function,Nothing} = LinearAlgebra. eigsortby) = _eigen! (symtri! (A), tol = tol)
601
602
603
+ _eigen! (A:: Symmetric{<:Real} ; tol = eps (eltype (A)), sortby:: Union{Function,Nothing} = LinearAlgebra. eigsortby) = _eigen! (symtri! (A), tol = tol)
602
604
603
605
LinearAlgebra. eigen! (A:: SymmetricTridiagonalFactorization ; tol = eps (real (eltype (A))), sortby:: Union{Function,Nothing} = LinearAlgebra. eigsortby) =
604
606
_eigen! (A; tol, sortby)
@@ -607,6 +609,8 @@ LinearAlgebra.eigen!(A::SymTridiagonal; tol = eps(real(eltype(A))), sortby::Unio
607
609
608
610
LinearAlgebra. eigen! (A:: Hermitian ; tol = eps (real (eltype (A))), sortby:: Union{Function,Nothing} = LinearAlgebra. eigsortby) = _eigen! (A; tol, sortby)
609
611
612
+ LinearAlgebra. eigen! (A:: Symmetric{<:Real} ; tol = eps (eltype (A)), sortby:: Union{Function,Nothing} = LinearAlgebra. eigsortby) = _eigen! (A; tol, sortby)
613
+
610
614
611
615
function eigen2! (
612
616
A:: SymmetricTridiagonalFactorization ;
@@ -628,12 +632,17 @@ end
628
632
eigen2! (A:: Hermitian ; tol = eps (float (real (one (eltype (A)))))) =
629
633
eigen2! (symtri! (A), tol = tol)
630
634
635
+ eigen2! (A:: Symmetric{<:Real} ; tol = eps (float (one (eltype (A))))) =
636
+ eigen2! (symtri! (A), tol = tol)
637
+
631
638
632
639
eigen2 (A:: SymTridiagonal ; tol = eps (float (real (one (eltype (A)))))) =
633
640
eigen2! (copy (A), tol = tol)
634
641
635
642
eigen2 (A:: Hermitian , tol = eps (float (real (one (eltype (A)))))) = eigen2! (copy (A), tol = tol)
636
643
644
+ eigen2 (A:: Symmetric{<:Real} , tol = eps (float (one (eltype (A))))) = eigen2! (copy (A), tol = tol)
645
+
637
646
# First method of each type here is identical to the method defined in
638
647
# LinearAlgebra but is needed for disambiguation
639
648
const _eigencopy_oftype = if VERSION >= v " 1.9"
0 commit comments