@@ -241,39 +241,6 @@ function simplify!(::Val{:*}, f::MOI.ScalarNonlinearFunction)
241
241
return f
242
242
end
243
243
244
- # The MOI.Utilities.operate!(+, T, x, y) methods do not cope with mixed input
245
- # types. However, ScalarNonlinearFunction can hold various <:Real coefficient
246
- # types.
247
- _add_to! (x:: Real , y:: Real ) = x + y
248
-
249
- _add_to! (x:: Real , y:: MOI.ScalarAffineFunction{<:Real} ) = _add_to! (y, x)
250
-
251
- function _add_to! (x:: MOI.ScalarAffineFunction{T} , y:: T ) where {T<: Real }
252
- return MOI. Utilities. operate! (+ , T, x, y)
253
- end
254
-
255
- function _add_to! (x:: MOI.ScalarAffineFunction{S} , y:: T ) where {S<: Real ,T<: Real }
256
- U = promote_type (S, T)
257
- F = MOI. ScalarAffineFunction{U}
258
- return MOI. Utilities. operate! (+ , U, convert (F, x), convert (U, y))
259
- end
260
-
261
- function _add_to! (
262
- x:: MOI.ScalarAffineFunction{T} ,
263
- y:: MOI.ScalarAffineFunction{T} ,
264
- ) where {T<: Real }
265
- return MOI. Utilities. operate! (+ , T, x, y)
266
- end
267
-
268
- function _add_to! (
269
- x:: MOI.ScalarAffineFunction{S} ,
270
- y:: MOI.ScalarAffineFunction{T} ,
271
- ) where {S<: Real ,T<: Real }
272
- U = promote_type (S, T)
273
- F = MOI. ScalarAffineFunction{U}
274
- return MOI. Utilities. operate! (+ , U, convert (F, x), convert (F, y))
275
- end
276
-
277
244
function simplify! (:: Val{:+} , f:: MOI.ScalarNonlinearFunction )
278
245
new_args = Any[]
279
246
first_affine_term = 0
@@ -283,14 +250,13 @@ function simplify!(::Val{:+}, f::MOI.ScalarNonlinearFunction)
283
250
append! (new_args, arg. args)
284
251
elseif _iszero (arg)
285
252
# Skip any zero arguments
286
- elseif arg isa Real || arg isa MOI . ScalarAffineFunction{ <: Real }
253
+ elseif arg isa Real
287
254
# Collect all affine arguments into a single value
288
255
if first_affine_term == 0
289
256
push! (new_args, arg)
290
257
first_affine_term = length (new_args)
291
258
else
292
- new_args[first_affine_term] =
293
- _add_to! (new_args[first_affine_term], arg)
259
+ new_args[first_affine_term] += arg
294
260
end
295
261
else
296
262
push! (new_args, arg)
0 commit comments