Skip to content

Commit 355419d

Browse files
committed
disambiguation
1 parent 0205562 commit 355419d

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

stdlib/LinearAlgebra/src/triangular.jl

+9-4
Original file line numberDiff line numberDiff line change
@@ -2180,8 +2180,13 @@ factorize(A::AbstractTriangular) = A
21802180
*(A::AbstractTriangular, B::TransposeAbsVec) = transpose(transpose(B) * transpose(A))
21812181

21822182
# disambiguation methods: /(Adjoint of AbsVec, <:AbstractTriangular)
2183-
/(u::AdjointAbsVec, A::AbstractTriangular) = adjoint(adjoint(A) \ u.parent)
2184-
# disambiguation methods: /(Adjoint of AbsVec, Adj/Trans of <:AbstractTriangular)
2185-
/(u::TransposeAbsVec, A::AbstractTriangular) = transpose(transpose(A) \ u.parent)
2183+
/(u::AdjointAbsVec, A::Union{LowerTriangular,UpperTriangular}) = adjoint(adjoint(A) \ u.parent)
2184+
/(u::AdjointAbsVec, A::Union{UnitLowerTriangular,UnitUpperTriangular}) = adjoint(adjoint(A) \ u.parent)
21862185
# disambiguation methods: /(Transpose of AbsVec, Adj/Trans of <:AbstractTriangular)
2187-
/(u::TransposeAbsVec, A::AbstractTriangular{<:Any,<:Adjoint}) = transpose(conj(A.parent) \ u.parent)
2186+
for (tritype, comptritype) in ((:LowerTriangular, :UpperTriangular),
2187+
(:UnitLowerTriangular, :UnitUpperTriangular),
2188+
(:UpperTriangular, :LowerTriangular),
2189+
(:UnitUpperTriangular, :UnitLowerTriangular))
2190+
@eval /(u::TransposeAbsVec, A::$tritype{<:Any,<:Adjoint}) = transpose($comptritype(conj(parent(parent(A)))) \ u.parent)
2191+
@eval /(u::TransposeAbsVec, A::$tritype{<:Any,<:Transpose}) = transpose(transpose(A) \ u.parent)
2192+
end

0 commit comments

Comments
 (0)