@@ -128,11 +128,19 @@ function Base.:*(
128128end
129129
130130# 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, (+ , * ))
136144end
137145
138146function Base.:* (
@@ -157,12 +165,6 @@ function Base.:*(
157165 return @_densepack B (* (A, B, op; mask, accum, desc))
158166end
159167
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-
166168function Base.:* ((⊕ ):: Monoid , (⊗ ):: Function )
167169 return function (A:: GBArrayOrTranspose , B:: GBArrayOrTranspose ; mask= nothing , accum= nothing , desc= nothing )
168170 * (A, B, (⊕ , ⊗ ); mask, accum, desc)
@@ -176,23 +178,23 @@ function Base.:*(rig::TypedSemiring)
176178end
177179
178180# 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},
181183 SuiteSparseGraphBLAS. AbstractGBArray{T, F, O, 2 } where {T, F, O}}}
182184 return mul! (C, G (D), A, op; mask, accum, desc)
183185end
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},
186188 SuiteSparseGraphBLAS. AbstractGBArray{T, F, O, 2 } where {T, F, O}}}
187189 return mul! (C, A, G (D), op; mask, accum, desc)
188190end
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},
191193 SuiteSparseGraphBLAS. AbstractGBArray{T, F, O, 2 } where {T, F, O}}}
192194 return * (G (D), A, op; mask, accum, desc)
193195end
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},
196198 SuiteSparseGraphBLAS. AbstractGBArray{T, F, O, 2 } where {T, F, O}}}
197199 return * (A, G (D), op; mask, accum, desc)
198200end
0 commit comments