Skip to content

Commit 3d7001c

Browse files
committed
only evaluate the NLPEval when there is nonlinear cons
1 parent ba1eeb6 commit 3d7001c

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

src/moi_nlp_model.jl

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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
125127
end
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
152156
end
@@ -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
178184
end
179185

0 commit comments

Comments
 (0)