Skip to content

Commit 6914708

Browse files
tmigotamontoison
authored andcommitted
Improve cons! and jprod! implementation
1 parent 9cbe4d8 commit 6914708

File tree

1 file changed

+28
-4
lines changed

1 file changed

+28
-4
lines changed

src/nlp/api.jl

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,20 @@ function cons!(nlp::AbstractNLPModel, x::AbstractVector, cx::AbstractVector)
5858
@lencheck nlp.meta.nvar x
5959
@lencheck nlp.meta.ncon cx
6060
increment!(nlp, :neval_cons)
61-
nlp.meta.nlin > 0 && cons_lin!(nlp, x, view(cx, nlp.meta.lin))
62-
nlp.meta.nnln > 0 && cons_nln!(nlp, x, view(cx, nlp.meta.nln))
61+
if nlp.meta.nlin > 0
62+
if nlp.meta.nnln == 0
63+
cons_lin!(nlp, x, cx)
64+
else
65+
cons_lin!(nlp, x, view(cx, nlp.meta.lin))
66+
end
67+
end
68+
if nlp.meta.nnln > 0
69+
if nlp.meta.nlin == 0
70+
cons_nln!(nlp, x, cx)
71+
else
72+
cons_nln!(nlp, x, view(cx, nlp.meta.nln))
73+
end
74+
end
6375
return cx
6476
end
6577

@@ -354,8 +366,20 @@ function jprod!(nlp::AbstractNLPModel, x::AbstractVector, v::AbstractVector, Jv:
354366
@lencheck nlp.meta.nvar x v
355367
@lencheck nlp.meta.ncon Jv
356368
increment!(nlp, :neval_jprod)
357-
nlp.meta.nlin > 0 && jprod_lin!(nlp, x, v, view(Jv, nlp.meta.lin))
358-
nlp.meta.nnln > 0 && jprod_nln!(nlp, x, v, view(Jv, nlp.meta.nln))
369+
if nlp.meta.nlin > 0
370+
if nlp.meta.nnln == 0
371+
jprod_lin!(nlp, x, v, Jv)
372+
else
373+
jprod_lin!(nlp, x, v, view(Jv, nlp.meta.lin))
374+
end
375+
end
376+
if nlp.meta.nnln > 0
377+
if nlp.meta.nlin == 0
378+
jprod_nln!(nlp, x, v, Jv)
379+
else
380+
jprod_nln!(nlp, x, v, view(Jv, nlp.meta.nln))
381+
end
382+
end
359383
return Jv
360384
end
361385

0 commit comments

Comments
 (0)