@@ -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