Skip to content

Commit 3e9afb8

Browse files
committed
Invoke mul in strided triangular * Diagonal
1 parent d052a62 commit 3e9afb8

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

src/diagonal.jl

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -672,21 +672,23 @@ for Tri in (:UpperTriangular, :LowerTriangular)
672672
UTri = Symbol(:Unit, Tri)
673673
# 2 args
674674
for (fun, f) in zip((:mul, :rmul!, :rdiv!, :/), (:identity, :identity, :inv, :inv))
675-
@eval $fun(A::$Tri, D::Diagonal) = $Tri($fun(A.data, D))
676-
@eval $fun(A::$UTri, D::Diagonal) = $Tri(_setdiag!($fun(A.data, D), $f, D.diag))
675+
g = fun == :mul ? :* : fun
676+
@eval $fun(A::$Tri, D::Diagonal) = $Tri($g(A.data, D))
677+
@eval $fun(A::$UTri, D::Diagonal) = $Tri(_setdiag!($g(A.data, D), $f, D.diag))
677678
end
678679
@eval mul(A::$Tri{<:Any, <:StridedMaybeAdjOrTransMat}, D::Diagonal) =
679-
@invoke *(A::AbstractMatrix, D::Diagonal)
680+
@invoke mul(A::AbstractMatrix, D::Diagonal)
680681
@eval mul(A::$UTri{<:Any, <:StridedMaybeAdjOrTransMat}, D::Diagonal) =
681-
@invoke *(A::AbstractMatrix, D::Diagonal)
682+
@invoke mul(A::AbstractMatrix, D::Diagonal)
682683
for (fun, f) in zip((:mul, :lmul!, :ldiv!, :\), (:identity, :identity, :inv, :inv))
683-
@eval $fun(D::Diagonal, A::$Tri) = $Tri($fun(D, A.data))
684-
@eval $fun(D::Diagonal, A::$UTri) = $Tri(_setdiag!($fun(D, A.data), $f, D.diag))
684+
g = fun == :mul ? :* : fun
685+
@eval $fun(D::Diagonal, A::$Tri) = $Tri($g(D, A.data))
686+
@eval $fun(D::Diagonal, A::$UTri) = $Tri(_setdiag!($g(D, A.data), $f, D.diag))
685687
end
686688
@eval mul(D::Diagonal, A::$Tri{<:Any, <:StridedMaybeAdjOrTransMat}) =
687-
@invoke *(D::Diagonal, A::AbstractMatrix)
689+
@invoke mul(D::Diagonal, A::AbstractMatrix)
688690
@eval mul(D::Diagonal, A::$UTri{<:Any, <:StridedMaybeAdjOrTransMat}) =
689-
@invoke *(D::Diagonal, A::AbstractMatrix)
691+
@invoke mul(D::Diagonal, A::AbstractMatrix)
690692
# 3-arg ldiv!
691693
@eval ldiv!(C::$Tri, D::Diagonal, A::$Tri) = $Tri(ldiv!(C.data, D, A.data))
692694
@eval ldiv!(C::$Tri, D::Diagonal, A::$UTri) = $Tri(_setdiag!(ldiv!(C.data, D, A.data), inv, D.diag))

0 commit comments

Comments
 (0)