@@ -1223,11 +1223,13 @@ function generic_mattrimul!(C::StridedMatrix{T}, uploc, isunitc, tfun::Function,
12231223 end
12241224end
12251225# division
1226- function generic_trimatdiv! (C:: StridedVecOrMat{T} , uploc, isunitc, tfun:: Function , A:: StridedMatrix{T} , B:: AbstractVecOrMat{T} ) where {T<: BlasFloat }
1226+ generic_trimatdiv! (C:: StridedVector{T} , uploc, isunitc, tfun:: Function , A:: StridedMatrix{T} , B:: AbstractVector{T} ) where {T<: BlasFloat } =
1227+ BLAS. trsv! (uploc, tfun === identity ? ' N' : tfun === transpose ? ' T' : ' C' , isunitc, A, C === B ? C : copyto! (C, B))
1228+ function generic_trimatdiv! (C:: StridedMatrix{T} , uploc, isunitc, tfun:: Function , A:: StridedMatrix{T} , B:: AbstractMatrix{T} ) where {T<: BlasFloat }
12271229 if stride (C,1 ) == stride (A,1 ) == 1
1228- LAPACK . trtrs! ( uploc, tfun === identity ? ' N' : tfun === transpose ? ' T' : ' C' , isunitc, A, C === B ? C : copyto! (C, B))
1230+ BLAS . trsm! ( ' L ' , uploc, tfun === identity ? ' N' : tfun === transpose ? ' T' : ' C' , isunitc, one (T) , A, C === B ? C : copyto! (C, B))
12291231 else # incompatible with LAPACK
1230- @invoke generic_trimatdiv! (C:: AbstractVecOrMat , uploc, isunitc, tfun:: Function , A:: AbstractMatrix , B:: AbstractVecOrMat )
1232+ @invoke generic_trimatdiv! (C:: AbstractVecOrMat , uploc, isunitc, tfun:: Function , A:: AbstractMatrix , B:: AbstractMatrix )
12311233 end
12321234end
12331235function generic_mattridiv! (C:: StridedMatrix{T} , uploc, isunitc, tfun:: Function , A:: AbstractMatrix{T} , B:: StridedMatrix{T} ) where {T<: BlasFloat }
0 commit comments