@@ -318,25 +318,27 @@ function MOI.Utilities.final_touch(model::Optimizer{T}, _) where {T}
318318 end
319319 end
320320 end
321- div = decompose (monos)
322- for mono in sort (collect (keys (div)))
323- if haskey (vars, mono)
324- continue
321+ if ! isnothing (monos)
322+ div = decompose (monos)
323+ for mono in sort (collect (keys (div)))
324+ if haskey (vars, mono)
325+ continue
326+ end
327+ a = div[mono]
328+ monomial_variable_index (model, vars, div, a)
329+ b = MP. div_multiple (mono, a)
330+ monomial_variable_index (model, vars, div, b)
331+ end
332+ if ! isnothing (model. objective)
333+ func, index_to_var = _subs! (model. objective, index_to_var)
334+ obj = _quad_convert (func. polynomial, vars, div)
335+ MOI. set (model. model, MOI. ObjectiveFunction {typeof(obj)} (), obj)
336+ end
337+ for S in keys (model. constraints)
338+ F = PolyJuMP. ScalarPolynomialFunction{T,model. constraints[S][1 ]}
339+ cis = MOI. get (model, MOI. ListOfConstraintIndices {F,S} ())
340+ _add_constraints (model, cis, index_to_var, vars, div)
325341 end
326- a = div[mono]
327- monomial_variable_index (model, vars, div, a)
328- b = MP. div_multiple (mono, a)
329- monomial_variable_index (model, vars, div, b)
330- end
331- if ! isnothing (model. objective)
332- func, index_to_var = _subs! (model. objective, index_to_var)
333- obj = _quad_convert (func. polynomial, vars, div)
334- MOI. set (model. model, MOI. ObjectiveFunction {typeof(obj)} (), obj)
335- end
336- for S in keys (model. constraints)
337- F = PolyJuMP. ScalarPolynomialFunction{T,model. constraints[S][1 ]}
338- cis = MOI. get (model, MOI. ListOfConstraintIndices {F,S} ())
339- _add_constraints (model, cis, index_to_var, vars, div)
340342 end
341343 return
342344end
0 commit comments