@@ -18,8 +18,8 @@ for Typ in (:Ldiv, :Rdiv)
18
18
similar (A:: $Typ , :: Type{T} ) where T = similar (A, T, axes (A))
19
19
similar (A:: $Typ ) = similar (A, eltype (A))
20
20
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 ... )
23
23
end
24
24
end
25
25
@@ -78,24 +78,24 @@ __ldiv!(_, F, B) = LinearAlgebra.ldiv!(F, B)
78
78
@inline _ldiv! (A:: Factorization , B) = LinearAlgebra. ldiv! (A, B)
79
79
@inline _ldiv! (A:: Factorization , B:: LayoutArray ) = error (" Overload materialize!(::Ldiv{$(typeof (MemoryLayout (A))) ,$(typeof (MemoryLayout (B))) })" )
80
80
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 ... )
85
85
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 ... )
88
88
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 ... )
91
91
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 ... )
94
94
95
95
@inline materialize! (M:: Ldiv ) = _ldiv! (M. A, M. B)
96
96
@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 ... )
99
99
100
100
const MatLdivVec{styleA, styleB, T, V} = Ldiv{styleA, styleB, <: AbstractMatrix{T} , <: AbstractVector{V} }
101
101
const MatLdivMat{styleA, styleB, T, V} = Ldiv{styleA, styleB, <: AbstractMatrix{T} , <: AbstractMatrix{V} }
@@ -127,61 +127,61 @@ end
127
127
128
128
macro _layoutldiv (Typ)
129
129
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 ... )
134
134
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 ... )
138
138
139
- LinearAlgebra. ldiv! (A:: Bidiagonal , B:: $Typ ) = ArrayLayouts. ldiv! (A,B)
139
+ LinearAlgebra. ldiv! (A:: Bidiagonal , B:: $Typ ; kwds ... ) = ArrayLayouts. ldiv! (A,B; kwds ... )
140
140
141
141
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 ... )
144
144
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 ... )
147
147
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 ... )
149
149
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 ... )
155
155
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 ... )
162
162
163
- (\ )(x:: $Typ , A:: $Typ ) = ArrayLayouts. ldiv (x,A)
163
+ (\ )(x:: $Typ , A:: $Typ ; kwds ... ) = ArrayLayouts. ldiv (x,A; kwds ... )
164
164
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 ... )
167
167
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 ... )
171
171
172
- (/ )(x:: $Typ , A:: $Typ ) = ArrayLayouts. rdiv (x,A)
172
+ (/ )(x:: $Typ , A:: $Typ ; kwds ... ) = ArrayLayouts. rdiv (x,A; kwds ... )
173
173
end
174
174
if Typ ≠ :LayoutVector
175
175
ret = quote
176
176
$ ret
177
- (\ )(A:: $Typ , x:: LayoutVector ) = ArrayLayouts. ldiv (A,x)
177
+ (\ )(A:: $Typ , x:: LayoutVector ; kwds ... ) = ArrayLayouts. ldiv (A,x; kwds ... )
178
178
end
179
179
end
180
180
if Typ ≠ :LayoutMatrix
181
181
ret = quote
182
182
$ 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 ... )
185
185
end
186
186
end
187
187
esc (ret)
0 commit comments