136136# triangular
137137
138138for SparseMatrixType in (:ROCSparseMatrixBSR ,)
139- if VERSION ≥ v " 1.10-"
140139 @eval begin
141140 LinearAlgebra. generic_trimatdiv! (C:: DenseROCVector{T} , uploc, isunitc, tfun:: Function , A:: $SparseMatrixType{T} , B:: DenseROCVector{T} ) where T <: BlasFloat =
142141 sv2! (tfun === identity ? ' N' : tfun === transpose ? ' T' : ' C' , uploc, isunitc, one (T), A, C === B ? C : copyto! (C, B), ' O' )
@@ -160,59 +159,9 @@ for SparseMatrixType in (:ROCSparseMatrixBSR,)
160159 sm2! (tfun === identity ? ' N' : tfun === transpose ? ' T' : ' C' , ' C' , uploc, isunitc, one (T), A, parent (B), ' O' )
161160 end
162161 end
163- else
164- # # direct
165- for (t, uploc, isunitc) in ((:LowerTriangular , ' L' , ' N' ),
166- (:UnitLowerTriangular , ' L' , ' U' ),
167- (:UpperTriangular , ' U' , ' N' ),
168- (:UnitUpperTriangular , ' U' , ' U' ))
169- @eval begin
170- # Left division with vectors
171- LinearAlgebra. ldiv! (A:: $t{T,<:$SparseMatrixType} , B:: DenseROCVector{T} ) where T <: BlasFloat =
172- sv2! (' N' , $ uploc, $ isunitc, one (T), parent (A), B, ' O' )
173-
174- # Left division with matrices
175- LinearAlgebra. ldiv! (A:: $t{T,<:$SparseMatrixType} , B:: DenseROCMatrix{T} ) where T <: BlasFloat =
176- sm2! (' N' , ' N' , $ uploc, $ isunitc, one (T), parent (A), B, ' O' )
177-
178- LinearAlgebra. ldiv! (A:: $t{T,<:$SparseMatrixType} , B:: Transpose{T,<:DenseROCMatrix} ) where T <: BlasFloat =
179- sm2! (' N' , ' T' , $ uploc, $ isunitc, one (T), parent (A), parent (B), ' O' )
180-
181- LinearAlgebra. ldiv! (A:: $t{T,<:$SparseMatrixType} , B:: Adjoint{T,<:DenseROCMatrix} ) where T <: BlasFloat =
182- sm2! (' N' , ' C' , $ uploc, $ isunitc, one (T), parent (A), parent (B), ' O' )
183- end
184- end
185-
186- # # adjoint/transpose ('uploc' reversed)
187- for (t, uploc, isunitc) in ((:LowerTriangular , ' U' , ' N' ),
188- (:UnitLowerTriangular , ' U' , ' U' ),
189- (:UpperTriangular , ' L' , ' N' ),
190- (:UnitUpperTriangular , ' L' , ' U' ))
191-
192- for (opa, transa) in ((:Transpose , ' T' ),
193- (:Adjoint , ' C' ))
194- @eval begin
195- # Left division with vectors
196- LinearAlgebra. ldiv! (A:: $t{T,<:$opa{T,<:$SparseMatrixType}} , B:: DenseROCVector{T} ) where T <: BlasFloat =
197- sv2! ($ transa, $ uploc, $ isunitc, one (T), parent (parent (A)), B, ' O' )
198-
199- # Left division with matrices
200- LinearAlgebra. ldiv! (A:: $t{T,<:$opa{T,<:$SparseMatrixType}} , B:: DenseROCMatrix{T} ) where T <: BlasFloat =
201- sm2! ($ transa, ' N' , $ uploc, $ isunitc, one (T), parent (parent (A)), B, ' O' )
202-
203- LinearAlgebra. ldiv! (A:: $t{T,<:$opa{T,<:$SparseMatrixType}} , B:: Transpose{T,<:DenseROCMatrix} ) where T <: BlasFloat =
204- sm2! ($ transa, ' T' , $ uploc, $ isunitc, one (T), parent (parent (A)), parent (B), ' O' )
205-
206- LinearAlgebra. ldiv! (A:: $t{T,<:$opa{T,<:$SparseMatrixType}} , B:: Adjoint{T,<:DenseROCMatrix} ) where T <: BlasFloat =
207- sm2! ($ transa, ' C' , $ uploc, $ isunitc, one (T), parent (parent (A)), parent (B), ' O' )
208- end
209- end
210- end
211- end # VERSION
212162end # SparseMatrixType loop
213163
214164for SparseMatrixType in (:ROCSparseMatrixCOO , :ROCSparseMatrixCSR , :ROCSparseMatrixCSC )
215- if VERSION ≥ v " 1.10-"
216165 @eval begin
217166 function LinearAlgebra. generic_trimatdiv! (C:: DenseROCVector{T} , uploc, isunitc, tfun:: Function , A:: $SparseMatrixType{T} , B:: DenseROCVector{T} ) where T <: BlasFloat
218167 sv! (tfun === identity ? ' N' : tfun === transpose ? ' T' : ' C' , uploc, isunitc, one (T), A, B, C, ' O' )
@@ -235,60 +184,6 @@ for SparseMatrixType in (:ROCSparseMatrixCOO, :ROCSparseMatrixCSR, :ROCSparseMat
235184 sm! (tfun === identity ? ' N' : tfun === transpose ? ' T' : ' C' , ' C' , uploc, isunitc, one (T), A, parent (B), parent (C), ' O' )
236185 end
237186 end
238- else # pre-1.9 VERSIONs
239- # # direct
240- for (t, uploc, isunitc) in (
241- (:LowerTriangular , ' L' , ' N' ),
242- (:UnitLowerTriangular , ' L' , ' U' ),
243- (:UpperTriangular , ' U' , ' N' ),
244- (:UnitUpperTriangular , ' U' , ' U' ),
245- )
246- @eval begin
247- # Left division with vectors
248- LinearAlgebra. ldiv! (
249- A:: $t{T,<:AbstractROCSparseMatrix} , B:: DenseROCVector{T} ) where T <: BlasFloat =
250- sv! (' N' , $ uploc, $ isunitc, one (T), parent (A), B, B, ' O' )
251-
252- # Left division with matrices
253- LinearAlgebra. ldiv! (
254- A:: $t{T,<:AbstractROCSparseMatrix} , B:: DenseROCMatrix{T} ) where T <: BlasFloat =
255- sm! (' N' , ' N' , $ uploc, $ isunitc, one (T), parent (A), B, B, ' O' )
256-
257- LinearAlgebra. ldiv! (
258- A:: $t{T,<:$SparseMatrixType} , B:: Transpose{T,<:DenseROCMatrix} ) where T <: BlasFloat =
259- sm! (' N' , ' T' , $ uploc, $ isunitc, one (T), parent (A), parent (B), parent (B), ' O' )
260-
261- LinearAlgebra. ldiv! (A:: $t{T,<:$SparseMatrixType} , B:: Adjoint{T,<:DenseROCMatrix} ) where T <: BlasFloat =
262- sm! (' N' , ' C' , $ uploc, $ isunitc, one (T), parent (A), parent (B), parent (B), ' O' )
263- end
264- end
265-
266- # # adjoint/transpose ('uploc' reversed)
267- for (t, uploc, isunitc) in ((:LowerTriangular , ' U' , ' N' ),
268- (:UnitLowerTriangular , ' U' , ' U' ),
269- (:UpperTriangular , ' L' , ' N' ),
270- (:UnitUpperTriangular , ' L' , ' U' ))
271-
272- for (opa, transa) in ((:Transpose , ' T' ),
273- (:Adjoint , ' C' ))
274- @eval begin
275- # Left division with vectors
276- LinearAlgebra. ldiv! (A:: $t{T,<:$opa{T,<:$SparseMatrixType}} , B:: DenseROCVector{T} ) where T <: BlasFloat =
277- sv! ($ transa, $ uploc, $ isunitc, one (T), parent (parent (A)), B, B, ' O' )
278-
279- # Left division with matrices
280- LinearAlgebra. ldiv!LinearAlgebra. ldiv! (A:: $t{T,<:$opa{T,<:$SparseMatrixType}} , B:: Transpose{T,<:DenseROCMatrix} ) where T <: BlasFloat =
281- sm! ($ transa, ' N' , $ uploc, $ isunitc, one (T), parent (parent (A)), B, B, ' O' )
282-
283- LinearAlgebra. ldiv! (A:: $t{T,<:$opa{T,<:$SparseMatrixType}} , B:: Transpose{T,<:DenseROCMatrix} ) where T <: BlasFloat =
284- sm! ($ transa, ' T' , $ uploc, $ isunitc, one (T), parent (parent (A)), parent (B), parent (B), ' O' )
285-
286- LinearAlgebra. ldiv! (A:: $t{T,<:$opa{T,<:$SparseMatrixType}} , B:: Adjoint{T,<:DenseROCMatrix} ) where T <: BlasFloat =
287- sm! ($ transa, ' C' , $ uploc, $ isunitc, one (T), parent (parent (A)), parent (B), parent (B), ' O' )
288- end
289- end
290- end
291- end
292187end
293188
294189# # uniform scaling
0 commit comments