Skip to content

Commit 19f1282

Browse files
fix: remove linear indexing from getindex adjoints
1 parent dd34e93 commit 19f1282

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

ext/RecursiveArrayToolsZygoteExt.jl

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ end
2424
for (x, j) in zip(VA.u, 1:length(VA))]
2525
(VectorOfArray(Δ′), nothing)
2626
end
27-
VA[i], AbstractVectorOfArray_getindex_adjoint
27+
VA[:, i], AbstractVectorOfArray_getindex_adjoint
2828
end
2929

3030
@adjoint function getindex(VA::AbstractVectorOfArray,
@@ -34,7 +34,7 @@ end
3434
for (x, j) in zip(VA.u, 1:length(VA))]
3535
(VectorOfArray(Δ′), nothing)
3636
end
37-
VA[i], AbstractVectorOfArray_getindex_adjoint
37+
VA[:, i], AbstractVectorOfArray_getindex_adjoint
3838
end
3939

4040
@adjoint function getindex(VA::AbstractVectorOfArray, i::AbstractArray{Int})
@@ -44,24 +44,24 @@ end
4444
for (x, j) in zip(VA.u, 1:length(VA))]
4545
(VectorOfArray(Δ′), nothing)
4646
end
47-
VA[i], AbstractVectorOfArray_getindex_adjoint
47+
VA[:, i], AbstractVectorOfArray_getindex_adjoint
4848
end
4949

5050
@adjoint function getindex(VA::AbstractVectorOfArray,
51-
i::Union{Int, AbstractArray{Int}})
51+
i::Int)
5252
function AbstractVectorOfArray_getindex_adjoint(Δ)
53-
Δ′ = [(i[j] ? Δ[j] : FillArrays.Fill(zero(eltype(x)), size(x)))
53+
Δ′ = [(i == j ? Δ[j] : FillArrays.Fill(zero(eltype(x)), size(x)))
5454
for (x, j) in zip(VA.u, 1:length(VA))]
5555
(VectorOfArray(Δ′), nothing)
5656
end
57-
VA[i], AbstractVectorOfArray_getindex_adjoint
57+
VA[:, i], AbstractVectorOfArray_getindex_adjoint
5858
end
5959

6060
@adjoint function getindex(VA::AbstractVectorOfArray, i::Colon)
6161
function AbstractVectorOfArray_getindex_adjoint(Δ)
6262
(VectorOfArray(Δ), nothing)
6363
end
64-
VA[i], AbstractVectorOfArray_getindex_adjoint
64+
VA.u[i], AbstractVectorOfArray_getindex_adjoint
6565
end
6666

6767
@adjoint function getindex(VA::AbstractVectorOfArray, i::Int,

0 commit comments

Comments
 (0)