@@ -148,27 +148,21 @@ degree(p::Polynomial) = sum(exponents(p)[:,1])
148148
149149== (p:: Polynomial , q:: Polynomial ) = exponents (p) == exponents (q) && coefficients (p) == coefficients (q)
150150Base. isequal (p:: Polynomial , q:: Polynomial ) = exponents (p) == exponents (q) && coefficients (p) == coefficients (q)
151- function Base. deepcopy (f:: Polynomial{T} ) where T
152- Polynomial {T} (
153- f. exponents,
154- f. coefficients,
155- f. variables,
156- f. homogenized)
157- end
158151
159152# ITERATOR
160- Base. start (p:: Polynomial ) = (1 , nterms (p))
161- function Base. next (p:: Polynomial , state:: Tuple{Int,Int} )
162- (i, limit) = state
163- newstate = (i + 1 , limit)
164- val = (coefficients (p)[i], exponents (p)[:,i])
153+ function Base. iterate (p:: Polynomial , state... )
154+ n = nterms (p)
155+ istate = iterate (1 : n, state... )
156+ istate === nothing && return nothing
165157
166- (val, newstate)
158+ i, state = istate
159+ (coefficients (p)[i], exponents (p)[:,i]), state
167160end
168- Base. done (p:: Polynomial , state) = state[1 ] > state[2 ]
169161Base. length (p:: Polynomial ) = nterms (p)
170162Base. eltype (p:: Polynomial{T} ) where {T} = T
171163
164+ Base. broadcastable (p:: Polynomial ) = Ref (p)
165+
172166@inline pow (x:: AbstractFloat , k:: Integer ) = Base. FastMath. pow_fast (x, k)
173167# @inline pow(x::Complex, k::Integer) = k == 1 ? x : x^k
174168# simplified from Base.power_by_squaring
@@ -339,7 +333,7 @@ Checks whether `p` is a homogenous polynomial. Note that this is unaffected from
339333value of `homogenized(p)`.
340334"""
341335function ishomogenous (p:: Polynomial )
342- monomials_degree = Compat . sum (exponents (p), dims= 1 )
336+ monomials_degree = sum (exponents (p), dims= 1 )
343337 max_deg = monomials_degree[1 ]
344338 all (x -> x == max_deg, monomials_degree)
345339end
@@ -354,7 +348,7 @@ function homogenize(p::Polynomial, variable::Symbol=:x0; respect_homogenous=true
354348 if p. homogenized || (respect_homogenous && ishomogenous (p))
355349 p
356350 else
357- monomials_degree = Compat . sum (exponents (p), dims= 1 )
351+ monomials_degree = sum (exponents (p), dims= 1 )
358352 max_deg = monomials_degree[1 ]
359353 Polynomial ([max_deg .- monomials_degree; exponents (p)], coefficients (p), [variable; variables (p)], true )
360354 end
0 commit comments