@@ -79,87 +79,10 @@ for (taga, untaga) in tag_wrappers, (wrapa, transa, unwrapa) in op_wrappers
79
79
end
80
80
end
81
81
82
- function LinearAlgebra.:(* )(A:: Union{CuMatrix, CuSparseMatrix} , B:: CuSparseMatrix{T} ) where {T}
83
- return mul! (similar (CuMatrix{T}, (size (A,1 ), size (B,2 ))), A, CuArray (B))
84
- end
85
-
86
- function LinearAlgebra. mul! (C:: CuMatrix{T} , A:: CuMatrix{T} , B:: CuSparseMatrix{T} ) where {T}
87
- mul! (C, B' , A' , one (T), zero (T))
88
- return C'
89
- end
90
-
91
- Base.:(+ )(A:: CuSparseMatrixCSR , B:: CuSparseMatrixCSR ) = geam (one (eltype (A)), A, one (eltype (A)), B, ' O' )
92
- Base.:(- )(A:: CuSparseMatrixCSR , B:: CuSparseMatrixCSR ) = geam (one (eltype (A)), A, - one (eltype (A)), B, ' O' )
93
-
94
- Base.:(+ )(A:: CuSparseMatrixCSR , B:: Adjoint{T,<:CuSparseMatrixCSR} ) where {T} = A + Transpose (conj (B. parent))
95
- Base.:(- )(A:: CuSparseMatrixCSR , B:: Adjoint{T,<:CuSparseMatrixCSR} ) where {T} = A - Transpose (conj (B. parent))
96
- Base.:(+ )(A:: Adjoint{T,<:CuSparseMatrixCSR} , B:: CuSparseMatrixCSR ) where {T} = Transpose (conj (A. parent)) + B
97
- Base.:(- )(A:: Adjoint{T,<:CuSparseMatrixCSR} , B:: CuSparseMatrixCSR ) where {T} = Transpose (conj (A. parent)) - B
98
- Base.:(+ )(A:: Adjoint{T,<:CuSparseMatrixCSR} , B:: Adjoint{T,<:CuSparseMatrixCSR} ) where {T} =
99
- Transpose (conj (A. parent)) + B
100
- Base.:(- )(A:: Adjoint{T,<:CuSparseMatrixCSR} , B:: Adjoint{T,<:CuSparseMatrixCSR} ) where {T} =
101
- Transpose (conj (A. parent)) - B
102
-
103
- function Base.:(+ )(A:: CuSparseMatrixCSR , B:: Transpose{T,<:CuSparseMatrixCSR} ) where {T}
104
- cscB = CuSparseMatrixCSC (B. parent)
105
- transB = CuSparseMatrixCSR (cscB. colPtr, cscB. rowVal, cscB. nzVal, size (cscB))
106
- return geam (one (T), A, one (T), transB, ' O' )
107
- end
108
-
109
- function Base.:(- )(A:: CuSparseMatrixCSR , B:: Transpose{T,<:CuSparseMatrixCSR} ) where {T}
110
- cscB = CuSparseMatrixCSC (B. parent)
111
- transB = CuSparseMatrixCSR (cscB. colPtr, cscB. rowVal, cscB. nzVal, size (cscB))
112
- return geam (one (T), A, - one (T), transB, ' O' )
113
- end
114
-
115
- function Base.:(+ )(A:: Transpose{T,<:CuSparseMatrixCSR} , B:: CuSparseMatrixCSR ) where {T}
116
- cscA = CuSparseMatrixCSC (A. parent)
117
- transA = CuSparseMatrixCSR (cscA. colPtr, cscA. rowVal, cscA. nzVal, size (cscA))
118
- geam (one (T), transA, one (T), B, ' O' )
119
- end
120
-
121
- function Base.:(- )(A:: Transpose{T,<:CuSparseMatrixCSR} , B:: CuSparseMatrixCSR ) where {T}
122
- cscA = CuSparseMatrixCSC (A. parent)
123
- transA = CuSparseMatrixCSR (cscA. colPtr, cscA. rowVal, cscA. nzVal, size (cscA))
124
- geam (one (T), transA, - one (T), B, ' O' )
125
- end
126
-
127
- function Base.:(+ )(A:: Transpose{T,<:CuSparseMatrixCSR} , B:: Transpose{T,<:CuSparseMatrixCSR} ) where {T}
128
- C = geam (one (T), A. parent, one (T), B. parent, ' O' )
129
- cscC = CuSparseMatrixCSC (C)
130
- return CuSparseMatrixCSR (cscC. colPtr, cscC. rowVal, cscC. nzVal, size (cscC))
131
- end
132
-
133
- function Base.:(- )(A:: Transpose{T,<:CuSparseMatrixCSR} , B:: Transpose{T,<:CuSparseMatrixCSR} ) where {T}
134
- C = geam (one (T), A. parent, - one (T), B. parent, ' O' )
135
- cscC = CuSparseMatrixCSC (C)
136
- return CuSparseMatrixCSR (cscC. colPtr, cscC. rowVal, cscC. nzVal, size (cscC))
137
- end
138
-
139
- function Base.:(+ )(A:: CuSparseMatrixCSR , B:: CuSparseMatrix )
140
- csrB = CuSparseMatrixCSR (B)
141
- return geam (one (eltype (A)), A, one (eltype (A)), csrB, ' O' )
142
- end
143
-
144
- function Base.:(- )(A:: CuSparseMatrixCSR , B:: CuSparseMatrix )
145
- csrB = CuSparseMatrixCSR (B)
146
- return geam (one (eltype (A)), A, - one (eltype (A)), csrB, ' O' )
147
- end
148
-
149
- function Base.:(+ )(A:: CuSparseMatrix , B:: CuSparseMatrixCSR )
150
- csrA = CuSparseMatrixCSR (A)
151
- return geam (one (eltype (A)), csrA, one (eltype (A)), B, ' O' )
152
- end
153
-
154
- function Base.:(- )(A:: CuSparseMatrix , B:: CuSparseMatrixCSR )
155
- csrA = CuSparseMatrixCSR (A)
156
- return geam (one (eltype (A)), csrA, - one (eltype (A)), B, ' O' )
157
- end
158
-
159
- Base.:(+ )(A:: CuSparseMatrix , B:: CuMatrix ) = CuArray (A) + B
160
- Base.:(- )(A:: CuSparseMatrix , B:: CuMatrix ) = CuArray (A) - B
161
- Base.:(+ )(A:: CuMatrix , B:: CuSparseMatrix ) = A + CuArray (B)
162
- Base.:(- )(A:: CuMatrix , B:: CuSparseMatrix ) = A - CuArray (B)
82
+ Base.:(+ )(A:: Union{CuSparseMatrixCSR,CuSparseMatrixCSC} ,
83
+ B:: Union{CuSparseMatrixCSR,CuSparseMatrixCSC} ) = geam (A,B,' O' ,' O' ,' O' )
84
+ Base.:(- )(A:: Union{CuSparseMatrixCSR,CuSparseMatrixCSC} ,
85
+ B:: Union{CuSparseMatrixCSR,CuSparseMatrixCSC} ) = geam (A,- one (eltype (A)),B,' O' ,' O' ,' O' )
163
86
164
87
# triangular
165
88
0 commit comments