Skip to content

Commit d1e267f

Browse files
authored
bring back [l/r]mul! shortcuts for (kn)own triangular types (#1137)
Fixes JuliaGPU/CUDA.jl#2574 (comment).
1 parent 5cdeb46 commit d1e267f

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

src/triangular.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1074,13 +1074,16 @@ _trimul!(C::AbstractMatrix, A::UpperOrLowerTriangular, B::AbstractTriangular) =
10741074
_trimul!(C::AbstractMatrix, A::AbstractTriangular, B::UpperOrLowerTriangular) =
10751075
generic_mattrimul!(C, uplo_char(B), isunit_char(B), wrapperop(parent(B)), A, _unwrap_at(parent(B)))
10761076

1077+
# methods for LinearAlgebra.jl's own triangular types, to avoid `istriu` checks
1078+
lmul!(A::UpperOrLowerTriangular, B::AbstractVecOrMat) = @inline _trimul!(B, A, B)
10771079
function lmul!(A::AbstractTriangular, B::AbstractVecOrMat)
10781080
if istriu(A)
10791081
_trimul!(B, uppertriangular(A), B)
10801082
else
10811083
_trimul!(B, lowertriangular(A), B)
10821084
end
10831085
end
1086+
rmul!(A::AbstractMatrix, B::UpperOrLowerTriangular) = @inline _trimul!(A, A, B)
10841087
function rmul!(A::AbstractMatrix, B::AbstractTriangular)
10851088
if istriu(B)
10861089
_trimul!(A, A, uppertriangular(B))

0 commit comments

Comments
 (0)