@@ -128,11 +128,19 @@ function Base.:*(
128
128
end
129
129
130
130
# clear up some ambiguities:
131
- function Base.:* (
132
- A:: Transpose{<:T, <:GBVector} ,
133
- B:: GBVector{T}
134
- ) where {T <: Real }
135
- return * (A, B, (+ , * ))
131
+ # Replaced this function with the one directly below it.
132
+ # This one StackOverflows on 1.10...
133
+ # I don't exactly see why :/
134
+ # function Base.:*(
135
+ # A::Transpose{T, <:GBVector{T}},
136
+ # B::GBVector{T}
137
+ # ) where {T <: Real}
138
+ # return *(A, B, (+, *))
139
+ # end
140
+
141
+ function Base.:* (v:: Transpose{<:Real, <:AbstractGBVector{T, F, O} where O} where {T, F},
142
+ u:: AbstractGBVector{T, F, O} where {T, F, O})
143
+ * (v, u, (+ , * ))
136
144
end
137
145
138
146
function Base.:* (
@@ -157,12 +165,6 @@ function Base.:*(
157
165
return @_densepack B (* (A, B, op; mask, accum, desc))
158
166
end
159
167
160
- function Base.:* ((⊕ ):: Union{<:Function, Monoid} , (⊗ ):: Function )
161
- return function (A:: GBArrayOrTranspose , B:: GBArrayOrTranspose ; mask= nothing , accum= nothing , desc= nothing )
162
- * (A, B, (⊕ , ⊗ ); mask, accum, desc)
163
- end
164
- end
165
-
166
168
function Base.:* ((⊕ ):: Monoid , (⊗ ):: Function )
167
169
return function (A:: GBArrayOrTranspose , B:: GBArrayOrTranspose ; mask= nothing , accum= nothing , desc= nothing )
168
170
* (A, B, (⊕ , ⊗ ); mask, accum, desc)
@@ -176,23 +178,23 @@ function Base.:*(rig::TypedSemiring)
176
178
end
177
179
178
180
# Diagonal
179
- function LinearAlgebra. mul! (C:: GBVecOrMat , D:: Diagonal , A:: G , op = (+ , * ); mask = nothing , accum = nothing , desc = nothing ) where
180
- {G <: Union {Transpose{T, <: SuiteSparseGraphBLAS.AbstractGBArray{T1, F, O} } where {T, T1, F, O},
181
+ function LinearAlgebra. mul! (C:: GBVecOrMat , D:: Diagonal , A:: G , op = (+ , * ); mask = nothing , accum = nothing , desc = nothing ) where
182
+ {G <: Union {Transpose{T, <: SuiteSparseGraphBLAS.AbstractGBArray{T1, F, O} } where {T, T1, F, O},
181
183
SuiteSparseGraphBLAS. AbstractGBArray{T, F, O, 2 } where {T, F, O}}}
182
184
return mul! (C, G (D), A, op; mask, accum, desc)
183
185
end
184
- function LinearAlgebra. mul! (C:: GBVecOrMat , A:: G , D:: Diagonal , op = (+ , * ); mask = nothing , accum = nothing , desc = nothing ) where
185
- {G <: Union {Transpose{T, <: SuiteSparseGraphBLAS.AbstractGBArray{T1, F, O} } where {T, T1, F, O},
186
+ function LinearAlgebra. mul! (C:: GBVecOrMat , A:: G , D:: Diagonal , op = (+ , * ); mask = nothing , accum = nothing , desc = nothing ) where
187
+ {G <: Union {Transpose{T, <: SuiteSparseGraphBLAS.AbstractGBArray{T1, F, O} } where {T, T1, F, O},
186
188
SuiteSparseGraphBLAS. AbstractGBArray{T, F, O, 2 } where {T, F, O}}}
187
189
return mul! (C, A, G (D), op; mask, accum, desc)
188
190
end
189
- function Base.:* (D:: Diagonal , A:: G , op = (+ , * ); mask = nothing , accum = nothing , desc = nothing ) where
190
- {G <: Union {Transpose{T, <: SuiteSparseGraphBLAS.AbstractGBArray{T1, F, O} } where {T, T1, F, O},
191
+ function Base.:* (D:: Diagonal , A:: G , op = (+ , * ); mask = nothing , accum = nothing , desc = nothing ) where
192
+ {G <: Union {Transpose{T, <: SuiteSparseGraphBLAS.AbstractGBArray{T1, F, O} } where {T, T1, F, O},
191
193
SuiteSparseGraphBLAS. AbstractGBArray{T, F, O, 2 } where {T, F, O}}}
192
194
return * (G (D), A, op; mask, accum, desc)
193
195
end
194
- function Base.:* (A:: G , D:: Diagonal , op = (+ , * ); mask = nothing , accum = nothing , desc = nothing ) where
195
- {G <: Union {Transpose{T, <: SuiteSparseGraphBLAS.AbstractGBArray{T1, F, O} } where {T, T1, F, O},
196
+ function Base.:* (A:: G , D:: Diagonal , op = (+ , * ); mask = nothing , accum = nothing , desc = nothing ) where
197
+ {G <: Union {Transpose{T, <: SuiteSparseGraphBLAS.AbstractGBArray{T1, F, O} } where {T, T1, F, O},
196
198
SuiteSparseGraphBLAS. AbstractGBArray{T, F, O, 2 } where {T, F, O}}}
197
199
return * (A, G (D), op; mask, accum, desc)
198
200
end
0 commit comments