@@ -18,8 +18,8 @@ for Typ in (:Ldiv, :Rdiv)
1818 similar (A:: $Typ , :: Type{T} ) where T = similar (A, T, axes (A))
1919 similar (A:: $Typ ) = similar (A, eltype (A))
2020
21- @inline copy (M:: $Typ ) = copyto! (similar (M), M)
22- @inline materialize (M:: $Typ ) = copy (instantiate (M))
21+ @inline copy (M:: $Typ ; kwds ... ) = copyto! (similar (M), M; kwds ... )
22+ @inline materialize (M:: $Typ ; kwds ... ) = copy (instantiate (M); kwds ... )
2323 end
2424end
2525
@@ -78,24 +78,24 @@ __ldiv!(_, F, B) = LinearAlgebra.ldiv!(F, B)
7878@inline _ldiv! (A:: Factorization , B) = LinearAlgebra. ldiv! (A, B)
7979@inline _ldiv! (A:: Factorization , B:: LayoutArray ) = error (" Overload materialize!(::Ldiv{$(typeof (MemoryLayout (A))) ,$(typeof (MemoryLayout (B))) })" )
8080
81- @inline _ldiv! (dest, A, B) = ldiv! (dest, factorize (A), B)
82- @inline _ldiv! (dest, A:: Factorization , B) = LinearAlgebra. ldiv! (dest, A, B)
83- @inline _ldiv! (dest, A:: Transpose{<:Any,<:Factorization} , B) = LinearAlgebra. ldiv! (dest, A, B)
84- @inline _ldiv! (dest, A:: Adjoint{<:Any,<:Factorization} , B) = LinearAlgebra. ldiv! (dest, A, B)
81+ @inline _ldiv! (dest, A, B; kwds ... ) = ldiv! (dest, factorize (A), B; kwds ... )
82+ @inline _ldiv! (dest, A:: Factorization , B; kwds ... ) = LinearAlgebra. ldiv! (dest, A, B; kwds ... )
83+ @inline _ldiv! (dest, A:: Transpose{<:Any,<:Factorization} , B; kwds ... ) = LinearAlgebra. ldiv! (dest, A, B; kwds ... )
84+ @inline _ldiv! (dest, A:: Adjoint{<:Any,<:Factorization} , B; kwds ... ) = LinearAlgebra. ldiv! (dest, A, B; kwds ... )
8585
86- @inline ldiv (A, B) = materialize (Ldiv (A,B))
87- @inline rdiv (A, B) = materialize (Rdiv (A,B))
86+ @inline ldiv (A, B; kwds ... ) = materialize (Ldiv (A,B); kwds ... )
87+ @inline rdiv (A, B; kwds ... ) = materialize (Rdiv (A,B); kwds ... )
8888
89- @inline ldiv! (A, B) = materialize! (Ldiv (A,B))
90- @inline rdiv! (A, B) = materialize! (Rdiv (A,B))
89+ @inline ldiv! (A, B; kwds ... ) = materialize! (Ldiv (A,B); kwds ... )
90+ @inline rdiv! (A, B; kwds ... ) = materialize! (Rdiv (A,B); kwds ... )
9191
92- @inline ldiv! (C, A, B) = copyto! (C, Ldiv (A,B))
93- @inline rdiv! (C, A, B) = copyto! (C, Rdiv (A,B))
92+ @inline ldiv! (C, A, B; kwds ... ) = copyto! (C, Ldiv (A,B); kwds ... )
93+ @inline rdiv! (C, A, B; kwds ... ) = copyto! (C, Rdiv (A,B); kwds ... )
9494
9595@inline materialize! (M:: Ldiv ) = _ldiv! (M. A, M. B)
9696@inline materialize! (M:: Rdiv ) = ldiv! (M. B' , M. A' )'
97- @inline copyto! (dest:: AbstractArray , M:: Rdiv ) = copyto! (dest' , Ldiv (M. B' , M. A' ))'
98- @inline copyto! (dest:: AbstractArray , M:: Ldiv ) = _ldiv! (dest, M. A, copy (M. B))
97+ @inline copyto! (dest:: AbstractArray , M:: Rdiv ; kwds ... ) = copyto! (dest' , Ldiv (M. B' , M. A' ); kwds ... )'
98+ @inline copyto! (dest:: AbstractArray , M:: Ldiv ; kwds ... ) = _ldiv! (dest, M. A, copy (M. B); kwds ... )
9999
100100const MatLdivVec{styleA, styleB, T, V} = Ldiv{styleA, styleB, <: AbstractMatrix{T} , <: AbstractVector{V} }
101101const MatLdivMat{styleA, styleB, T, V} = Ldiv{styleA, styleB, <: AbstractMatrix{T} , <: AbstractMatrix{V} }
@@ -127,61 +127,61 @@ end
127127
128128macro _layoutldiv (Typ)
129129 ret = quote
130- LinearAlgebra. ldiv! (A:: $Typ , x:: AbstractVector ) = ArrayLayouts. ldiv! (A,x)
131- LinearAlgebra. ldiv! (A:: $Typ , x:: AbstractMatrix ) = ArrayLayouts. ldiv! (A,x)
132- LinearAlgebra. ldiv! (A:: $Typ , x:: StridedVector ) = ArrayLayouts. ldiv! (A,x)
133- LinearAlgebra. ldiv! (A:: $Typ , x:: StridedMatrix ) = ArrayLayouts. ldiv! (A,x)
130+ LinearAlgebra. ldiv! (A:: $Typ , x:: AbstractVector ; kwds ... ) = ArrayLayouts. ldiv! (A,x; kwds ... )
131+ LinearAlgebra. ldiv! (A:: $Typ , x:: AbstractMatrix ; kwds ... ) = ArrayLayouts. ldiv! (A,x; kwds ... )
132+ LinearAlgebra. ldiv! (A:: $Typ , x:: StridedVector ; kwds ... ) = ArrayLayouts. ldiv! (A,x; kwds ... )
133+ LinearAlgebra. ldiv! (A:: $Typ , x:: StridedMatrix ; kwds ... ) = ArrayLayouts. ldiv! (A,x; kwds ... )
134134
135- LinearAlgebra. ldiv! (A:: Factorization , x:: $Typ ) = ArrayLayouts. ldiv! (A,x)
136- LinearAlgebra. ldiv! (A:: LU , x:: $Typ ) = ArrayLayouts. ldiv! (A,x)
137- LinearAlgebra. ldiv! (A:: Cholesky , x:: $Typ ) = ArrayLayouts. ldiv! (A,x)
135+ LinearAlgebra. ldiv! (A:: Factorization , x:: $Typ ; kwds ... ) = ArrayLayouts. ldiv! (A,x; kwds ... )
136+ LinearAlgebra. ldiv! (A:: LU , x:: $Typ ; kwds ... ) = ArrayLayouts. ldiv! (A,x; kwds ... )
137+ LinearAlgebra. ldiv! (A:: Cholesky , x:: $Typ ; kwds ... ) = ArrayLayouts. ldiv! (A,x; kwds ... )
138138
139- LinearAlgebra. ldiv! (A:: Bidiagonal , B:: $Typ ) = ArrayLayouts. ldiv! (A,B)
139+ LinearAlgebra. ldiv! (A:: Bidiagonal , B:: $Typ ; kwds ... ) = ArrayLayouts. ldiv! (A,B; kwds ... )
140140
141141
142- (\ )(A:: $Typ , x:: AbstractVector ) = ArrayLayouts. ldiv (A,x)
143- (\ )(A:: $Typ , x:: AbstractMatrix ) = ArrayLayouts. ldiv (A,x)
142+ (\ )(A:: $Typ , x:: AbstractVector ; kwds ... ) = ArrayLayouts. ldiv (A,x; kwds ... )
143+ (\ )(A:: $Typ , x:: AbstractMatrix ; kwds ... ) = ArrayLayouts. ldiv (A,x; kwds ... )
144144
145- (\ )(x:: AbstractMatrix , A:: $Typ ) = ArrayLayouts. ldiv (x,A)
146- (\ )(x:: LinearAlgebra.HermOrSym , A:: $Typ ) = ArrayLayouts. ldiv (x,A)
145+ (\ )(x:: AbstractMatrix , A:: $Typ ; kwds ... ) = ArrayLayouts. ldiv (x,A; kwds ... )
146+ (\ )(x:: LinearAlgebra.HermOrSym , A:: $Typ ; kwds ... ) = ArrayLayouts. ldiv (x,A; kwds ... )
147147 if VERSION < v " 1.9-" # disambiguation
148- \ (x:: LinearAlgebra.HermOrSym{<:Any,<:StridedMatrix} , A:: $Typ ) = ArrayLayouts. ldiv (x,A)
148+ \ (x:: LinearAlgebra.HermOrSym{<:Any,<:StridedMatrix} , A:: $Typ ; kwds ... ) = ArrayLayouts. ldiv (x,A; kwds ... )
149149 end
150- (\ )(x:: UpperTriangular , A:: $Typ ) = ArrayLayouts. ldiv (x,A)
151- (\ )(x:: UnitUpperTriangular , A:: $Typ ) = ArrayLayouts. ldiv (x,A)
152- (\ )(x:: LowerTriangular , A:: $Typ ) = ArrayLayouts. ldiv (x,A)
153- (\ )(x:: UnitLowerTriangular , A:: $Typ ) = ArrayLayouts. ldiv (x,A)
154- (\ )(x:: Diagonal , A:: $Typ ) = ArrayLayouts. ldiv (x,A)
150+ (\ )(x:: UpperTriangular , A:: $Typ ; kwds ... ) = ArrayLayouts. ldiv (x,A; kwds ... )
151+ (\ )(x:: UnitUpperTriangular , A:: $Typ ; kwds ... ) = ArrayLayouts. ldiv (x,A; kwds ... )
152+ (\ )(x:: LowerTriangular , A:: $Typ ; kwds ... ) = ArrayLayouts. ldiv (x,A; kwds ... )
153+ (\ )(x:: UnitLowerTriangular , A:: $Typ ; kwds ... ) = ArrayLayouts. ldiv (x,A; kwds ... )
154+ (\ )(x:: Diagonal , A:: $Typ ; kwds ... ) = ArrayLayouts. ldiv (x,A; kwds ... )
155155
156- (\ )(A:: Bidiagonal{<:Number} , B:: $Typ{<:Number} ) = ArrayLayouts. ldiv (A,B)
157- (\ )(A:: Bidiagonal , B:: $Typ ) = ArrayLayouts. ldiv (A,B)
158- (\ )(transA:: Transpose{<:Number,<:Bidiagonal{<:Number}} , B:: $Typ{<:Number} ) = ArrayLayouts. ldiv (transA,B)
159- (\ )(transA:: Transpose{<:Any,<:Bidiagonal} , B:: $Typ ) = ArrayLayouts. ldiv (transA,B)
160- (\ )(adjA:: Adjoint{<:Number,<:Bidiagonal{<:Number}} , B:: $Typ{<:Number} ) = ArrayLayouts. ldiv (adjA,B)
161- (\ )(adjA:: Adjoint{<:Any,<:Bidiagonal} , B:: $Typ ) = ArrayLayouts. ldiv (adjA,B)
156+ (\ )(A:: Bidiagonal{<:Number} , B:: $Typ{<:Number} ; kwds ... ) = ArrayLayouts. ldiv (A,B; kwds ... )
157+ (\ )(A:: Bidiagonal , B:: $Typ ; kwds ... ) = ArrayLayouts. ldiv (A,B; kwds ... )
158+ (\ )(transA:: Transpose{<:Number,<:Bidiagonal{<:Number}} , B:: $Typ{<:Number} ; kwds ... ) = ArrayLayouts. ldiv (transA,B; kwds ... )
159+ (\ )(transA:: Transpose{<:Any,<:Bidiagonal} , B:: $Typ ; kwds ... ) = ArrayLayouts. ldiv (transA,B; kwds ... )
160+ (\ )(adjA:: Adjoint{<:Number,<:Bidiagonal{<:Number}} , B:: $Typ{<:Number} ; kwds ... ) = ArrayLayouts. ldiv (adjA,B; kwds ... )
161+ (\ )(adjA:: Adjoint{<:Any,<:Bidiagonal} , B:: $Typ ; kwds ... ) = ArrayLayouts. ldiv (adjA,B; kwds ... )
162162
163- (\ )(x:: $Typ , A:: $Typ ) = ArrayLayouts. ldiv (x,A)
163+ (\ )(x:: $Typ , A:: $Typ ; kwds ... ) = ArrayLayouts. ldiv (x,A; kwds ... )
164164
165- (/ )(A:: $Typ , x:: AbstractVector ) = ArrayLayouts. rdiv (A,x)
166- (/ )(A:: $Typ , x:: AbstractMatrix ) = ArrayLayouts. rdiv (A,x)
165+ (/ )(A:: $Typ , x:: AbstractVector ; kwds ... ) = ArrayLayouts. rdiv (A,x; kwds ... )
166+ (/ )(A:: $Typ , x:: AbstractMatrix ; kwds ... ) = ArrayLayouts. rdiv (A,x; kwds ... )
167167
168- (/ )(x:: AbstractMatrix , A:: $Typ ) = ArrayLayouts. rdiv (x,A)
169- (/ )(D:: Diagonal , A:: $Typ ) = ArrayLayouts. rdiv (D,A)
170- (/ )(A:: $Typ , D:: Diagonal ) = ArrayLayouts. rdiv (A,D)
168+ (/ )(x:: AbstractMatrix , A:: $Typ ; kwds ... ) = ArrayLayouts. rdiv (x,A; kwds ... )
169+ (/ )(D:: Diagonal , A:: $Typ ; kwds ... ) = ArrayLayouts. rdiv (D,A; kwds ... )
170+ (/ )(A:: $Typ , D:: Diagonal ; kwds ... ) = ArrayLayouts. rdiv (A,D; kwds ... )
171171
172- (/ )(x:: $Typ , A:: $Typ ) = ArrayLayouts. rdiv (x,A)
172+ (/ )(x:: $Typ , A:: $Typ ; kwds ... ) = ArrayLayouts. rdiv (x,A; kwds ... )
173173 end
174174 if Typ ≠ :LayoutVector
175175 ret = quote
176176 $ ret
177- (\ )(A:: $Typ , x:: LayoutVector ) = ArrayLayouts. ldiv (A,x)
177+ (\ )(A:: $Typ , x:: LayoutVector ; kwds ... ) = ArrayLayouts. ldiv (A,x; kwds ... )
178178 end
179179 end
180180 if Typ ≠ :LayoutMatrix
181181 ret = quote
182182 $ ret
183- (\ )(A:: $Typ , x:: LayoutMatrix ) = ArrayLayouts. ldiv (A,x)
184- (/ )(x:: LayoutMatrix , A:: $Typ ) = ArrayLayouts. rdiv (x,A)
183+ (\ )(A:: $Typ , x:: LayoutMatrix ; kwds ... ) = ArrayLayouts. ldiv (A,x; kwds ... )
184+ (/ )(x:: LayoutMatrix , A:: $Typ ; kwds ... ) = ArrayLayouts. rdiv (x,A; kwds ... )
185185 end
186186 end
187187 esc (ret)
0 commit comments