Skip to content

Commit 97af69b

Browse files
authored
fix bug with residues; close issue #605 (#606)
* fix bug with residues * relax test
1 parent 1a20574 commit 97af69b

File tree

3 files changed

+25
-2
lines changed

3 files changed

+25
-2
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name = "Polynomials"
22
uuid = "f27b6e38-b328-58d1-80ce-0feddd5e7a45"
33
license = "MIT"
44
author = "JuliaMath"
5-
version = "4.0.19"
5+
version = "4.0.20"
66

77
[deps]
88
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"

src/rational-functions/common.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -555,8 +555,9 @@ function residues(pq::AbstractRationalFunction; method=:numerical, kwargs...)
555555
F = lowest_terms(r*(s-λₖ)^mₖ)
556556
rs = [F(λₖ)]
557557
j! = 1
558+
dF = F
558559
for j 1:mₖ-1
559-
dF = lowest_terms(derivative(F))
560+
dF = lowest_terms(derivative(dF))
560561
pushfirst!(rs, 1/j! * dF(λₖ))
561562
j! *= (j+1)
562563
end

test/rational-functions.jl

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,28 @@ end
124124
end
125125
@test norm(numerator(lowest_terms(d - pq)), Inf) <= sqrt(eps())
126126

127+
## issue #605
128+
s = x//1
129+
X = 1//(s^4*(s+2))
130+
_, r = residues(X)
131+
Y = zero(s)
132+
for (k,v) r
133+
for (i,vᵢ) enumerate(v)
134+
Y += vᵢ / (s-k)^i
135+
end
136+
end
137+
@test X Y
138+
139+
X = 1//(s^3*(s+2))
140+
_, r = residues(X)
141+
Y = zero(s)
142+
for (k,v) r
143+
for (i,vᵢ) enumerate(v)
144+
Y += vᵢ / (s-k)^i
145+
end
146+
end
147+
@test X Y
148+
127149
end
128150

129151
@testset "As matrix elements" begin

0 commit comments

Comments
 (0)