Skip to content

Commit 6917df6

Browse files
authored
Merge pull request #25 from oxinabox/patch-1
allow indexing to take kwargs
2 parents b145034 + 68af503 commit 6917df6

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

src/lib/array.jl

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ Base.copy(x::TrackedArray) = x
6262

6363
collect(xs::TrackedArray) = xs
6464

65-
Base.setindex!(xs::TrackedArray, v, i...) =
65+
Base.setindex!(xs::TrackedArray, v, i...; kwargs...) =
6666
error("Can't differentiate `setindex!`")
6767

6868
back!(::TrackedArray) = error("Value is not scalar; use `back!(sum(x))` or `back!(x, Δ)`")
@@ -97,22 +97,22 @@ end
9797

9898
# Array Stdlib
9999

100-
Base.getindex(xs::TrackedArray, i...) = track(getindex, xs, i...)
100+
Base.getindex(xs::TrackedArray, i...; kwargs...) = track(getindex, xs, i...; kwargs...)
101101

102-
@grad function getindex(xs::AbstractArray, i...)
103-
data(xs)[i...], function (Δ)
104-
Δ′ = zero(xs)
105-
Δ′[i...] = data)
106-
(nobacksies(:getindex, Δ′), map(_->nothing, i)...)
107-
end
102+
@grad function getindex(xs::AbstractArray, i...; kwargs...)
103+
getindex(data(xs), i...; kwargs...), function (Δ)
104+
Δ′ = zero(xs)
105+
setindex!(Δ′, data(Δ), i...; kwargs...)
106+
(nobacksies(:getindex, Δ′), map(_->nothing, i)...)
107+
end
108108
end
109109

110-
Base.view(x::TrackedArray, inds...) = track(Base.view, x, inds...)
110+
Base.view(x::TrackedArray, inds...; kwargs...) = track(Base.view, x, inds...; kwargs...)
111111

112-
@grad function view(x::AbstractArray, inds...)
113-
view(data(x), inds...), function (Δ)
112+
@grad function view(x::AbstractArray, inds...; kwargs...)
113+
view(data(x), inds...; kwargs...), function (Δ)
114114
grad_output = zero(x)
115-
subgrad = view(grad_output, inds...)
115+
subgrad = view(grad_output, inds...; kwargs...)
116116
subgrad[:] = data(Δ)
117117
(nobacksies(:view, grad_output), map(_->nothing, inds)...)
118118
end

0 commit comments

Comments
 (0)