Skip to content

Commit 30e2a03

Browse files
authored
Merge pull request #6 from JuliaAlgebra/findfirst
Handle findfirst / findlast change
2 parents a5fe31f + ff1dc30 commit 30e2a03

File tree

6 files changed

+10
-6
lines changed

6 files changed

+10
-6
lines changed

REQUIRE

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
julia 0.6
22
MultivariatePolynomials 0.1.0
3+
Nullables

src/DynamicPolynomials.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import Base: length, getindex, vect, isless, isempty, start, done, next, convert
77
using MultivariatePolynomials
88
const MP = MultivariatePolynomials
99

10+
using Nullables
11+
1012
#const PolyType{C} = Union{DMonomialLike{C}, RationalPoly{C}}
1113
#iscomm(::PolyType{C}) where {C} = C
1214
#zero(p::PolyType{C}) where {C} = zero(typeof(p))

src/cmult.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ function (*)(x::PolyVar{true}, y::PolyVar{true})
88
end
99
function multiplyvar(v::Vector{PolyVar{true}}, x::PolyVar{true})
1010
i = findfirst(w->w <= x, v)
11-
if i > 0 && v[i] == x
11+
if (i != nothing && i > 0) && v[i] == x
1212
multiplyexistingvar(v, x, i)
1313
else
1414
insertvar(v, x, i == 0 ? length(v)+1 : i)

src/diff.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
function MP.differentiate(m::Monomial{C}, x::PolyVar{C}) where C
22
i = findfirst(_vars(m), x)
3-
if i == 0 || m.z[i] == 0
3+
if (i == nothing || i == 0) || m.z[i] == 0
44
zeroterm(m)
55
else
66
z = copy(m.z)
@@ -13,7 +13,7 @@ function MP.differentiate(p::Polynomial{C, T}, x::PolyVar{C}) where {C, T}
1313
# grlex order preserved
1414
i = findfirst(_vars(p), x)
1515
S = Base.promote_op(*, T, Int)
16-
if i == 0
16+
if i == nothing || i == 0
1717
zero(Polynomial{C, S})
1818
else
1919
keep = find([z[i] > 0 for z in p.x.Z])

src/ncmult.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,11 @@ end
9696

9797
function (*)(x::Monomial{false}, y::Monomial{false})
9898
i = findlast(z -> z > 0, x.z)
99-
if i == 0
99+
if i == nothing || i == 0
100100
return y
101101
end
102102
j = findfirst(z -> z > 0, y.z)
103-
if j == 0
103+
if j == nothing || j == 0
104104
return x
105105
end
106106
if x.vars[i] == y.vars[j]

src/subs.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
function fillmap!(vals, vars, s::MP.Substitution)
22
j = findfirst(vars, s.first)
3+
# 0.6 behaviour:
34
# If j == 0, that means that the variable is not present
45
# so it is ignored
5-
if j > 0
6+
if j!= nothing && j > 0
67
vals[j] = s.second
78
end
89
end

0 commit comments

Comments
 (0)