From aa64d2157d6e7bb4a27dacda03582d6b686c854e Mon Sep 17 00:00:00 2001 From: Ivan Yashchuk Date: Tue, 5 Feb 2019 11:38:27 +0200 Subject: [PATCH] Fixed issue #542. Added tracking of LinearAlgebra.det and its grad method. --- src/tracker/lib/array.jl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/tracker/lib/array.jl b/src/tracker/lib/array.jl index 3f47e89c..023f5fa2 100644 --- a/src/tracker/lib/array.jl +++ b/src/tracker/lib/array.jl @@ -1,7 +1,7 @@ import Base: * import LinearAlgebra -import LinearAlgebra: inv, \, / +import LinearAlgebra: inv, det, \, / using Statistics using LinearAlgebra: Transpose, Adjoint, diagm, diag @@ -124,6 +124,9 @@ Base.adjoint(xs::TrackedArray) = track(adjoint, xs) @grad transpose(xs) = transpose(data(xs)), Δ -> (trim(xs, transpose(Δ)),) @grad adjoint(xs) = data(xs)', Δ -> (trim(xs, Δ'),) +det(xs::TrackedArray) = track(det, xs) +@grad det(xs) = det(data(xs)), Δ -> (Δ * transpose(adjoint(xs)),) + Base.repeat(xs::TrackedArray; kw...) = track(repeat, xs; kw...) @grad function repeat(xs; inner=ntuple(x->1, ndims(xs)), outer=ntuple(x->1, ndims(xs)))