Skip to content

Commit

Permalink
fix base cse (JuliaDiff#357)
Browse files Browse the repository at this point in the history
  • Loading branch information
MikeInnes authored and jrevels committed Sep 14, 2018
1 parent 6ebe333 commit e1a129b
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions src/dual.jl
Original file line number Diff line number Diff line change
Expand Up @@ -160,8 +160,9 @@ end

function unary_dual_definition(M, f)
FD = ForwardDiff
Mf = M == :Base ? f : :($M.$f)
work = qualified_cse!(quote
val = $M.$f(x)
val = $Mf(x)
deriv = $(DiffRules.diffrule(M, f, :x))
end)
return quote
Expand All @@ -176,19 +177,20 @@ end
function binary_dual_definition(M, f)
FD = ForwardDiff
dvx, dvy = DiffRules.diffrule(M, f, :vx, :vy)
Mf = M == :Base ? f : :($M.$f)
xy_work = qualified_cse!(quote
val = $M.$f(vx, vy)
val = $Mf(vx, vy)
dvx = $dvx
dvy = $dvy
end)
dvx, _ = DiffRules.diffrule(M, f, :vx, :y)
x_work = qualified_cse!(quote
val = $M.$f(vx, y)
val = $Mf(vx, y)
dvx = $dvx
end)
_, dvy = DiffRules.diffrule(M, f, :x, :vy)
y_work = qualified_cse!(quote
val = $M.$f(x, vy)
val = $Mf(x, vy)
dvy = $dvy
end)
expr = quote
Expand Down

0 comments on commit e1a129b

Please sign in to comment.