Skip to content

Commit 848f131

Browse files
committed
Revert "Resolve ambiguity"
This reverts commit 3c19c34.
1 parent 3c19c34 commit 848f131

File tree

1 file changed

+8
-15
lines changed

1 file changed

+8
-15
lines changed

src/hessenberg.jl

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -177,35 +177,28 @@ function \(U::UnitUpperTriangular, H::UpperHessenberg)
177177
UpperHessenberg(HH)
178178
end
179179

180-
AdjUpperHessenberg{T,S<:UpperHessenberg{T}} = Adjoint{T, S}
181-
TransUpperHessenberg{T,S<:UpperHessenberg{T}} = Transpose{T, S}
182-
AdjOrTransUpperHessenberg{T,S<:UpperHessenberg{T}} = AdjOrTrans{T, S}
183-
184-
function (\)(H::Union{UpperHessenberg,AdjOrTransUpperHessenberg}, B::AbstractVecOrMat)
180+
function (\)(H::Union{UpperHessenberg,AdjOrTrans{<:Any,<:UpperHessenberg}}, B::AbstractVecOrMat)
185181
TFB = typeof(oneunit(eltype(H)) \ oneunit(eltype(B)))
186182
return ldiv!(H, copy_similar(B, TFB))
187183
end
188184

189-
(/)(B::AbstractMatrix, H::UpperHessenberg) = _rdiv(B, H)
190-
(/)(B::AbstractMatrix, H::AdjUpperHessenberg) = _rdiv(B, H)
191-
(/)(B::AbstractMatrix, H::TransUpperHessenberg) = _rdiv(B, H)
192-
function _rdiv(B, H)
185+
function (/)(B::AbstractMatrix, H::Union{UpperHessenberg,AdjOrTrans{<:Any,<:UpperHessenberg}})
193186
TFB = typeof(oneunit(eltype(B)) / oneunit(eltype(H)))
194187
return rdiv!(copy_similar(B, TFB), H)
195188
end
196189

197-
ldiv!(H::AdjOrTransUpperHessenberg, B::AbstractVecOrMat) =
190+
ldiv!(H::AdjOrTrans{<:Any,<:UpperHessenberg}, B::AbstractVecOrMat) =
198191
(rdiv!(wrapperop(H)(B), parent(H)); B)
199-
rdiv!(B::AbstractVecOrMat, H::AdjOrTransUpperHessenberg) =
192+
rdiv!(B::AbstractVecOrMat, H::AdjOrTrans{<:Any,<:UpperHessenberg}) =
200193
(ldiv!(parent(H), wrapperop(H)(B)); B)
201194

202195
# fix method ambiguities for right division, from adjtrans.jl:
203196
/(u::AdjointAbsVec, A::UpperHessenberg) = adjoint(adjoint(A) \ u.parent)
204197
/(u::TransposeAbsVec, A::UpperHessenberg) = transpose(transpose(A) \ u.parent)
205-
/(u::AdjointAbsVec, A::AdjUpperHessenberg) = adjoint(adjoint(A) \ u.parent)
206-
/(u::TransposeAbsVec, A::TransUpperHessenberg) = transpose(transpose(A) \ u.parent)
207-
/(u::AdjointAbsVec, A::TransUpperHessenberg) = adjoint(conj(A.parent) \ u.parent) # technically should be adjoint(copy(adjoint(copy(A))) \ u.parent)
208-
/(u::TransposeAbsVec, A::AdjUpperHessenberg) = transpose(conj(A.parent) \ u.parent)
198+
/(u::AdjointAbsVec, A::Adjoint{<:Any,<:UpperHessenberg}) = adjoint(adjoint(A) \ u.parent)
199+
/(u::TransposeAbsVec, A::Transpose{<:Any,<:UpperHessenberg}) = transpose(transpose(A) \ u.parent)
200+
/(u::AdjointAbsVec, A::Transpose{<:Any,<:UpperHessenberg}) = adjoint(conj(A.parent) \ u.parent) # technically should be adjoint(copy(adjoint(copy(A))) \ u.parent)
201+
/(u::TransposeAbsVec, A::Adjoint{<:Any,<:UpperHessenberg}) = transpose(conj(A.parent) \ u.parent)
209202

210203
# Solving (H+µI)x = b: we can do this in O(m²) time and O(m) memory
211204
# (in-place in x) by the RQ algorithm from:

0 commit comments

Comments
 (0)