We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent f1309ff commit 8ec6fd9Copy full SHA for 8ec6fd9
2 files changed
src/abstractblocksparsearray/unblockedsubarray.jl
@@ -31,6 +31,12 @@ function Base.Broadcast.BroadcastStyle(arraytype::Type{<:UnblockedSubArray})
31
return BroadcastStyle(blocktype(parenttype(arraytype)))
32
end
33
34
+function Base.similar(a::UnblockedSubArray)
35
+ return similar(a, eltype(a))
36
+end
37
+function Base.similar(a::UnblockedSubArray, elt::Type)
38
+ return similar(a, elt, axes(a))
39
40
function Base.similar(
41
a::UnblockedSubArray, elt::Type, axes::Tuple{Base.OneTo, Vararg{Base.OneTo}}
42
)
@@ -40,6 +46,10 @@ function Base.similar(a::UnblockedSubArray, elt::Type, size::Tuple{Int, Vararg{I
46
return similar(a, elt, Base.OneTo.(size))
47
48
49
+function Base.copyto!(dst::AbstractArray, src::UnblockedSubArray)
50
+ return @invoke copyto!(dst::AbstractArray, src::AbstractArray)
51
52
+
43
53
function ArrayLayouts.sub_materialize(a::UnblockedSubArray)
44
54
a_cpu = adapt(Array, a)
45
55
a_cpu′ = similar(a_cpu)
test/test_map.jl
@@ -403,12 +403,12 @@ arrayts = (Array, JLArray)
403
@test a[Block(2, 2)[1:2, 2:3]] == b
404
@test blockstoredlength(a) == 1
405
406
- ## # Noncontiguous slicing.
407
- ## a = dev(BlockSparseArray{elt}(undef, [2, 3], [2, 3]))
408
- ## a[Block(1, 1)] = dev(randn(elt, 2, 2))
409
- ## a[Block(2, 2)] = dev(randn(elt, 3, 3))
410
- ## I = ([3, 5], [2, 4])
411
- ## @test Array(a[I...]) == Array(a)[I...]
+ # Noncontiguous slicing.
+ a = dev(BlockSparseArray{elt}(undef, [2, 3], [2, 3]))
+ a[Block(1, 1)] = dev(randn(elt, 2, 2))
+ a[Block(2, 2)] = dev(randn(elt, 3, 3))
+ I = ([3, 5], [2, 4])
+ @test Array(a[I...]) == Array(a)[I...]
412
413
## # Noncontiguous slicing.
414
## a = dev(BlockSparseArray{elt}(undef, [2, 3], [2, 3]))
0 commit comments