diff --git a/src/julia_interface.jl b/src/julia_interface.jl index 49652175..ebb29d9c 100644 --- a/src/julia_interface.jl +++ b/src/julia_interface.jl @@ -31,7 +31,7 @@ function NLPModels.objcons!( f, c, ) - nlp.counters.neval_cons += 1 + increment!(nlp, :neval_cons) else ccall( dlsym(cutest_lib, :cutest_ufn_), @@ -43,7 +43,7 @@ function NLPModels.objcons!( f, ) end - nlp.counters.neval_obj += 1 + increment!(nlp, :neval_obj) @cutest_error return f[1], c @@ -110,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 @@ -134,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 @@ -142,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 @@ -209,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 @@ -291,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 @@ -301,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 @@ -322,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 @@ -460,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 @@ -488,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 @@ -532,7 +532,7 @@ function NLPModels.jprod!( ncon, ) @cutest_error - nlp.counters.neval_jprod += 1 + increment!(nlp, :neval_jprod) return jv end @@ -570,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 @@ -583,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 @@ -629,7 +629,7 @@ function NLPModels.jtprod!( nvar, ) @cutest_error - nlp.counters.neval_jtprod += 1 + increment!(nlp, :neval_jtprod) return jtv end @@ -669,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 @@ -682,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 @@ -830,7 +830,7 @@ function NLPModels.hess_coord!( nlp.hrows, ) @cutest_error - nlp.counters.neval_hess += 1 + increment!(nlp, :neval_hess) return vals end @@ -891,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 @@ -966,7 +966,7 @@ function NLPModels.hprod!( hv, ) @cutest_error - nlp.counters.neval_hprod += 1 + increment!(nlp, :neval_hprod) return hv end @@ -1012,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