@@ -6,6 +6,7 @@ mutable struct MathOptNLPModel <: AbstractNLPModel{Float64, Vector{Float64}}
66 lincon:: LinearConstraints
77 quadcon:: QuadraticConstraints
88 nlcon:: NonLinearStructure
9+ λ:: Vector{Float64}
910 obj:: Objective
1011 counters:: Counters
1112end
@@ -32,6 +33,7 @@ function nlp_model(moimodel::MOI.ModelLike; hessian::Bool = true, name::String =
3233
3334 nlp_data = _nlp_block (moimodel)
3435 nnln, nlcon, nl_lcon, nl_ucon = parser_NL (nlp_data, hessian = hessian)
36+ λ = zeros (nnln - quadcon. nquad) # Lagrange multipliers for hess_coord! and hprod! without y
3537
3638 if nlp_data. has_objective
3739 obj = Objective (" NONLINEAR" , 0.0 , spzeros (Float64, nvar), COO (), 0 )
@@ -64,7 +66,7 @@ function nlp_model(moimodel::MOI.ModelLike; hessian::Bool = true, name::String =
6466 name = name,
6567 )
6668
67- return MathOptNLPModel (meta, nlp_data. evaluator, lincon, quadcon, nlcon, obj, Counters ()), index_map
69+ return MathOptNLPModel (meta, nlp_data. evaluator, lincon, quadcon, nlcon, λ, obj, Counters ()), index_map
6870end
6971
7072function NLPModels. obj (nlp:: MathOptNLPModel , x:: AbstractVector )
@@ -337,8 +339,7 @@ function NLPModels.hess_coord!(
337339 view (vals, (nlp. obj. nnzh + 1 ): (nlp. meta. nnzh)) .= 0.0
338340 end
339341 if nlp. obj. type == " NONLINEAR"
340- λ = zeros (nlp. meta. nnln - nlp. quadcon. nquad) # Should be stored in the structure MathOptNLPModel
341- MOI. eval_hessian_lagrangian (nlp. eval, vals, x, obj_weight, λ)
342+ MOI. eval_hessian_lagrangian (nlp. eval, vals, x, obj_weight, nlp. λ)
342343 end
343344 return vals
344345end
@@ -389,8 +390,7 @@ function NLPModels.hprod!(
389390 coo_sym_add_mul! (nlp. obj. hessian. rows, nlp. obj. hessian. cols, nlp. obj. hessian. vals, v, hv, obj_weight)
390391 end
391392 if nlp. obj. type == " NONLINEAR"
392- λ = zeros (nlp. meta. nnln - nlp. quadcon. nquad) # Should be stored in the structure MathOptNLPModel
393- MOI. eval_hessian_lagrangian_product (nlp. eval, hv, x, v, obj_weight, λ)
393+ MOI. eval_hessian_lagrangian_product (nlp. eval, hv, x, v, obj_weight, nlp. λ)
394394 end
395395 return hv
396396end
0 commit comments