Skip to content

Commit 98704d1

Browse files
authored
Add function without increment! (#103)
* Add `jprod!` Skip the increment! that allocate occasionally * Add `cons!` without increment! * add increment!
1 parent e289ac3 commit 98704d1

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

src/slack-model.jl

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,15 @@ function NLPModels.objgrad!(nlp::SlackModels, x::AbstractVector, g::AbstractVect
226226
return f, g
227227
end
228228

229+
function NLPModels.cons!(nlp::SlackModels, x::AbstractVector, cx::AbstractVector)
230+
@lencheck nlp.meta.nvar x
231+
@lencheck nlp.meta.ncon cx
232+
increment!(nlp.model, :neval_cons)
233+
nlp.meta.nlin > 0 && cons_lin!(nlp, x, view(cx, nlp.meta.lin))
234+
nlp.meta.nnln > 0 && cons_nln!(nlp, x, view(cx, nlp.meta.nln))
235+
return cx
236+
end
237+
229238
function NLPModels.cons_lin!(nlp::SlackModels, x::AbstractVector, c::AbstractVector)
230239
@lencheck nlp.meta.nvar x
231240
@lencheck nlp.meta.nlin c
@@ -382,6 +391,20 @@ function NLPModels.jac_nln_coord!(nlp::SlackModels, x::AbstractVector, vals::Abs
382391
return vals
383392
end
384393

394+
function NLPModels.jprod!(
395+
nlp::SlackModels,
396+
x::AbstractVector,
397+
v::AbstractVector,
398+
Jv::AbstractVector,
399+
)
400+
@lencheck nlp.meta.nvar x v
401+
@lencheck nlp.meta.ncon Jv
402+
increment!(nlp.model, :neval_jprod)
403+
nlp.meta.nlin > 0 && jprod_lin!(nlp, x, v, view(Jv, nlp.meta.lin))
404+
nlp.meta.nnln > 0 && jprod_nln!(nlp, x, v, view(Jv, nlp.meta.nln))
405+
return Jv
406+
end
407+
385408
function NLPModels.jprod_lin!(
386409
nlp::SlackModels,
387410
x::AbstractVector,

0 commit comments

Comments
 (0)