@@ -36,14 +36,6 @@ function LinearAlgebra.ldiv!(H::HessenbergMatrix, B::AbstractVecOrMat)
36
36
ldiv! (Triangular (Hd, :U ), B)
37
37
end
38
38
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
-
47
39
# Schur
48
40
struct Schur{T,S<: StridedMatrix } <: Factorization{T}
49
41
data:: S
66
58
67
59
# 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?
68
60
function _schur! (
69
- H:: HessenbergFactorization {T} ;
61
+ H:: GenericSchur.HessenbergArg {T} ;
70
62
tol = eps (real (T)),
71
63
debug = false ,
72
64
shiftmethod = :Francis ,
@@ -76,7 +68,7 @@ function _schur!(
76
68
n = size (H, 1 )
77
69
istart = 1
78
70
iend = n
79
- HH = H . data
71
+ HH = GenericSchur . _getdata (H)
80
72
τ = Rotation (Givens{T}[])
81
73
82
74
# iteration count
230
222
231
223
_eigvals! (A:: StridedMatrix ; kwargs... ) = _eigvals! (_schur! (A; kwargs... ))
232
224
_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... ))
234
226
235
227
# Overload methods from LinearAlgebra to make them work generically
236
228
if VERSION > v " 1.2.0-DEV.0"
@@ -251,7 +243,7 @@ if VERSION > v"1.2.0-DEV.0"
251
243
kwargs... ) = LinearAlgebra. sorteig! (_eigvals! (H; kwargs... ), sortby)
252
244
253
245
LinearAlgebra. eigvals! (
254
- H:: HessenbergFactorization ;
246
+ H:: GenericSchur.HessenbergArg ;
255
247
sortby:: Union{Function,Nothing} = LinearAlgebra. eigsortby,
256
248
kwargs... ) = LinearAlgebra. sorteig! (_eigvals! (H; kwargs... ), sortby)
257
249
else
265
257
266
258
LinearAlgebra. eigvals! (H:: HessenbergMatrix ; kwargs... ) = _eigvals! (H; kwargs... )
267
259
268
- LinearAlgebra. eigvals! (H:: HessenbergFactorization ; kwargs... ) = _eigvals! (H; kwargs... )
260
+ LinearAlgebra. eigvals! (H:: GenericSchur.HessenbergArg ; kwargs... ) = _eigvals! (H; kwargs... )
269
261
end
270
262
271
263
# To compute the eigenvalue of the pseudo triangular Schur matrix we just return
0 commit comments