@@ -114,16 +114,27 @@ end
114
114
/ (B:: TransposeAbsVec , adjF:: Adjoint{<:Any,<:Factorization} ) = adjoint (adjF. parent \ adjoint (B))
115
115
116
116
117
- # support the same 3-arg idiom as in our other in-place A_*_B functions:
118
- function ldiv! (Y:: AbstractVecOrMat , A:: Factorization , B:: AbstractVecOrMat )
117
+ function ldiv! (Y:: AbstractVector , A:: Factorization , B:: AbstractVector )
118
+ require_one_based_indexing (Y, B)
119
+ m, n = size (A, 1 ), size (A, 2 )
120
+ if m > n
121
+ Bc = copy (B)
122
+ ldiv! (A, Bc)
123
+ return copyto! (Y, 1 , Bc, 1 , n)
124
+ else
125
+ return ldiv! (A, copyto! (Y, B))
126
+ end
127
+ end
128
+ function ldiv! (Y:: AbstractMatrix , A:: Factorization , B:: AbstractMatrix )
119
129
require_one_based_indexing (Y, B)
120
130
m, n = size (A, 1 ), size (A, 2 )
121
131
if m > n
122
132
Bc = copy (B)
123
133
ldiv! (A, Bc)
124
134
return copyto! (Y, view (Bc, 1 : n, :))
125
135
else
126
- return ldiv! (A, copyto! (Y, view (B, 1 : m, :)))
136
+ copyto! (view (Y, 1 : m, :), view (B, 1 : m, :))
137
+ return ldiv! (A, Y)
127
138
end
128
139
end
129
140
0 commit comments