1-
21export differentiate
32
43# ################################################################
54#
65# differentiate()
76# based on John's differentiate and this code, I think by Miles Lubin:
87# https://github.com/IainNZ/NLTester/blob/master/julia/nlp.jl#L74
9- #
8+ #
109# ################################################################
1110
1211differentiate (ex:: SymbolicVariable , wrt:: SymbolicVariable ) = (ex == wrt) ? 1 : 0
@@ -33,7 +32,7 @@ function differentiate(::SymbolParameter{:^}, args, wrt)
3332 elseif yp == 0
3433 return :( $ y * $ xp * ($ x ^ ($ y - 1 )) )
3534 else
36- return :( $ x ^ $ y * ($ xp * $ y / $ x + $ yp * log ($ x)) )
35+ return :( $ x ^ $ y * ($ xp * $ y / $ x + $ yp * log ($ x)) )
3736 end
3837end
3938
@@ -215,12 +214,12 @@ for (funsym, exp) in symbolic_derivative_1arg_list
215214end
216215
217216derivative_rules_bessel = [
218- ( :besselj , :( * (besselj (nu - 1 , x) - besselj (nu + 1 , x)) / 2 ))
219- ( :besseli , :( * (besseli (nu - 1 , x) + besseli (nu + 1 , x)) / 2 ))
220- ( :bessely , :( * (bessely (nu - 1 , x) - bessely (nu + 1 , x)) / 2 ))
217+ ( :besselj , :( (besselj (nu - 1 , x) - besselj (nu + 1 , x)) / 2 ))
218+ ( :besseli , :( (besseli (nu - 1 , x) + besseli (nu + 1 , x)) / 2 ))
219+ ( :bessely , :( (bessely (nu - 1 , x) - bessely (nu + 1 , x)) / 2 ))
221220 ( :besselk , :( - 1 * (besselk (nu - 1 , x) + besselk (nu + 1 , x)) / 2 ))
222- ( :hankelh1 , :( * (hankelh1 (nu - 1 , x) - hankelh1 (nu + 1 , x)) / 2 ))
223- ( :hankelh2 , :( * (hankelh2 (nu - 1 , x) - hankelh2 (nu + 1 , x)) / 2 ))
221+ ( :hankelh1 , :( (hankelh1 (nu - 1 , x) - hankelh1 (nu + 1 , x)) / 2 ))
222+ ( :hankelh2 , :( (hankelh2 (nu - 1 , x) - hankelh2 (nu + 1 , x)) / 2 ))
224223]
225224
226225
258257
259258# # Differentiate for piecewise functions defined using ifelse
260259function differentiate (:: SymbolParameter{:ifelse} , args, wrt)
261- :(ifelse ($ (args[1 ]), $ (differentiate (args[2 ],wrt)),$ (differentiate (args[3 ],wrt))))
260+ :(ifelse ($ (args[1 ]), $ (differentiate (args[2 ],wrt)),$ (differentiate (args[3 ],wrt))))
262261end
263262
264263function differentiate (ex:: Expr , targets:: Vector{Symbol} )
0 commit comments