Skip to content

Commit 3a01738

Browse files
committed
Merge pull request #8 from jverzani/patch-3
modify degree for Poly([0.0]); polyder
2 parents 8b9ebdf + f13e1f6 commit 3a01738

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

src/Polynomials.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -191,15 +191,15 @@ function degree{T}(p::Poly{T})
191191
return i
192192
end
193193
end
194-
return -1
194+
return 0
195195
end
196196

197197
function divrem{T, S}(num::Poly{T}, den::Poly{S})
198198
if num.var != den.var
199199
error("Polynomials must have same variable")
200200
end
201201
m = degree(den)
202-
if m < 0
202+
if m == 0 && den[0] == 0
203203
throw(DivideError())
204204
end
205205
R = typeof(one(T)/one(S))
@@ -278,7 +278,7 @@ function polyder{T}(p::Poly{T}, order::Int=1)
278278
else
279279
p2 = Poly(Array(T, n-order), p.var)
280280
for i = order:n-1
281-
p2[i-order] = p[i] * factorial(i)/factorial(i-order)
281+
p2[i-order] = p[i] * prod((i-order+1):i)
282282
end
283283
return p2
284284
end

test/tests.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ sprint(show, pNULL)
3232
@test pNULL^3 == pNULL
3333
@test pNULL*pNULL == pNULL
3434

35+
@test map(Polynomials.degree, [pNULL,p0,p1,p2,p3,p4,p5,pN,pR,p1000]) == [0,0,0,1,2,3,4,4,2,999]
36+
3537
@test polyval(pN, -.125) == 276.9609375
3638
@test polyval(pNULL, 10) == 0
3739
@test polyval(p0, -10) == 0

0 commit comments

Comments
 (0)