@@ -65,9 +65,9 @@ Base.:/(A::AbstractArray, p::APL) = map(f -> f / p, A)
65
65
66
66
constant_function (:: typeof (+ )) = plusconstant
67
67
constant_function (:: typeof (- )) = minusconstant
68
- MA. mutable_operate ! (op:: Union{typeof(+), typeof(-)} , p:: APL , α) = MA. mutable_operate ! (constant_function (op), p, α)
69
- MA. mutable_operate_to ! (output:: AbstractPolynomial , op:: typeof (* ), α, p:: APL ) = MA. mutable_operate_to ! (output, multconstant, α, p)
70
- MA. mutable_operate_to ! (output:: AbstractPolynomial , op:: typeof (* ), p:: APL , α) = MA. mutable_operate_to ! (output, multconstant, p, α)
68
+ MA. operate ! (op:: Union{typeof(+), typeof(-)} , p:: APL , α) = MA. operate ! (constant_function (op), p, α)
69
+ MA. operate_to ! (output:: AbstractPolynomial , op:: typeof (* ), α, p:: APL ) = MA. operate_to ! (output, multconstant, α, p)
70
+ MA. operate_to ! (output:: AbstractPolynomial , op:: typeof (* ), p:: APL , α) = MA. operate_to ! (output, multconstant, p, α)
71
71
72
72
function polynomial_merge! (
73
73
n1:: Int , n2:: Int , get1:: Function , get2:: Function ,
@@ -186,8 +186,8 @@ function polynomial_merge!(
186
186
end
187
187
188
188
189
- # MA.mutable_operate !(op::Union{typeof(+), typeof(-)}, p::AbstractPolynomial, q::AbstractPolynomial) = MA.mutable_operate_to !(p, op, p, q)
190
- MA. mutable_operate ! (op:: Union{typeof(+), typeof(-)} , p:: AbstractPolynomial , q:: AbstractPolynomialLike ) = MA. mutable_operate ! (op, p, polynomial (q))
189
+ # MA.operate !(op::Union{typeof(+), typeof(-)}, p::AbstractPolynomial, q::AbstractPolynomial) = MA.operate_to !(p, op, p, q)
190
+ MA. operate ! (op:: Union{typeof(+), typeof(-)} , p:: AbstractPolynomial , q:: AbstractPolynomialLike ) = MA. operate ! (op, p, polynomial (q))
191
191
192
192
function mul_to_terms! (ts:: Vector{<:AbstractTerm} , p1:: APL , p2:: APL )
193
193
for t1 in terms (p1)
@@ -218,17 +218,17 @@ Base.:*(p::Union{APL, RationalPoly}) = p
218
218
# Need to add polynomial conversion for type stability
219
219
plusconstant (p:: APL{S} , α:: T ) where {S, T} = iszero (α) ? polynomial ( p, MA. promote_operation (+ , S, T)) : p + constantterm (α, p)
220
220
plusconstant (α:: S , p:: APL{T} ) where {S, T} = iszero (α) ? polynomial ( p, MA. promote_operation (+ , S, T)) : constantterm (α, p) + p
221
- function MA. mutable_operate ! (:: typeof (plusconstant), p:: APL , α)
221
+ function MA. operate ! (:: typeof (plusconstant), p:: APL , α)
222
222
if ! iszero (α)
223
- MA. mutable_operate ! (+ , p, constantterm (α, p))
223
+ MA. operate ! (+ , p, constantterm (α, p))
224
224
end
225
225
return p
226
226
end
227
227
minusconstant (p:: APL{S} , α:: T ) where {S, T} = iszero (α) ? polynomial ( p, MA. promote_operation (- , S, T)) : p - constantterm (α, p)
228
228
minusconstant (α:: S , p:: APL{T} ) where {S, T} = iszero (α) ? polynomial (- p, MA. promote_operation (- , S, T)) : constantterm (α, p) - p
229
- function MA. mutable_operate ! (:: typeof (minusconstant), p:: APL , α)
229
+ function MA. operate ! (:: typeof (minusconstant), p:: APL , α)
230
230
if ! iszero (α)
231
- MA. mutable_operate ! (- , p, constantterm (α, p))
231
+ MA. operate ! (- , p, constantterm (α, p))
232
232
end
233
233
return p
234
234
end
@@ -254,20 +254,20 @@ function mapcoefficientsnz_to! end
254
254
255
255
function _multconstant_to! (output, α, f, p)
256
256
if iszero (α)
257
- MA. mutable_operate ! (zero, output)
257
+ MA. operate ! (zero, output)
258
258
else
259
259
mapcoefficientsnz_to! (output, f, p)
260
260
end
261
261
end
262
- function MA. mutable_operate_to ! (output, :: typeof (multconstant), p:: APL , α)
262
+ function MA. operate_to ! (output, :: typeof (multconstant), p:: APL , α)
263
263
_multconstant_to! (output, α, β -> β* α, p)
264
264
end
265
- function MA. mutable_operate_to ! (output, :: typeof (multconstant), α, p:: APL )
265
+ function MA. operate_to ! (output, :: typeof (multconstant), α, p:: APL )
266
266
_multconstant_to! (output, α, β -> α* β, p)
267
267
end
268
268
269
- MA. mutable_operate_to ! (output:: AbstractMonomial , :: typeof (* ), m1:: AbstractMonomialLike , m2:: AbstractMonomialLike ) = mapexponents_to! (output, + , m1, m2)
270
- MA. mutable_operate ! (:: typeof (* ), m1:: AbstractMonomial , m2:: AbstractMonomialLike ) = mapexponents! (+ , m1, m2)
269
+ MA. operate_to ! (output:: AbstractMonomial , :: typeof (* ), m1:: AbstractMonomialLike , m2:: AbstractMonomialLike ) = mapexponents_to! (output, + , m1, m2)
270
+ MA. operate ! (:: typeof (* ), m1:: AbstractMonomial , m2:: AbstractMonomialLike ) = mapexponents! (+ , m1, m2)
271
271
Base.:* (m1:: AbstractMonomialLike , m2:: AbstractMonomialLike ) = mapexponents (+ , m1, m2)
272
272
# Base.:*(m1::AbstractMonomialLike, m2::AbstractMonomialLike) = *(monomial(m1), monomial(m2))
273
273
@@ -354,18 +354,18 @@ Base.vec(vars::Tuple{Vararg{AbstractVariable}}) = [vars...]
354
354
# https://github.com/JuliaLang/julia/pull/23332
355
355
Base.:^ (x:: AbstractPolynomialLike , p:: Integer ) = Base. power_by_squaring (x, p)
356
356
357
- function MA. mutable_operate_to ! (output:: AbstractPolynomial , op:: MA.AddSubMul , x, args:: Vararg{Any, N} ) where N
358
- return MA. mutable_operate_to ! (output, MA. add_sub_op (op), x, * (args... ))
357
+ function MA. operate_to ! (output:: AbstractPolynomial , op:: MA.AddSubMul , x, args:: Vararg{Any, N} ) where N
358
+ return MA. operate_to ! (output, MA. add_sub_op (op), x, * (args... ))
359
359
end
360
- function MA. mutable_operate ! (op:: MA.AddSubMul , x:: AbstractPolynomial , y, z, args:: Vararg{Any, N} ) where N
361
- return MA. mutable_operate ! (MA. add_sub_op (op), x, * (y, z, args... ))
360
+ function MA. operate ! (op:: MA.AddSubMul , x:: AbstractPolynomial , y, z, args:: Vararg{Any, N} ) where N
361
+ return MA. operate ! (MA. add_sub_op (op), x, * (y, z, args... ))
362
362
end
363
363
MA. buffer_for (:: MA.AddSubMul , :: Type{<:AbstractPolynomial} , args:: Vararg{Type, N} ) where {N} = zero (MA. promote_operation (* , args... ))
364
- function MA. mutable_buffered_operate_to ! (buffer:: AbstractPolynomial , output:: AbstractPolynomial , op:: MA.AddSubMul , x:: AbstractPolynomial , y, z, args:: Vararg{Any, N} ) where N
365
- product = MA. operate_to! (buffer, * , y, z, args... )
366
- return MA. mutable_operate_to ! (output, MA. add_sub_op (op), x, product)
364
+ function MA. buffered_operate_to ! (buffer:: AbstractPolynomial , output:: AbstractPolynomial , op:: MA.AddSubMul , x:: AbstractPolynomial , y, z, args:: Vararg{Any, N} ) where N
365
+ product = MA. operate_to!! (buffer, * , y, z, args... )
366
+ return MA. operate_to ! (output, MA. add_sub_op (op), x, product)
367
367
end
368
- function MA. mutable_buffered_operate ! (buffer:: AbstractPolynomial , op:: MA.AddSubMul , x:: AbstractPolynomial , y, z, args:: Vararg{Any, N} ) where N
369
- product = MA. operate_to! (buffer, * , y, z, args... )
370
- return MA. mutable_operate ! (MA. add_sub_op (op), x, product)
368
+ function MA. buffered_operate ! (buffer:: AbstractPolynomial , op:: MA.AddSubMul , x:: AbstractPolynomial , y, z, args:: Vararg{Any, N} ) where N
369
+ product = MA. operate_to!! (buffer, * , y, z, args... )
370
+ return MA. operate ! (MA. add_sub_op (op), x, product)
371
371
end
0 commit comments