Skip to content

Commit 425374a

Browse files
Merge pull request #13 from ivarne/master
Error in The Quotient Rule
2 parents 9dfc02a + 45c1d1b commit 425374a

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

src/differentiate.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ function differentiate(::SymbolParameter{:^}, args, wrt)
3030
yp = differentiate(y, wrt)
3131
if xp == 0 && yp == 0
3232
return 0
33-
elseif xp != 0 && yp == 0
33+
elseif yp == 0
3434
return :( $y * $xp * ($x ^ ($y - 1)) )
3535
else
3636
return :( $x ^ $y * ($xp * $y / $x + $yp * log($x)) )
@@ -105,9 +105,9 @@ function differentiate(::SymbolParameter{:/}, args, wrt)
105105
if xp == 0 && yp == 0
106106
return 0
107107
elseif xp == 0
108-
return :( -$yp * $x )
108+
return :( -$yp * $x / $y^2 )
109109
elseif yp == 0
110-
return :( $xp * $y )
110+
return :( $xp / $y )
111111
else
112112
return :( ($xp * $y - $x * $yp) / $y^2 )
113113
end

test/symbolic.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
@assert isequal(differentiate(:(x + x), :x), 2)
88
@assert isequal(differentiate(:(x - x), :x), 0)
99
@assert isequal(differentiate(:(2 * x), :x), 2)
10+
@assert isequal(differentiate(:(2 / x), :x), :(-2 / x^2))
11+
@assert isequal(differentiate(:(x / 2), :x), 0.5)
12+
@assert isequal(differentiate(:(sin(x) / x), :x), :((cos(x) * x - sin(x)) / x^2))
1013
@assert isequal(differentiate(:(x * 2), :x), 2)
1114
@assert isequal(differentiate(:(a * x), :x), :a)
1215
@assert isequal(differentiate(:(x * a), :x), :a)

0 commit comments

Comments
 (0)