@@ -216,7 +216,7 @@ Base.isapprox(α, p::APL; kwargs...) = isapprox(promote(p, α)...; kwargs...)
216216# option.
217217Base.:- (m:: AbstractMonomialLike ) = _term (- 1 , MA. copy_if_mutable (m))
218218Base.:- (t:: AbstractTermLike ) = _term (MA. operate (- , coefficient (t)), monomial (t))
219- Base.:- (p:: APL ) = polynomial! (( - ) . ( terms (p)) )
219+ Base.:- (p:: APL ) = mapcoefficients ( - , p )
220220Base.:+ (p:: Union{APL, RationalPoly} ) = p
221221Base.:* (p:: Union{APL, RationalPoly} ) = p
222222
@@ -243,39 +243,25 @@ end
243243multconstant (α, v:: AbstractVariable ) = multconstant (α, monomial (v)) # TODO linear term
244244multconstant (m:: AbstractMonomialLike , α) = multconstant (α, m)
245245
246- _multconstant (α, f, t:: AbstractTermLike ) = mapcoefficientsnz (f, t)
247- function _multconstant (α:: T , f, p:: AbstractPolynomial{S} ) where {S, T}
248- if iszero (α)
249- zero (polynomialtype (p, MA. promote_operation (* , T, S)))
250- else
251- mapcoefficientsnz (f, p)
252- end
253- end
254- _multconstant (α, f, p:: AbstractPolynomialLike ) = _multconstant (α, f, polynomial (p))
246+ # TODO delete once DynamicPolynomials stops using it
247+ function _multconstant end
248+ function _multconstant_to! end
255249
256- multconstant (α, p:: AbstractPolynomialLike ) = _multconstant (α, β -> α * β , p)
257- multconstant (p:: AbstractPolynomialLike , α) = _multconstant (α, β -> β * α , p)
250+ multconstant (α, p:: AbstractPolynomialLike ) = mapcoefficients (Base . Fix1 ( * , α) , p)
251+ multconstant (p:: AbstractPolynomialLike , α) = mapcoefficients (Base . Fix2 ( * , α) , p)
258252
259- # TODO delete once DynamicPolynomials stops using it
260- function _multconstant_to! (output, α, f, p)
261- if iszero (α)
262- MA. operate! (zero, output)
263- else
264- mapcoefficientsnz_to! (output, f, p)
265- end
253+ function MA. operate_to! (output, :: typeof (multconstant), α, p:: APL )
254+ return mapcoefficients_to! (output, Base. Fix1 (* , α), p)
266255end
267256function MA. operate_to! (output, :: typeof (multconstant), p:: APL , α)
268- return _multconstant_to ! (output, α, β -> β * α , p)
257+ return mapcoefficients_to ! (output, Base . Fix2 ( * , α) , p)
269258end
270- function MA. operate_to! (output, :: typeof (multconstant), α, p:: APL )
271- return _multconstant_to! (output , α, β -> α * β , p)
259+ function MA. operate! ( :: typeof (multconstant), α, p:: APL )
260+ return mapcoefficients! (Base . Fix1 ( * , α) , p)
272261end
273262function MA. operate! (:: typeof (multconstant), p:: APL , α)
274263 return mapcoefficients! (Base. Fix2 (* , α), p)
275264end
276- function MA. operate! (:: typeof (multconstant), α, p:: APL )
277- return mapcoefficients! (Base. Fix1 (* , α), p)
278- end
279265
280266MA. operate_to! (output:: AbstractMonomial , :: typeof (* ), m1:: AbstractMonomialLike , m2:: AbstractMonomialLike ) = mapexponents_to! (output, + , m1, m2)
281267MA. operate! (:: typeof (* ), m1:: AbstractMonomial , m2:: AbstractMonomialLike ) = mapexponents! (+ , m1, m2)
0 commit comments