@@ -11,6 +11,38 @@ function DerivableInterfaces.interface(::Type{<:AbstractSparseArray})
11
11
return SparseArrayInterface ()
12
12
end
13
13
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
+
14
46
using DerivableInterfaces: @derive
15
47
16
48
# TODO : These need to be loaded since `AbstractArrayOps`
@@ -25,9 +57,6 @@ using LinearAlgebra: LinearAlgebra
25
57
Base. getindex (:: T , :: Int... )
26
58
Base. setindex! (:: T , :: Any , :: Any... )
27
59
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 )
31
60
Base. copy! (:: AbstractArray , :: T )
32
61
Base. copyto! (:: AbstractArray , :: T )
33
62
Base. map (:: Any , :: T... )
0 commit comments