Skip to content

Commit a0a9682

Browse files
author
Michael Abbott
committed
simplify conj(_,conj(_)) in symbolic gradients
1 parent 78fe8f7 commit a0a9682

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

src/symbolic.jl

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,17 @@ function insert_symbolic_gradient(axislist, store)
3434
for (dt, t) in unique(targets)
3535
drdt = leibnitz(store.right, t)
3636
deltar = if store.finaliser == :identity
37-
simplitimes(drdt, :(conj($dZ[$(store.leftraw...)])))
37+
simplitimes(simpliconj(drdt), :($dZ[$(store.leftraw...)]))
3838
else
3939
rhs = :($ZED[$(store.leftraw...)])
4040
dldr = leibfinal(store.finaliser, rhs)
41-
simplitimes(drdt, dldr, :(conj($dZ[$(store.leftraw...)])))
41+
simplitimes(simpliconj(drdt), simpliconj(dldr), :($dZ[$(store.leftraw...)]))
4242
end
4343
if store.redfun == :+
44-
push!(inbody, :($dt = $dt + conj($deltar)))
44+
push!(inbody, :($dt = $dt + $deltar))
4545
# elseif store.redfun == :*
46-
# push!(inbody, :($dt = conj($deltar) * $ZED[$(store.leftraw...)] * inv($(store.right))))
47-
# push!(prebody, :($dt = conj($deltar) * $ACC))
46+
# push!(inbody, :($dt = $deltar * $ZED[$(store.leftraw...)] * inv($(store.right))))
47+
# push!(prebody, :($dt = $deltar * $ACC))
4848
elseif store.redfun in [:min, :max]
4949
push!(inbody, :($dt += $ifelse($maxflag, $deltar, $zero($TYP))))
5050
end
@@ -247,6 +247,9 @@ simpliplus(x, y::Number) = y==0 ? x : :($x + $y)
247247
simpliplus(x, y) = :($x + $y)
248248
simpliplus(x, y, zs...) = simpliplus(simpliplus(x, y), zs...)
249249

250+
simpliconj(x::Number) = conj(x)
251+
simpliconj(x) = :(conj($x))
252+
250253
mydiffrule(f, xs...) = begin
251254
f == :+ && return map(_->1, xs)
252255
f == :- && return length(xs)==1 ? -1 : (1,-1)

0 commit comments

Comments
 (0)