@@ -919,9 +919,20 @@ _trimul!(C::AbstractMatrix, A::UpperOrLowerTriangular, B::AbstractTriangular) =
919919_trimul! (C:: AbstractMatrix , A:: AbstractTriangular , B:: UpperOrLowerTriangular ) =
920920 generic_mattrimul! (C, uplo_char (B), isunit_char (B), wrapperop (parent (B)), A, _unwrap_at (parent (B)))
921921
922- lmul! (A:: AbstractTriangular , B:: AbstractVecOrMat ) = @inline _trimul! (B, A, B)
923- rmul! (A:: AbstractMatrix , B:: AbstractTriangular ) = @inline _trimul! (A, A, B)
924-
922+ function lmul! (A:: AbstractTriangular , B:: AbstractVecOrMat )
923+ if istriu (A)
924+ _trimul! (B, uppertriangular (A), B)
925+ else
926+ _trimul! (B, lowertriangular (A), B)
927+ end
928+ end
929+ function rmul! (A:: AbstractMatrix , B:: AbstractTriangular )
930+ if istriu (B)
931+ _trimul! (A, A, uppertriangular (B))
932+ else
933+ _trimul! (A, A, lowertriangular (B))
934+ end
935+ end
925936
926937for TC in (:AbstractVector , :AbstractMatrix )
927938 @eval @inline function _mul! (C:: $TC , A:: AbstractTriangular , B:: AbstractVector , alpha:: Number , beta:: Number )
@@ -957,8 +968,20 @@ _ldiv!(C::AbstractVecOrMat, A::UpperOrLowerTriangular, B::AbstractVecOrMat) =
957968_rdiv! (C:: AbstractMatrix , A:: AbstractMatrix , B:: UpperOrLowerTriangular ) =
958969 generic_mattridiv! (C, uplo_char (B), isunit_char (B), wrapperop (parent (B)), A, _unwrap_at (parent (B)))
959970
960- ldiv! (A:: AbstractTriangular , B:: AbstractVecOrMat ) = @inline _ldiv! (B, A, B)
961- rdiv! (A:: AbstractMatrix , B:: AbstractTriangular ) = @inline _rdiv! (A, A, B)
971+ function ldiv! (A:: AbstractTriangular , B:: AbstractVecOrMat )
972+ if istriu (A)
973+ _ldiv! (B, uppertriangular (A), B)
974+ else
975+ _ldiv! (B, lowertriangular (A), B)
976+ end
977+ end
978+ function rdiv! (A:: AbstractMatrix , B:: AbstractTriangular )
979+ if istriu (B)
980+ _rdiv! (A, A, uppertriangular (B))
981+ else
982+ _rdiv! (A, A, lowertriangular (B))
983+ end
984+ end
962985
963986# preserve triangular structure in in-place multiplication/division
964987for (cty, aty, bty) in ((:UpperTriangular , :UpperTriangular , :UpperTriangular ),
0 commit comments