@@ -120,7 +120,9 @@ function NLPModels.cons_nln!(nlp::MathOptNLPModel, x::AbstractVector, c::Abstrac
120120 qcon = nlp. quadcon[i]
121121 c[i] = 0.5 * coo_sym_dot (qcon. hessian. rows, qcon. hessian. cols, qcon. hessian. vals, x, x) + dot (qcon. b, x)
122122 end
123- MOI. eval_constraint (nlp. eval, view (c, (nlp. quadcon. nquad + 1 ): (nlp. meta. nnln)), x)
123+ if nlp. meta. nnln > nlp. quadcon. nquad
124+ MOI. eval_constraint (nlp. eval, view (c, (nlp. quadcon. nquad + 1 ): (nlp. meta. nnln)), x)
125+ end
124126 return c
125127end
126128
@@ -142,11 +144,13 @@ function NLPModels.jac_nln_structure!(
142144 quad_nnzj, jrows, jcols = nlp. quadcon. nnzj, nlp. quadcon. jrows, nlp. quadcon. jcols
143145 rows[1 : quad_nnzj] .= jrows
144146 cols[1 : quad_nnzj] .= jcols
145- jac_struct = MOI. jacobian_structure (nlp. eval)
146- for index = 1 : (nlp. meta. nln_nnzj - quad_nnzj)
147- row, col = jac_struct[index]
148- rows[quad_nnzj + index] = row + nlp. quadcon. nquad
149- cols[quad_nnzj + index] = col
147+ if nlp. meta. nnln > nlp. quadcon. nquad
148+ jac_struct = MOI. jacobian_structure (nlp. eval)
149+ for index = 1 : (nlp. meta. nln_nnzj - quad_nnzj)
150+ row, col = jac_struct[index]
151+ rows[quad_nnzj + index] = row + nlp. quadcon. nquad
152+ cols[quad_nnzj + index] = col
153+ end
150154 end
151155 return rows, cols
152156end
@@ -173,7 +177,9 @@ function NLPModels.jac_nln_coord!(nlp::MathOptNLPModel, x::AbstractVector, vals:
173177 end
174178 k += nnzj
175179 end
176- MOI. eval_constraint_jacobian (nlp. eval, view (vals, (quad_nnzj + 1 ): (nlp. meta. nln_nnzj)), x)
180+ if nlp. meta. nnln > nlp. quadcon. nquad
181+ MOI. eval_constraint_jacobian (nlp. eval, view (vals, (quad_nnzj + 1 ): (nlp. meta. nln_nnzj)), x)
182+ end
177183 return vals
178184end
179185
0 commit comments