Skip to content

Commit 788f44e

Browse files
committed
OffsetArray device should be that of parent's.
1 parent 4fa653c commit 788f44e

File tree

3 files changed

+9
-9
lines changed

3 files changed

+9
-9
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "ArrayInterface"
22
uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9"
3-
version = "2.14.4"
3+
version = "2.14.5"
44

55
[deps]
66
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"

src/ArrayInterface.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -889,7 +889,7 @@ function __init__()
889889
strides(A::OffsetArrays.OffsetArray) = strides(parent(A))
890890
# offsets(A::OffsetArrays.OffsetArray) = map(+, A.offsets, offsets(parent(A)))
891891
parent_type(::Type{O}) where {T,N,A<:AbstractArray{T,N},O<:OffsetArrays.OffsetArray{T,N,A}} = A
892-
device(::Type{<:OffsetArrays.OffsetArray}) = CheckParent()
892+
device(::Type{A}) where {A <: OffsetArrays.OffsetArray} = device(parent_type(A))
893893
contiguous_axis(::Type{A}) where {A <: OffsetArrays.OffsetArray} = contiguous_axis(parent_type(A))
894894
contiguous_batch_size(::Type{A}) where {A <: OffsetArrays.OffsetArray} = contiguous_batch_size(parent_type(A))
895895
stride_rank(::Type{A}) where {A <: OffsetArrays.OffsetArray} = stride_rank(parent_type(A))

test/runtests.jl

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,7 @@ DummyZeros(dims...) = DummyZeros{Float64}(dims...)
263263
Base.size(x::DummyZeros) = x.dims
264264
Base.getindex(::DummyZeros{T}, inds...) where {T} = zero(T)
265265

266+
using OffsetArrays
266267
@testset "Memory Layout" begin
267268
A = zeros(3,4,5);
268269
D1 = view(A, 1:2:3, :, :) # first dimension is discontiguous
@@ -272,12 +273,12 @@ Base.getindex(::DummyZeros{T}, inds...) where {T} = zero(T)
272273
@test @inferred(device(PermutedDimsArray(A,(3,1,2)))) === ArrayInterface.CPUPointer()
273274
@test @inferred(device(view(A, 1, :, 2:4))) === ArrayInterface.CPUPointer()
274275
@test @inferred(device(view(A, 1, :, 2:4)')) === ArrayInterface.CPUPointer()
275-
@test @inferred(device(view(PermutedDimsArray(A, (3,1,2)), 1, :, 2:4)')) === ArrayInterface.CPUPointer()
276-
@test @inferred(device(view(A, 1, :, [2,3,4]))) === ArrayInterface.CPUIndex()
277-
@test @inferred(device(view(A, 1, :, [2,3,4])')) === ArrayInterface.CPUIndex()
278-
@test @inferred(device(@SArray(zeros(2,2,2)))) === ArrayInterface.CPUIndex()
279-
@test @inferred(device(@view(@SArray(zeros(2,2,2))[1,1:2,:]))) === ArrayInterface.CPUIndex()
280-
@test @inferred(device(@MArray(zeros(2,2,2)))) === ArrayInterface.CPUPointer()
276+
@test @inferred(device(OffsetArray(view(PermutedDimsArray(A, (3,1,2)), 1, :, 2:4)', 3, -173))) === ArrayInterface.CPUPointer()
277+
@test @inferred(device(view(OffsetArray(A,2,3,-12), 4, :, -11:-9))) === ArrayInterface.CPUPointer()
278+
@test @inferred(device(view(OffsetArray(A,2,3,-12), 3, :, [-11,-10,-9])')) === ArrayInterface.CPUIndex()
279+
@test @inferred(device(OffsetArray(@SArray(zeros(2,2,2)),-123,29,3231))) === ArrayInterface.CPUIndex()
280+
@test @inferred(device(OffsetArray(@view(@SArray(zeros(2,2,2))[1,1:2,:]),-3,4))) === ArrayInterface.CPUIndex()
281+
@test @inferred(device(OffsetArray(@MArray(zeros(2,2,2)),8,-2,-5))) === ArrayInterface.CPUPointer()
281282
@test isnothing(device("Hello, world!"))
282283

283284
@test @inferred(contiguous_axis(@SArray(zeros(2,2,2)))) === ArrayInterface.Contiguous(1)
@@ -360,7 +361,6 @@ Base.getindex(::DummyZeros{T}, inds...) where {T} = zero(T)
360361
@test collect(strides(B))[collect(stride_rank(doubleperm))] == collect(strides(doubleperm))
361362
end
362363

363-
using OffsetArrays
364364
@testset "Static-Dynamic Size, Strides, and Offsets" begin
365365
A = zeros(3,4,5); Ap = @view(PermutedDimsArray(A,(3,1,2))[:,1:2,1])';
366366
S = @SArray zeros(2,3,4); Sp = @view(PermutedDimsArray(S,(3,1,2))[2:3,1:2,:]);

0 commit comments

Comments
 (0)