Skip to content

Commit 9ca91cf

Browse files
committed
Use GenericSchur.HessenbergArg
1 parent 5f8916e commit 9ca91cf

File tree

1 file changed

+5
-13
lines changed

1 file changed

+5
-13
lines changed

src/eigenGeneral.jl

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,6 @@ function LinearAlgebra.ldiv!(H::HessenbergMatrix, B::AbstractVecOrMat)
3636
ldiv!(Triangular(Hd, :U), B)
3737
end
3838

39-
# Hessenberg factorization
40-
struct HessenbergFactorization{T, S<:StridedMatrix,U} <: Factorization{T}
41-
data::S
42-
τ::Vector{U}
43-
end
44-
45-
Base.size(H::HessenbergFactorization, args...) = size(H.data, args...)
46-
4739
# Schur
4840
struct Schur{T,S<:StridedMatrix} <: Factorization{T}
4941
data::S
@@ -66,7 +58,7 @@ end
6658

6759
# We currently absorb extra unsupported keywords in kwargs. These could e.g. be scale and permute. Do we want to check that these are false?
6860
function _schur!(
69-
H::HessenbergFactorization{T};
61+
H::GenericSchur.HessenbergArg{T};
7062
tol = eps(real(T)),
7163
debug = false,
7264
shiftmethod = :Francis,
@@ -76,7 +68,7 @@ function _schur!(
7668
n = size(H, 1)
7769
istart = 1
7870
iend = n
79-
HH = H.data
71+
HH = GenericSchur._getdata(H)
8072
τ = Rotation(Givens{T}[])
8173

8274
# iteration count
@@ -230,7 +222,7 @@ end
230222

231223
_eigvals!(A::StridedMatrix; kwargs...) = _eigvals!(_schur!(A; kwargs...))
232224
_eigvals!(H::HessenbergMatrix; kwargs...) = _eigvals!(_schur!(H; kwargs...))
233-
_eigvals!(H::HessenbergFactorization; kwargs...) = _eigvals!(_schur!(H; kwargs...))
225+
_eigvals!(H::GenericSchur.HessenbergArg; kwargs...) = _eigvals!(_schur!(H; kwargs...))
234226

235227
# Overload methods from LinearAlgebra to make them work generically
236228
if VERSION > v"1.2.0-DEV.0"
@@ -251,7 +243,7 @@ if VERSION > v"1.2.0-DEV.0"
251243
kwargs...) = LinearAlgebra.sorteig!(_eigvals!(H; kwargs...), sortby)
252244

253245
LinearAlgebra.eigvals!(
254-
H::HessenbergFactorization;
246+
H::GenericSchur.HessenbergArg;
255247
sortby::Union{Function,Nothing}=LinearAlgebra.eigsortby,
256248
kwargs...) = LinearAlgebra.sorteig!(_eigvals!(H; kwargs...), sortby)
257249
else
@@ -265,7 +257,7 @@ else
265257

266258
LinearAlgebra.eigvals!(H::HessenbergMatrix; kwargs...) = _eigvals!(H; kwargs...)
267259

268-
LinearAlgebra.eigvals!(H::HessenbergFactorization; kwargs...) = _eigvals!(H; kwargs...)
260+
LinearAlgebra.eigvals!(H::GenericSchur.HessenbergArg; kwargs...) = _eigvals!(H; kwargs...)
269261
end
270262

271263
# To compute the eigenvalue of the pseudo triangular Schur matrix we just return

0 commit comments

Comments
 (0)