@@ -216,7 +216,7 @@ Base.isapprox(α, p::APL; kwargs...) = isapprox(promote(p, α)...; kwargs...)
216
216
# option.
217
217
Base.:- (m:: AbstractMonomialLike ) = _term (- 1 , MA. copy_if_mutable (m))
218
218
Base.:- (t:: AbstractTermLike ) = _term (MA. operate (- , coefficient (t)), monomial (t))
219
- Base.:- (p:: APL ) = polynomial! (( - ) . ( terms (p)) )
219
+ Base.:- (p:: APL ) = mapcoefficients ( - , p )
220
220
Base.:+ (p:: Union{APL, RationalPoly} ) = p
221
221
Base.:* (p:: Union{APL, RationalPoly} ) = p
222
222
@@ -243,39 +243,25 @@ end
243
243
multconstant (α, v:: AbstractVariable ) = multconstant (α, monomial (v)) # TODO linear term
244
244
multconstant (m:: AbstractMonomialLike , α) = multconstant (α, m)
245
245
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
255
249
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)
258
252
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)
266
255
end
267
256
function MA. operate_to! (output, :: typeof (multconstant), p:: APL , α)
268
- return _multconstant_to ! (output, α, β -> β * α , p)
257
+ return mapcoefficients_to ! (output, Base . Fix2 ( * , α) , p)
269
258
end
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)
272
261
end
273
262
function MA. operate! (:: typeof (multconstant), p:: APL , α)
274
263
return mapcoefficients! (Base. Fix2 (* , α), p)
275
264
end
276
- function MA. operate! (:: typeof (multconstant), α, p:: APL )
277
- return mapcoefficients! (Base. Fix1 (* , α), p)
278
- end
279
265
280
266
MA. operate_to! (output:: AbstractMonomial , :: typeof (* ), m1:: AbstractMonomialLike , m2:: AbstractMonomialLike ) = mapexponents_to! (output, + , m1, m2)
281
267
MA. operate! (:: typeof (* ), m1:: AbstractMonomial , m2:: AbstractMonomialLike ) = mapexponents! (+ , m1, m2)
0 commit comments