11# This file is a part of Julia. License is MIT: https://julialang.org/license
22
3- # shims to maintain existence of names in Base module in A_mul_B deprecation process
4- function Ac_ldiv_Bt end
5- function At_ldiv_Bt end
6- function A_ldiv_Bt end
7- function At_ldiv_B end
8- function Ac_ldiv_Bc end
9- function A_ldiv_Bc end
10- function Ac_ldiv_B end
11- function At_rdiv_Bt end
12- function A_rdiv_Bt end
13- function At_rdiv_B end
14- function Ac_rdiv_Bc end
15- function A_rdiv_Bc end
16- function Ac_rdiv_B end
17- function At_mul_Bt end
18- function A_mul_Bt end
19- function At_mul_B end
20- function Ac_mul_Bc end
21- function A_mul_Bc end
22- function Ac_mul_B end
23-
243"""
254Linear algebra module. Provides array arithmetic,
265matrix factorizations and other linear algebra related
@@ -29,8 +8,6 @@ functionality.
298module LinAlg
309
3110import Base: \ , / , * , ^ , + , - , ==
32- import Base: A_mul_Bt, At_ldiv_Bt, A_rdiv_Bc, At_ldiv_B, Ac_mul_Bc, A_mul_Bc, Ac_mul_B,
33- Ac_ldiv_B, Ac_ldiv_Bc, At_mul_Bt, A_rdiv_Bt, At_mul_B
3411import Base: USE_BLAS64, abs, acos, acosh, acot, acoth, acsc, acsch, adjoint, asec, asech,
3512 asin, asinh, atan, atanh, axes, big, broadcast, ceil, conj, convert, copy, copyto!, cos,
3613 cosh, cot, coth, csc, csch, eltype, exp, findmax, findmin, fill!, floor, getindex, hcat,
@@ -51,10 +28,6 @@ export
5128# Types
5229 Adjoint,
5330 Transpose,
54- RowVector,
55- ConjArray,
56- ConjVector,
57- ConjMatrix,
5831 SymTridiagonal,
5932 Tridiagonal,
6033 Bidiagonal,
@@ -171,34 +144,6 @@ export
171144# Operators
172145 \ ,
173146 / ,
174- A_ldiv_B!,
175- A_ldiv_Bc,
176- A_ldiv_Bt,
177- A_mul_B!,
178- A_mul_Bc,
179- A_mul_Bc!,
180- A_mul_Bt,
181- A_mul_Bt!,
182- A_rdiv_Bc,
183- A_rdiv_Bt,
184- Ac_ldiv_B,
185- Ac_ldiv_Bc,
186- Ac_ldiv_B!,
187- Ac_mul_B,
188- Ac_mul_B!,
189- Ac_mul_Bc,
190- Ac_mul_Bc!,
191- Ac_rdiv_B,
192- Ac_rdiv_Bc,
193- At_ldiv_B,
194- At_ldiv_Bt,
195- At_ldiv_B!,
196- At_mul_B,
197- At_mul_B!,
198- At_mul_Bt,
199- At_mul_Bt!,
200- At_rdiv_B,
201- At_rdiv_Bt,
202147
203148# Constants
204149 I
@@ -261,23 +206,44 @@ function char_uplo(uplo::Symbol)
261206 end
262207end
263208
264- # shims to maintain existence of names in LinAlg module in A_mul_B deprecation process
265- function A_mul_B! end
266- function Ac_mul_B! end
267- function Ac_mul_B! end
268- function At_mul_B! end
269- function A_ldiv_B! end
270- function At_ldiv_B! end
271- function Ac_ldiv_B! end
272- function A_rdiv_B! end
273- function A_rdiv_Bc! end
209+ """
210+ ldiv!([Y,] A, B) -> Y
211+
212+ Compute `A \\ B` in-place and store the result in `Y`, returning the result.
213+ If only two arguments are passed, then `ldiv!(A, B)` overwrites `B` with
214+ the result.
215+
216+ The argument `A` should *not* be a matrix. Rather, instead of matrices it should be a
217+ factorization object (e.g. produced by [`factorize`](@ref) or [`cholfact`](@ref)).
218+ The reason for this is that factorization itself is both expensive and typically allocates memory
219+ (although it can also be done in-place via, e.g., [`lufact!`](@ref)),
220+ and performance-critical situations requiring `ldiv!` usually also require fine-grained
221+ control over the factorization of `A`.
222+ """
223+ ldiv! (Y, A, B)
224+
225+ """
226+ rdiv!([Y,] A, B) -> Y
227+
228+ Compute `A / B` in-place and store the result in `Y`, returning the result.
229+ If only two arguments are passed, then `rdiv!(A, B)` overwrites `A` with
230+ the result.
231+
232+ The argument `B` should *not* be a matrix. Rather, instead of matrices it should be a
233+ factorization object (e.g. produced by [`factorize`](@ref) or [`cholfact`](@ref)).
234+ The reason for this is that factorization itself is both expensive and typically allocates memory
235+ (although it can also be done in-place via, e.g., [`lufact!`](@ref)),
236+ and performance-critical situations requiring `rdiv!` usually also require fine-grained
237+ control over the factorization of `B`.
238+ """
239+ rdiv! (Y, A, B)
274240
275241copy_oftype (A:: AbstractArray{T} , :: Type{T} ) where {T} = copy (A)
276242copy_oftype (A:: AbstractArray{T,N} , :: Type{S} ) where {T,N,S} = convert (AbstractArray{S,N}, A)
277243
278244include (" adjtrans.jl" )
279- include (" conjarray.jl" )
280245include (" transpose.jl" )
246+ include (" conjarray.jl" )
281247include (" rowvector.jl" )
282248
283249include (" exceptions.jl" )
0 commit comments