@@ -11,6 +11,38 @@ function DerivableInterfaces.interface(::Type{<:AbstractSparseArray})
1111 return SparseArrayInterface ()
1212end
1313
14+ function Base. copy (a:: AnyAbstractSparseArray )
15+ return copyto! (similar (a), a)
16+ end
17+
18+ function Base. similar (a:: AnyAbstractSparseArray )
19+ return SparseArrayDOK (Unstored (unstored (a)))
20+ end
21+ function Base. similar (a:: AnyAbstractSparseArray , T:: Type )
22+ return SparseArrayDOK (Unstored (unstoredsimilar (unstored (a), T)))
23+ end
24+ function Base. similar (a:: AnyAbstractSparseArray , ax:: Tuple )
25+ return similar (a, eltype (a), ax)
26+ end
27+ function Base. similar (a:: AnyAbstractSparseArray , T:: Type , ax:: Tuple )
28+ return similar_sparsearray (a, T, ax)
29+ end
30+ # Fix ambiguity error.
31+ function Base. similar (a:: AnyAbstractSparseArray , T:: Type , ax:: Tuple{Int,Vararg{Int}} )
32+ return similar_sparsearray (a, T, ax)
33+ end
34+ # Fix ambiguity error.
35+ function Base. similar (
36+ a:: AnyAbstractSparseArray ,
37+ T:: Type ,
38+ ax:: Tuple{Union{Integer,Base.OneTo},Vararg{Union{Integer,Base.OneTo}}} ,
39+ )
40+ return similar_sparsearray (a, T, ax)
41+ end
42+ function similar_sparsearray (a:: AnyAbstractSparseArray , T:: Type , ax:: Tuple )
43+ return SparseArrayDOK (Unstored (unstoredsimilar (unstored (a), T, ax)))
44+ end
45+
1446using DerivableInterfaces: @derive
1547
1648# TODO : These need to be loaded since `AbstractArrayOps`
@@ -25,9 +57,6 @@ using LinearAlgebra: LinearAlgebra
2557 Base. getindex (:: T , :: Int... )
2658 Base. setindex! (:: T , :: Any , :: Any... )
2759 Base. setindex! (:: T , :: Any , :: Int... )
28- Base. similar (:: T , :: Type , :: Tuple{Vararg{Int}} )
29- Base. similar (:: T , :: Type , :: Tuple{Base.OneTo,Vararg{Base.OneTo}} )
30- Base. copy (:: T )
3160 Base. copy! (:: AbstractArray , :: T )
3261 Base. copyto! (:: AbstractArray , :: T )
3362 Base. map (:: Any , :: T... )
0 commit comments