From 532cf559afe700070dd2dc5c5b266e4b3976f2d0 Mon Sep 17 00:00:00 2001 From: Jay-sanjay <134289328+Jay-sanjay@users.noreply.github.com> Date: Sun, 1 Oct 2023 10:59:33 +0530 Subject: [PATCH 1/3] updated julia_interface.jl --- src/julia_interface.jl | 61 ++++++++++++++++++++++++------------------ 1 file changed, 35 insertions(+), 26 deletions(-) diff --git a/src/julia_interface.jl b/src/julia_interface.jl index 49652175..963a9d48 100644 --- a/src/julia_interface.jl +++ b/src/julia_interface.jl @@ -2,6 +2,15 @@ export cons_coord, cons_coord!, consjac using NLPModels, SparseArrays +function increment!(x::Number, n::Number) + x += n + return x +end +function decrement!(x::Number, n::Number) + x -= n + return x +end + function NLPModels.objcons(nlp::CUTEstModel, x::AbstractVector) @lencheck nlp.meta.nvar x c = Vector{Float64}(undef, nlp.meta.ncon) @@ -31,7 +40,7 @@ function NLPModels.objcons!( f, c, ) - nlp.counters.neval_cons += 1 + nlp.counters.neval_cons = increment!(nlp.counters.neval_cons, 1) else ccall( dlsym(cutest_lib, :cutest_ufn_), @@ -43,7 +52,7 @@ function NLPModels.objcons!( f, ) end - nlp.counters.neval_obj += 1 + nlp.counters.neval_obj = increment!(nlp.counters.neval_obj, 1) @cutest_error return f[1], c @@ -110,8 +119,8 @@ function NLPModels.objgrad!( get_grad, ) end - nlp.counters.neval_obj += 1 - nlp.counters.neval_grad += 1 + nlp.counters.neval_obj = increment!(nlp.counters.neval_obj, 1) + nlp.counters.neval_grad = increment!(nlp.counters.neval_grad, 1) @cutest_error return f[1], g @@ -134,7 +143,7 @@ function NLPModels.obj(nlp::CUTEstModel, x::AbstractVector) @lencheck nlp.meta.nvar x f = objcons!(nlp, x, nlp.work)[1] if nlp.meta.ncon > 0 - nlp.counters.neval_cons -= 1 # does not really count as a constraint eval + nlp.counters.neval_cons = decrement!(nlp.counters.neval_cons, 1) # does not really count as a constraint eval end return f end @@ -142,7 +151,7 @@ end function NLPModels.grad!(nlp::CUTEstModel, x::AbstractVector, g::AbstractVector) @lencheck nlp.meta.nvar x g objgrad!(nlp, x, g) - nlp.counters.neval_obj -= 1 # does not really count as a objective eval + nlp.counters.neval_obj = decrement!(nlp.counters.neval_obj, 1) # does not really count as a objective eval return g end @@ -209,8 +218,8 @@ function cons_coord!( get_j, ) @cutest_error - nlp.counters.neval_cons += 1 - nlp.counters.neval_jac += 1 + nlp.counters.neval_cons = increment!(nlp.counters.neval_cons, 1) + nlp.counters.neval_jac = increment!(nlp.counters.neval_jac, 1) return c, rows, cols, vals end @@ -291,7 +300,7 @@ function NLPModels.cons!(nlp::CUTEstModel, x::AbstractVector, c::AbstractVector) @lencheck nlp.meta.nvar x @lencheck nlp.meta.ncon c objcons!(nlp, x, c) - nlp.counters.neval_obj -= 1 # does not really count as a objective eval + nlp.counters.neval_obj = decrement!(nlp.counters.neval_obj, 1) # does not really count as a objective eval return c end @@ -301,7 +310,7 @@ function NLPModels.cons_lin!(nlp::CUTEstModel, x::AbstractVector, c::AbstractVec eval_lin_structure!(nlp) coo_prod!(nlp.clinrows, nlp.clincols, nlp.clinvals, x, c) c .+= nlp.blin - nlp.counters.neval_cons_lin += 1 + nlp.counters.neval_cons_lin = increment!(nlp.counters.neval_cons_lin, 1) return c end @@ -322,7 +331,7 @@ function NLPModels.cons_nln!(nlp::CUTEstModel, x::AbstractVector, c::StrideOneVe cifn(Cint[0], Cint[nlp.meta.nvar], Cint[j], x, view(c, k:k)) k += 1 end - nlp.counters.neval_cons_nln += 1 + nlp.counters.neval_cons_nln = increment!(nlp.counters.neval_cons_nln, 1) return c end @@ -460,14 +469,14 @@ function NLPModels.jac_coord!(nlp::CUTEstModel, x::AbstractVector, vals::Abstrac @lencheck nlp.meta.nvar x @lencheck nlp.meta.nnzj vals cons_coord!(nlp, x, nlp.work, nlp.jrows, nlp.jcols, vals) - nlp.counters.neval_cons -= 1 # does not really count as a constraint eval + nlp.counters.neval_cons = decrement!(nlp.counters.neval_cons, 1) # does not really count as a constraint eval return vals end function NLPModels.jac_lin_coord!(nlp::CUTEstModel, x::AbstractVector, vals::AbstractVector) @lencheck nlp.meta.nvar x @lencheck nlp.meta.lin_nnzj vals - nlp.counters.neval_jac_lin += 1 + nlp.counters.neval_jac_lin = increment!(nlp.counters.neval_jac_lin, 1) eval_lin_structure!(nlp) vals .= nlp.clinvals return vals @@ -488,7 +497,7 @@ function NLPModels.jac_nln_coord!(nlp::CUTEstModel, x::AbstractVector, vals::Abs end end vals[i:end] .= 0.0 - nlp.counters.neval_jac_nln += 1 + nlp.counters.neval_jac_nln = increment!(nlp.counters.neval_jac_nln, 1) return vals end @@ -532,7 +541,7 @@ function NLPModels.jprod!( ncon, ) @cutest_error - nlp.counters.neval_jprod += 1 + nlp.counters.neval_jprod = increment!(nlp.counters.neval_jprod, 1) return jv end @@ -570,8 +579,8 @@ function NLPModels.jprod_nln!( @lencheck nlp.meta.nnln jv jvc = nlp.work jprod!(nlp, x, v, jvc) - nlp.counters.neval_jprod -= 1 - nlp.counters.neval_jprod_nln += 1 + nlp.counters.neval_jprod = decrement!(nlp.counters.neval_jprod, 1) + nlp.counters.neval_jprod_nln = increment!(nlp.counters.neval_jprod_nln, 1) jv .= jvc[nlp.meta.nln] end @@ -583,7 +592,7 @@ function NLPModels.jprod_lin!( ) @lencheck nlp.meta.nvar x v @lencheck nlp.meta.nlin jv - nlp.counters.neval_jprod_lin += 1 + nlp.counters.neval_jprod_lin = increment!(nlp.counters.neval_jprod_lin, 1) eval_lin_structure!(nlp) jprod_lin!(nlp, nlp.clinrows, nlp.clincols, nlp.clinvals, v, jv) return jv @@ -629,7 +638,7 @@ function NLPModels.jtprod!( nvar, ) @cutest_error - nlp.counters.neval_jtprod += 1 + nlp.counters.neval_jtprod = increment!(nlp.counters.neval_jtprod ,1) return jtv end @@ -669,8 +678,8 @@ function NLPModels.jtprod_nln!( _v[nlp.meta.lin] .= 0.0 _v[nlp.meta.nln] = v jtprod!(nlp, x, _v, jtv) - nlp.counters.neval_jtprod -= 1 - nlp.counters.neval_jtprod_nln += 1 + nlp.counters.neval_jtprod = decrement!(nlp.counters.neval_jtprod, 1) + nlp.counters.neval_jtprod_nln = increment!(nlp.counters.neval_jtprod_nln, 1) return jtv end @@ -682,7 +691,7 @@ function NLPModels.jtprod_lin!( ) @lencheck nlp.meta.nvar x jtv @lencheck nlp.meta.nlin v - nlp.counters.neval_jtprod_lin += 1 + nlp.counters.neval_jtprod_lin = increment!(nlp.counters.neval_jtprod_lin, 1) eval_lin_structure!(nlp) jtprod_lin!(nlp, nlp.clinrows, nlp.clincols, nlp.clinvals, v, jtv) return jtv @@ -830,7 +839,7 @@ function NLPModels.hess_coord!( nlp.hrows, ) @cutest_error - nlp.counters.neval_hess += 1 + nlp.counters.neval_hess = increment!(nlp.counters.neval_hess, 1) return vals end @@ -891,7 +900,7 @@ function NLPModels.hess_coord!( @cutest_error obj_weight != 1.0 && (vals[:] *= obj_weight) # also ok if obj_weight == 0 and ncon == 0 - nlp.counters.neval_hess += 1 + nlp.counters.neval_hess = increment!(nlp.counters.neval_hess, 1) return vals end @@ -966,7 +975,7 @@ function NLPModels.hprod!( hv, ) @cutest_error - nlp.counters.neval_hprod += 1 + nlp.counters.neval_hprod = increment!(nlp.counters.neval_hprod, 1) return hv end @@ -1012,7 +1021,7 @@ function NLPModels.hprod!( @cutest_error obj_weight != 1.0 && (hv[:] *= obj_weight) # also ok if obj_weight == 0 and ncon == 0 - nlp.counters.neval_hprod += 1 + nlp.counters.neval_hprod = increment!(nlp.counters.neval_hprod, 1) return hv end From 4b869f0d351ed67d231be53e6255fa44b9452c0f Mon Sep 17 00:00:00 2001 From: Jay-sanjay <134289328+Jay-sanjay@users.noreply.github.com> Date: Sun, 1 Oct 2023 16:59:29 +0530 Subject: [PATCH 2/3] updated julia_interface.jl --- src/julia_interface.jl | 78 +++++++++++++++++++++++++----------------- 1 file changed, 46 insertions(+), 32 deletions(-) diff --git a/src/julia_interface.jl b/src/julia_interface.jl index 963a9d48..e89dc02e 100644 --- a/src/julia_interface.jl +++ b/src/julia_interface.jl @@ -2,13 +2,27 @@ export cons_coord, cons_coord!, consjac using NLPModels, SparseArrays -function increment!(x::Number, n::Number) - x += n - return x +""" + increment!(nlp, s) + +Increment counter `s` of problem `nlp`. +""" +@inline function increment!(nlp::AbstractNLPModel, s::Symbol) + increment!(nlp, Val(s)) +end + +for fun in fieldnames(Counters) + @eval increment!(nlp::AbstractNLPModel, ::Val{$(Meta.quot(fun))}) = nlp.counters.$fun += 1 end -function decrement!(x::Number, n::Number) - x -= n - return x + +""" + decrement!(nlp, s) + +Decrement counter `s` of problem `nlp`. +""" + +function decrement!(nlp::AbstractNLPModel, s::Symbol) + setproperty!(nlp.counters, s, getproperty(nlp.counters, s) - 1) end function NLPModels.objcons(nlp::CUTEstModel, x::AbstractVector) @@ -40,7 +54,7 @@ function NLPModels.objcons!( f, c, ) - nlp.counters.neval_cons = increment!(nlp.counters.neval_cons, 1) + nlp.counters.neval_cons += 1 else ccall( dlsym(cutest_lib, :cutest_ufn_), @@ -52,7 +66,7 @@ function NLPModels.objcons!( f, ) end - nlp.counters.neval_obj = increment!(nlp.counters.neval_obj, 1) + increment!(nlp, :neval_obj) @cutest_error return f[1], c @@ -119,8 +133,8 @@ function NLPModels.objgrad!( get_grad, ) end - nlp.counters.neval_obj = increment!(nlp.counters.neval_obj, 1) - nlp.counters.neval_grad = increment!(nlp.counters.neval_grad, 1) + nlp.counters.neval_obj +=1 + nlp.counters.neval_grad +=1 @cutest_error return f[1], g @@ -143,7 +157,7 @@ function NLPModels.obj(nlp::CUTEstModel, x::AbstractVector) @lencheck nlp.meta.nvar x f = objcons!(nlp, x, nlp.work)[1] if nlp.meta.ncon > 0 - nlp.counters.neval_cons = decrement!(nlp.counters.neval_cons, 1) # does not really count as a constraint eval + nlp.counters.neval_cons -=1 # does not really count as a constraint eval end return f end @@ -151,7 +165,7 @@ end function NLPModels.grad!(nlp::CUTEstModel, x::AbstractVector, g::AbstractVector) @lencheck nlp.meta.nvar x g objgrad!(nlp, x, g) - nlp.counters.neval_obj = decrement!(nlp.counters.neval_obj, 1) # does not really count as a objective eval + nlp.counters.neval_obj -=1 # does not really count as a objective eval return g end @@ -218,8 +232,8 @@ function cons_coord!( get_j, ) @cutest_error - nlp.counters.neval_cons = increment!(nlp.counters.neval_cons, 1) - nlp.counters.neval_jac = increment!(nlp.counters.neval_jac, 1) + nlp.counters.neval_cons +=1 + nlp.counters.neval_jac +=1 return c, rows, cols, vals end @@ -300,7 +314,7 @@ function NLPModels.cons!(nlp::CUTEstModel, x::AbstractVector, c::AbstractVector) @lencheck nlp.meta.nvar x @lencheck nlp.meta.ncon c objcons!(nlp, x, c) - nlp.counters.neval_obj = decrement!(nlp.counters.neval_obj, 1) # does not really count as a objective eval + nlp.counters.neval_obj -=1 # does not really count as a objective eval return c end @@ -310,7 +324,7 @@ function NLPModels.cons_lin!(nlp::CUTEstModel, x::AbstractVector, c::AbstractVec eval_lin_structure!(nlp) coo_prod!(nlp.clinrows, nlp.clincols, nlp.clinvals, x, c) c .+= nlp.blin - nlp.counters.neval_cons_lin = increment!(nlp.counters.neval_cons_lin, 1) + nlp.counters.neval_cons_lin +=1 return c end @@ -331,7 +345,7 @@ function NLPModels.cons_nln!(nlp::CUTEstModel, x::AbstractVector, c::StrideOneVe cifn(Cint[0], Cint[nlp.meta.nvar], Cint[j], x, view(c, k:k)) k += 1 end - nlp.counters.neval_cons_nln = increment!(nlp.counters.neval_cons_nln, 1) + nlp.counters.neval_cons_nln +=1 return c end @@ -469,14 +483,14 @@ function NLPModels.jac_coord!(nlp::CUTEstModel, x::AbstractVector, vals::Abstrac @lencheck nlp.meta.nvar x @lencheck nlp.meta.nnzj vals cons_coord!(nlp, x, nlp.work, nlp.jrows, nlp.jcols, vals) - nlp.counters.neval_cons = decrement!(nlp.counters.neval_cons, 1) # does not really count as a constraint eval + nlp.counters.neval_cons -=1 # does not really count as a constraint eval return vals end function NLPModels.jac_lin_coord!(nlp::CUTEstModel, x::AbstractVector, vals::AbstractVector) @lencheck nlp.meta.nvar x @lencheck nlp.meta.lin_nnzj vals - nlp.counters.neval_jac_lin = increment!(nlp.counters.neval_jac_lin, 1) + nlp.counters.neval_jac_lin +=1 eval_lin_structure!(nlp) vals .= nlp.clinvals return vals @@ -497,7 +511,7 @@ function NLPModels.jac_nln_coord!(nlp::CUTEstModel, x::AbstractVector, vals::Abs end end vals[i:end] .= 0.0 - nlp.counters.neval_jac_nln = increment!(nlp.counters.neval_jac_nln, 1) + nlp.counters.neval_jac_nln +=1 return vals end @@ -541,7 +555,7 @@ function NLPModels.jprod!( ncon, ) @cutest_error - nlp.counters.neval_jprod = increment!(nlp.counters.neval_jprod, 1) + nlp.counters.neval_jprod +=1 return jv end @@ -579,8 +593,8 @@ function NLPModels.jprod_nln!( @lencheck nlp.meta.nnln jv jvc = nlp.work jprod!(nlp, x, v, jvc) - nlp.counters.neval_jprod = decrement!(nlp.counters.neval_jprod, 1) - nlp.counters.neval_jprod_nln = increment!(nlp.counters.neval_jprod_nln, 1) + nlp.counters.neval_jprod -=1 + nlp.counters.neval_jprod_nln +=1 jv .= jvc[nlp.meta.nln] end @@ -592,7 +606,7 @@ function NLPModels.jprod_lin!( ) @lencheck nlp.meta.nvar x v @lencheck nlp.meta.nlin jv - nlp.counters.neval_jprod_lin = increment!(nlp.counters.neval_jprod_lin, 1) + nlp.counters.neval_jprod_lin +=1 eval_lin_structure!(nlp) jprod_lin!(nlp, nlp.clinrows, nlp.clincols, nlp.clinvals, v, jv) return jv @@ -638,7 +652,7 @@ function NLPModels.jtprod!( nvar, ) @cutest_error - nlp.counters.neval_jtprod = increment!(nlp.counters.neval_jtprod ,1) + nlp.counters.neval_jtprod +=1 return jtv end @@ -678,8 +692,8 @@ function NLPModels.jtprod_nln!( _v[nlp.meta.lin] .= 0.0 _v[nlp.meta.nln] = v jtprod!(nlp, x, _v, jtv) - nlp.counters.neval_jtprod = decrement!(nlp.counters.neval_jtprod, 1) - nlp.counters.neval_jtprod_nln = increment!(nlp.counters.neval_jtprod_nln, 1) + nlp.counters.neval_jtprod -=1 + nlp.counters.neval_jtprod_nln +=1 return jtv end @@ -691,7 +705,7 @@ function NLPModels.jtprod_lin!( ) @lencheck nlp.meta.nvar x jtv @lencheck nlp.meta.nlin v - nlp.counters.neval_jtprod_lin = increment!(nlp.counters.neval_jtprod_lin, 1) + nlp.counters.neval_jtprod_lin +=1 eval_lin_structure!(nlp) jtprod_lin!(nlp, nlp.clinrows, nlp.clincols, nlp.clinvals, v, jtv) return jtv @@ -839,7 +853,7 @@ function NLPModels.hess_coord!( nlp.hrows, ) @cutest_error - nlp.counters.neval_hess = increment!(nlp.counters.neval_hess, 1) + nlp.counters.neval_hess +=1 return vals end @@ -900,7 +914,7 @@ function NLPModels.hess_coord!( @cutest_error obj_weight != 1.0 && (vals[:] *= obj_weight) # also ok if obj_weight == 0 and ncon == 0 - nlp.counters.neval_hess = increment!(nlp.counters.neval_hess, 1) + nlp.counters.neval_hess +=1 return vals end @@ -975,7 +989,7 @@ function NLPModels.hprod!( hv, ) @cutest_error - nlp.counters.neval_hprod = increment!(nlp.counters.neval_hprod, 1) + nlp.counters.neval_hprod +=1 return hv end @@ -1021,7 +1035,7 @@ function NLPModels.hprod!( @cutest_error obj_weight != 1.0 && (hv[:] *= obj_weight) # also ok if obj_weight == 0 and ncon == 0 - nlp.counters.neval_hprod = increment!(nlp.counters.neval_hprod, 1) + nlp.counters.neval_hprod +=1 return hv end From 61d50fd688a25d96b59b550e66d0c11306e82b93 Mon Sep 17 00:00:00 2001 From: Jay-sanjay <134289328+Jay-sanjay@users.noreply.github.com> Date: Mon, 2 Oct 2023 03:03:24 +0530 Subject: [PATCH 3/3] updated again --- src/julia_interface.jl | 73 +++++++++++++++--------------------------- 1 file changed, 25 insertions(+), 48 deletions(-) diff --git a/src/julia_interface.jl b/src/julia_interface.jl index e89dc02e..ebb29d9c 100644 --- a/src/julia_interface.jl +++ b/src/julia_interface.jl @@ -2,29 +2,6 @@ export cons_coord, cons_coord!, consjac using NLPModels, SparseArrays -""" - increment!(nlp, s) - -Increment counter `s` of problem `nlp`. -""" -@inline function increment!(nlp::AbstractNLPModel, s::Symbol) - increment!(nlp, Val(s)) -end - -for fun in fieldnames(Counters) - @eval increment!(nlp::AbstractNLPModel, ::Val{$(Meta.quot(fun))}) = nlp.counters.$fun += 1 -end - -""" - decrement!(nlp, s) - -Decrement counter `s` of problem `nlp`. -""" - -function decrement!(nlp::AbstractNLPModel, s::Symbol) - setproperty!(nlp.counters, s, getproperty(nlp.counters, s) - 1) -end - function NLPModels.objcons(nlp::CUTEstModel, x::AbstractVector) @lencheck nlp.meta.nvar x c = Vector{Float64}(undef, nlp.meta.ncon) @@ -54,7 +31,7 @@ function NLPModels.objcons!( f, c, ) - nlp.counters.neval_cons += 1 + increment!(nlp, :neval_cons) else ccall( dlsym(cutest_lib, :cutest_ufn_), @@ -133,8 +110,8 @@ function NLPModels.objgrad!( get_grad, ) end - nlp.counters.neval_obj +=1 - nlp.counters.neval_grad +=1 + increment!(nlp, :neval_obj) + increment!(nlp, :neval_grad) @cutest_error return f[1], g @@ -157,7 +134,7 @@ function NLPModels.obj(nlp::CUTEstModel, x::AbstractVector) @lencheck nlp.meta.nvar x f = objcons!(nlp, x, nlp.work)[1] if nlp.meta.ncon > 0 - nlp.counters.neval_cons -=1 # does not really count as a constraint eval + decrement!(nlp, :neval_cons) # does not really count as a constraint eval end return f end @@ -165,7 +142,7 @@ end function NLPModels.grad!(nlp::CUTEstModel, x::AbstractVector, g::AbstractVector) @lencheck nlp.meta.nvar x g objgrad!(nlp, x, g) - nlp.counters.neval_obj -=1 # does not really count as a objective eval + decrement!(nlp, :neval_obj) # does not really count as a objective eval return g end @@ -232,8 +209,8 @@ function cons_coord!( get_j, ) @cutest_error - nlp.counters.neval_cons +=1 - nlp.counters.neval_jac +=1 + increment!(nlp, :neval_cons) + increment!(nlp, :neval_jac) return c, rows, cols, vals end @@ -314,7 +291,7 @@ function NLPModels.cons!(nlp::CUTEstModel, x::AbstractVector, c::AbstractVector) @lencheck nlp.meta.nvar x @lencheck nlp.meta.ncon c objcons!(nlp, x, c) - nlp.counters.neval_obj -=1 # does not really count as a objective eval + decrement!(nlp, :neval_obj) # does not really count as a objective eval return c end @@ -324,7 +301,7 @@ function NLPModels.cons_lin!(nlp::CUTEstModel, x::AbstractVector, c::AbstractVec eval_lin_structure!(nlp) coo_prod!(nlp.clinrows, nlp.clincols, nlp.clinvals, x, c) c .+= nlp.blin - nlp.counters.neval_cons_lin +=1 + increment!(nlp, :neval_cons_lin) return c end @@ -345,7 +322,7 @@ function NLPModels.cons_nln!(nlp::CUTEstModel, x::AbstractVector, c::StrideOneVe cifn(Cint[0], Cint[nlp.meta.nvar], Cint[j], x, view(c, k:k)) k += 1 end - nlp.counters.neval_cons_nln +=1 + increment!(nlp, :neval_cons_nln) return c end @@ -483,14 +460,14 @@ function NLPModels.jac_coord!(nlp::CUTEstModel, x::AbstractVector, vals::Abstrac @lencheck nlp.meta.nvar x @lencheck nlp.meta.nnzj vals cons_coord!(nlp, x, nlp.work, nlp.jrows, nlp.jcols, vals) - nlp.counters.neval_cons -=1 # does not really count as a constraint eval + decrement!(nlp, :neval_cons) # does not really count as a constraint eval return vals end function NLPModels.jac_lin_coord!(nlp::CUTEstModel, x::AbstractVector, vals::AbstractVector) @lencheck nlp.meta.nvar x @lencheck nlp.meta.lin_nnzj vals - nlp.counters.neval_jac_lin +=1 + increment!(nlp, :neval_jac_lin) eval_lin_structure!(nlp) vals .= nlp.clinvals return vals @@ -511,7 +488,7 @@ function NLPModels.jac_nln_coord!(nlp::CUTEstModel, x::AbstractVector, vals::Abs end end vals[i:end] .= 0.0 - nlp.counters.neval_jac_nln +=1 + increment!(nlp, :neval_jac_nln) return vals end @@ -555,7 +532,7 @@ function NLPModels.jprod!( ncon, ) @cutest_error - nlp.counters.neval_jprod +=1 + increment!(nlp, :neval_jprod) return jv end @@ -593,8 +570,8 @@ function NLPModels.jprod_nln!( @lencheck nlp.meta.nnln jv jvc = nlp.work jprod!(nlp, x, v, jvc) - nlp.counters.neval_jprod -=1 - nlp.counters.neval_jprod_nln +=1 + decrement!(nlp, :neval_jprod) + increment!(nlp, :neval_jprod_nln) jv .= jvc[nlp.meta.nln] end @@ -606,7 +583,7 @@ function NLPModels.jprod_lin!( ) @lencheck nlp.meta.nvar x v @lencheck nlp.meta.nlin jv - nlp.counters.neval_jprod_lin +=1 + increment!(nlp, :neval_jprod_lin) eval_lin_structure!(nlp) jprod_lin!(nlp, nlp.clinrows, nlp.clincols, nlp.clinvals, v, jv) return jv @@ -652,7 +629,7 @@ function NLPModels.jtprod!( nvar, ) @cutest_error - nlp.counters.neval_jtprod +=1 + increment!(nlp, :neval_jtprod) return jtv end @@ -692,8 +669,8 @@ function NLPModels.jtprod_nln!( _v[nlp.meta.lin] .= 0.0 _v[nlp.meta.nln] = v jtprod!(nlp, x, _v, jtv) - nlp.counters.neval_jtprod -=1 - nlp.counters.neval_jtprod_nln +=1 + decrement!(nlp, :neval_jtprod) + increment!(nlp, :neval_jtprod_nln) return jtv end @@ -705,7 +682,7 @@ function NLPModels.jtprod_lin!( ) @lencheck nlp.meta.nvar x jtv @lencheck nlp.meta.nlin v - nlp.counters.neval_jtprod_lin +=1 + increment!(nlp, :neval_jtprod_lin) eval_lin_structure!(nlp) jtprod_lin!(nlp, nlp.clinrows, nlp.clincols, nlp.clinvals, v, jtv) return jtv @@ -853,7 +830,7 @@ function NLPModels.hess_coord!( nlp.hrows, ) @cutest_error - nlp.counters.neval_hess +=1 + increment!(nlp, :neval_hess) return vals end @@ -914,7 +891,7 @@ function NLPModels.hess_coord!( @cutest_error obj_weight != 1.0 && (vals[:] *= obj_weight) # also ok if obj_weight == 0 and ncon == 0 - nlp.counters.neval_hess +=1 + increment!(nlp, :neval_hess) return vals end @@ -989,7 +966,7 @@ function NLPModels.hprod!( hv, ) @cutest_error - nlp.counters.neval_hprod +=1 + increment!(nlp, :neval_hprod) return hv end @@ -1035,7 +1012,7 @@ function NLPModels.hprod!( @cutest_error obj_weight != 1.0 && (hv[:] *= obj_weight) # also ok if obj_weight == 0 and ncon == 0 - nlp.counters.neval_hprod +=1 + increment!(nlp, :neval_hprod) return hv end