Performance tips
The package ADNLPModels.jl is designed to easily model optimization problems and to allow an efficient access to the NLPModel API. In this tutorial, we will see some tips to ensure the maximum performance of the model.
Use in-place constructor
When dealing with a constrained optimization problem, it is recommended to use in-place constraint functions.
using ADNLPModels, NLPModels
f(x) = sum(x)
x0 = ones(2)
lcon = ucon = ones(1)
c_out(x) = [x[1]]
nlp_out = ADNLPModel(f, x0, c_out, lcon, ucon)
c_in(cx, x) = begin
  cx[1] = x[1]
  return cx
end
nlp_in = ADNLPModel!(f, x0, c_in, lcon, ucon)ADNLPModel - Model with automatic differentiation backend ADModelBackend{
  ForwardDiffADGradient,
  ForwardDiffADHvprod,
  ForwardDiffADJprod,
  ForwardDiffADJtprod,
  SparseADJacobian,
  SparseADHessian,
  ForwardDiffADGHjvprod,
}
  Problem name: Generic
   All variables: ████████████████████ 2      All constraints: ████████████████████ 1     
            free: ████████████████████ 2                 free: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
         low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0              low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           fixed: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                fixed: ████████████████████ 1     
          infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
            nnzh: (100.00% sparsity)   0               linear: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
                                                    nonlinear: ████████████████████ 1     
                                                         nnzj: ( 50.00% sparsity)   1     
  Counters:
             obj: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 grad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 cons: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
        cons_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0             cons_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 jcon: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           jgrad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                  jac: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0              jac_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
         jac_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                jprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0            jprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
       jprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               jtprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0           jtprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
      jtprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 hess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                hprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           jhess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               jhprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
using BenchmarkTools
cx = rand(1)
x = 18 * ones(2)
@btime cons!(nlp_out, x, cx)1-element Vector{Float64}:
 18.0@btime cons!(nlp_in, x, cx)1-element Vector{Float64}:
 18.0The difference between the two increases with the dimension.
Note that the same applies to nonlinear least squares problems.
F(x) = [
    x[1];
    x[1] + x[2]^2;
    sin(x[2]);
    exp(x[1] + 0.5)
]
x0 = ones(2)
nequ = 4
nls_out = ADNLSModel(F, x0, nequ)
F!(Fx, x) = begin
  Fx[1] = x[1]
  Fx[2] = x[1] + x[2]^2
  Fx[3] = sin(x[2])
  Fx[4] = exp(x[1] + 0.5)
  return Fx
end
nls_in = ADNLSModel!(F!, x0, nequ)ADNLSModel - Nonlinear least-squares model with automatic differentiation backend ADModelBackend{
  EmptyADbackend,
  EmptyADbackend,
  EmptyADbackend,
  EmptyADbackend,
  EmptyADbackend,
  EmptyADbackend,
  EmptyADbackend,
  EmptyADbackend,
  ForwardDiffADJprod,
  ForwardDiffADJtprod,
  SparseADJacobian,
  EmptyADbackend,
}
  Problem name: Generic
   All variables: ████████████████████ 2      All constraints: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0        All residuals: ████████████████████ 4     
            free: ████████████████████ 2                 free: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               linear: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0            nonlinear: ████████████████████ 4     
           upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 nnzj: ( 37.50% sparsity)   5     
         low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0              low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 nnzh: (  0.00% sparsity)   3     
           fixed: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                fixed: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
          infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
            nnzh: (  0.00% sparsity)   3               linear: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
                                                    nonlinear: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
                                                         nnzj: (------% sparsity)         
  Counters:
             obj: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 grad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 cons: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
        cons_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0             cons_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 jcon: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           jgrad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                  jac: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0              jac_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
         jac_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                jprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0            jprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
       jprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               jtprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0           jtprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
      jtprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 hess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                hprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           jhess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               jhprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0             residual: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
    jac_residual: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0       jprod_residual: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0      jtprod_residual: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
   hess_residual: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0       jhess_residual: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0       hprod_residual: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
Fx = rand(4)
@btime residual!(nls_out, x, Fx)4-element Vector{Float64}:
  18.0
 342.0
  -0.7509872467716762
   1.0825498775023076e8@btime residual!(nls_in, x, Fx)4-element Vector{Float64}:
  18.0
 342.0
  -0.7509872467716762
   1.0825498775023076e8This phenomenon also extends to related backends.
Fx = rand(4)
v = ones(2)
@btime jprod_residual!(nls_out, x, v, Fx)4-element Vector{Float64}:
  1.0
 37.0
  0.6603167082440802
  1.0825498775023076e8@btime jprod_residual!(nls_in, x, v, Fx)4-element Vector{Float64}:
  1.0
 37.0
  0.6603167082440802
  1.0825498775023076e8Use only the needed backends
It is tempting to define the most generic and efficient ADNLPModel from the start.
using ADNLPModels, NLPModels
f(x) = (x[1] - x[2])^2
x0 = ones(2)
lcon = ucon = ones(1)
c_in(cx, x) = begin
  cx[1] = x[1]
  return cx
end
nlp = ADNLPModel!(f, x0, c_in, lcon, ucon, show_time = true)ADNLPModel - Model with automatic differentiation backend ADModelBackend{
  ForwardDiffADGradient,
  ForwardDiffADHvprod,
  ForwardDiffADJprod,
  ForwardDiffADJtprod,
  SparseADJacobian,
  SparseADHessian,
  ForwardDiffADGHjvprod,
}
  Problem name: Generic
   All variables: ████████████████████ 2      All constraints: ████████████████████ 1     
            free: ████████████████████ 2                 free: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
         low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0              low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           fixed: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                fixed: ████████████████████ 1     
          infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
            nnzh: (  0.00% sparsity)   3               linear: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
                                                    nonlinear: ████████████████████ 1     
                                                         nnzj: ( 50.00% sparsity)   1     
  Counters:
             obj: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 grad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 cons: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
        cons_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0             cons_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 jcon: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           jgrad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                  jac: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0              jac_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
         jac_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                jprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0            jprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
       jprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               jtprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0           jtprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
      jtprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 hess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                hprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           jhess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               jhprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
However, depending on the size of the problem this might time consuming as initializing each backend takes time. Besides, some solvers may not require all the API to solve the problem. For instance, Percival.jl is matrix-free solver in the sense that it only uses jprod, jtprod and hprod.
using Percival
stats = percival(nlp)"Execution stats: first-order stationary"nlp.counters  Counters:
             obj: ████████████████████ 1                 grad: ████████████████████ 1                 cons: ████████████████████ 1     
        cons_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0             cons_nln: ████████████████████ 1                 jcon: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           jgrad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                  jac: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0              jac_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
         jac_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                jprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0            jprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
       jprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               jtprod: ████████████████████ 1           jtprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
      jtprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 hess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                hprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           jhess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               jhprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
Therefore, it is more efficient to avoid preparing Jacobian and Hessian backends in this case.
nlp = ADNLPModel!(f, x0, c_in, lcon, ucon, jacobian_backend = ADNLPModels.EmptyADbackend, hessian_backend = ADNLPModels.EmptyADbackend, show_time = true)ADNLPModel - Model with automatic differentiation backend ADModelBackend{
  ForwardDiffADGradient,
  ForwardDiffADHvprod,
  ForwardDiffADJprod,
  ForwardDiffADJtprod,
  EmptyADbackend,
  EmptyADbackend,
  ForwardDiffADGHjvprod,
}
  Problem name: Generic
   All variables: ████████████████████ 2      All constraints: ████████████████████ 1     
            free: ████████████████████ 2                 free: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
         low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0              low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           fixed: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                fixed: ████████████████████ 1     
          infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
            nnzh: (  0.00% sparsity)   3               linear: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
                                                    nonlinear: ████████████████████ 1     
                                                         nnzj: (  0.00% sparsity)   2     
  Counters:
             obj: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 grad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 cons: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
        cons_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0             cons_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 jcon: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           jgrad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                  jac: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0              jac_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
         jac_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                jprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0            jprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
       jprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               jtprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0           jtprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
      jtprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 hess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                hprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           jhess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               jhprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
or, equivalently, using the matrix_free keyword argument
nlp = ADNLPModel!(f, x0, c_in, lcon, ucon, show_time = true, matrix_free = true)ADNLPModel - Model with automatic differentiation backend ADModelBackend{
  ForwardDiffADGradient,
  ForwardDiffADHvprod,
  ForwardDiffADJprod,
  ForwardDiffADJtprod,
  EmptyADbackend,
  EmptyADbackend,
  ForwardDiffADGHjvprod,
}
  Problem name: Generic
   All variables: ████████████████████ 2      All constraints: ████████████████████ 1     
            free: ████████████████████ 2                 free: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
         low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0              low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           fixed: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                fixed: ████████████████████ 1     
          infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
            nnzh: (  0.00% sparsity)   3               linear: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
                                                    nonlinear: ████████████████████ 1     
                                                         nnzj: (  0.00% sparsity)   2     
  Counters:
             obj: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 grad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 cons: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
        cons_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0             cons_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 jcon: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           jgrad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                  jac: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0              jac_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
         jac_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                jprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0            jprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
       jprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               jtprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0           jtprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
      jtprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 hess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                hprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           jhess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               jhprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
More classic nonlinear optimization solvers like Ipopt.jl, KNITRO.jl, or MadNLP.jl only require the gradient and sparse Jacobians and Hessians. This means that we can set all other backends to ADNLPModels.EmptyADbackend.
nlp = ADNLPModel!(f, x0, c_in, lcon, ucon, jprod_backend = ADNLPModels.EmptyADbackend,
                  jtprod_backend = ADNLPModels.EmptyADbackend, hprod_backend = ADNLPModels.EmptyADbackend,
                  ghjvprod_backend = ADNLPModels.EmptyADbackend, show_time = true)ADNLPModel - Model with automatic differentiation backend ADModelBackend{
  ForwardDiffADGradient,
  EmptyADbackend,
  EmptyADbackend,
  EmptyADbackend,
  SparseADJacobian,
  SparseADHessian,
  EmptyADbackend,
}
  Problem name: Generic
   All variables: ████████████████████ 2      All constraints: ████████████████████ 1     
            free: ████████████████████ 2                 free: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
         low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0              low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           fixed: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                fixed: ████████████████████ 1     
          infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
            nnzh: (  0.00% sparsity)   3               linear: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
                                                    nonlinear: ████████████████████ 1     
                                                         nnzj: ( 50.00% sparsity)   1     
  Counters:
             obj: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 grad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 cons: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
        cons_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0             cons_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 jcon: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           jgrad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                  jac: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0              jac_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
         jac_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                jprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0            jprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
       jprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               jtprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0           jtprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
      jtprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 hess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                hprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           jhess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               jhprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
Benchmarks
This package implements several backends for each method and it is possible to design your own backend as well. Then, one way to choose the most efficient one is to run benchmarks.
using ADNLPModels, NLPModels, OptimizationProblemsThe package OptimizationProblems.jl provides a collection of optimization problems in JuMP and ADNLPModels syntax.
meta = OptimizationProblems.meta;| Row | nvar | variable_nvar | ncon | variable_ncon | minimize | name | has_equalities_only | has_inequalities_only | has_bounds | has_fixed_variables | objtype | contype | best_known_lower_bound | best_known_upper_bound | is_feasible | defined_everywhere | origin | 
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Int64 | Bool | Int64 | Bool | Bool | String | Bool | Bool | Bool | Bool | Symbol | Symbol | Real | Real | Bool? | Bool? | Symbol | |
| 1 | 1 | false | 0 | false | true | AMPGO02 | false | false | false | false | other | unconstrained | -Inf | 0.839498 | true | missing | unknown | 
| 2 | 1 | false | 0 | false | true | AMPGO03 | false | false | false | false | other | unconstrained | -Inf | 2.88961 | true | missing | unknown | 
| 3 | 1 | false | 0 | false | true | AMPGO04 | false | false | false | false | other | unconstrained | -Inf | -2.5666 | true | missing | unknown | 
| 4 | 1 | false | 0 | false | true | AMPGO05 | false | false | false | false | other | unconstrained | -Inf | -0.0 | true | missing | unknown | 
| 5 | 1 | false | 0 | false | true | AMPGO06 | false | false | false | false | other | unconstrained | -Inf | 3.5177e-43 | true | missing | unknown | 
| 6 | 1 | false | 0 | false | true | AMPGO07 | false | false | false | false | other | unconstrained | -Inf | 2.56475 | true | missing | unknown | 
| 7 | 1 | false | 0 | false | true | AMPGO08 | false | false | false | false | other | unconstrained | -Inf | -2.0928 | true | missing | unknown | 
| 8 | 1 | false | 0 | false | true | AMPGO09 | false | false | false | false | other | unconstrained | -Inf | 0.921136 | true | missing | unknown | 
| 9 | 1 | false | 0 | false | true | AMPGO10 | false | false | false | false | other | unconstrained | -Inf | -0.0 | true | missing | unknown | 
| 10 | 1 | false | 0 | false | true | AMPGO11 | false | false | false | false | other | unconstrained | -Inf | -1.0 | true | missing | unknown | 
| 11 | 1 | false | 0 | false | true | AMPGO12 | false | false | false | false | other | unconstrained | -Inf | 1.0 | true | missing | unknown | 
| 12 | 1 | false | 0 | false | true | AMPGO13 | false | false | false | false | other | unconstrained | -1.5874 | -1.5874 | true | missing | unknown | 
| 13 | 1 | false | 0 | false | true | AMPGO14 | false | false | false | false | other | unconstrained | -Inf | -0.0 | true | missing | unknown | 
| 14 | 1 | false | 0 | false | true | AMPGO15 | false | false | false | false | other | unconstrained | -Inf | 2.15385 | true | missing | unknown | 
| 15 | 1 | false | 0 | false | true | AMPGO18 | false | false | false | false | other | unconstrained | -Inf | 4.0 | true | missing | unknown | 
| 16 | 1 | false | 0 | false | true | AMPGO20 | false | false | false | false | other | unconstrained | -Inf | 3.92246e-43 | true | missing | unknown | 
| 17 | 1 | false | 0 | false | true | AMPGO21 | false | false | false | false | other | unconstrained | -Inf | 0.0 | true | missing | unknown | 
| 18 | 1 | false | 0 | false | true | AMPGO22 | false | false | false | false | other | unconstrained | -Inf | 1.0 | true | missing | unknown | 
| 19 | 3 | false | 1 | false | true | BOX2 | true | false | false | false | other | linear | -Inf | 0.942284 | true | missing | unknown | 
| 20 | 3 | false | 0 | false | true | BOX3 | false | false | false | false | other | unconstrained | -Inf | 662.868 | true | missing | unknown | 
| 21 | 1 | false | 0 | false | true | Dus2_1 | false | false | false | false | other | unconstrained | -Inf | 7.38906 | true | missing | unknown | 
| 22 | 1 | false | 0 | false | true | Dus2_3 | false | false | false | false | other | unconstrained | -Inf | 0.972973 | true | missing | unknown | 
| 23 | 1 | false | 0 | false | true | Dus2_9 | false | false | false | false | other | unconstrained | -Inf | 1.0 | true | missing | unknown | 
| 24 | 1 | false | 0 | false | true | Duscube | false | false | false | false | other | unconstrained | -Inf | -108.0 | true | missing | unknown | 
| 25 | 91 | true | 0 | false | true | NZF1 | false | false | false | false | least_squares | unconstrained | -Inf | 34698.4 | true | missing | unknown | 
| 26 | 1 | false | 0 | false | true | Shpak1 | false | false | false | false | other | unconstrained | -Inf | 0.839498 | true | missing | unknown | 
| 27 | 1 | false | 0 | false | true | Shpak2 | false | false | false | false | other | unconstrained | -Inf | -0.747036 | true | missing | unknown | 
| 28 | 1 | false | 0 | false | true | Shpak3 | false | false | false | false | other | unconstrained | -Inf | 2.63055 | true | missing | unknown | 
| 29 | 1 | false | 0 | false | true | Shpak4 | false | false | false | false | other | unconstrained | -Inf | -0.677439 | true | missing | unknown | 
| 30 | 1 | false | 0 | false | true | Shpak5 | false | false | false | false | other | unconstrained | -Inf | -1.00842 | true | missing | unknown | 
| 31 | 1 | false | 0 | false | true | Shpak6 | false | false | false | false | other | unconstrained | -Inf | -1.25667 | true | missing | unknown | 
| 32 | 8 | false | 5 | false | true | aircrfta | true | false | true | true | other | general | -Inf | 0 | true | missing | unknown | 
| 33 | 4 | false | 3 | false | true | allinit | false | false | false | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 34 | 4 | false | 4 | false | true | allinitc | false | false | false | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 35 | 4 | false | 0 | false | true | allinitu | false | false | false | false | other | unconstrained | -Inf | 13.0 | true | missing | unknown | 
| 36 | 2 | false | 3 | false | true | alsotame | false | false | false | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 37 | 3 | false | 15 | false | true | argauss | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 38 | 100 | true | 0 | false | true | arglina | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 39 | 100 | true | 0 | false | true | arglinb | false | false | false | false | least_squares | unconstrained | -Inf | 6.85174e13 | true | missing | unknown | 
| 40 | 100 | true | 0 | false | true | arglinc | false | false | false | false | other | unconstrained | -Inf | 6.38544e13 | true | missing | unknown | 
| 41 | 100 | true | 0 | false | true | argtrig | false | false | false | false | other | unconstrained | -Inf | 0.0 | true | missing | unknown | 
| 42 | 100 | true | 0 | false | true | arwhead | false | false | false | false | other | unconstrained | -Inf | 297.0 | true | missing | unknown | 
| 43 | 49 | false | 15 | false | true | avion2 | true | false | true | false | least_squares | general | -Inf | Inf | missing | missing | unknown | 
| 44 | 3 | false | 0 | false | true | bard | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 45 | 100 | true | 0 | false | true | bdqrtic | false | false | false | false | least_squares | unconstrained | -Inf | 21696.0 | true | missing | unknown | 
| 46 | 2 | false | 0 | false | true | beale | false | false | false | false | least_squares | unconstrained | -Inf | 14.2031 | true | missing | unknown | 
| 47 | 100 | true | 0 | false | true | bearing | false | false | true | true | other | unconstrained | -Inf | 15.0662 | true | missing | unknown | 
| 48 | 3 | false | 0 | false | true | bennett5 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 49 | 6 | false | 0 | false | true | biggs5 | false | false | true | true | other | unconstrained | -Inf | -3.15621 | true | missing | unknown | 
| 50 | 6 | false | 0 | false | true | biggs6 | false | false | false | false | other | unconstrained | -Inf | -3.15621 | true | missing | unknown | 
| 51 | 2 | false | 2 | false | true | booth | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 52 | 2 | false | 0 | false | true | boxbod | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 53 | 1 | false | 1 | false | true | bqp1var | false | true | false | false | other | general | -Inf | 0.3125 | true | missing | unknown | 
| 54 | 450 | false | 360 | false | true | britgas | true | false | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 55 | 100 | true | 0 | false | true | brownal | false | false | false | false | least_squares | unconstrained | -Inf | 0.0 | true | missing | unknown | 
| 56 | 2 | false | 0 | false | true | brownbs | false | false | false | false | least_squares | unconstrained | -Inf | 9.99998e11 | true | missing | unknown | 
| 57 | 4 | false | 0 | false | true | brownden | false | false | false | false | least_squares | unconstrained | -Inf | 7.92669e6 | true | missing | unknown | 
| 58 | 100 | true | 0 | false | true | broyden3d | false | false | false | false | least_squares | unconstrained | -Inf | 0.0 | true | missing | unknown | 
| 59 | 100 | true | 0 | false | true | broydn7d | false | false | false | false | other | unconstrained | -Inf | 274.204 | true | missing | unknown | 
| 60 | 100 | true | 0 | false | true | brybnd | false | false | false | false | least_squares | unconstrained | -Inf | 3600.0 | true | missing | unknown | 
| 61 | 2 | false | 1 | false | true | bt1 | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 62 | 100 | true | 203 | true | true | camshape | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 63 | 99 | true | 32 | true | true | catenary | true | false | true | true | linear | quadratic | -Inf | Inf | missing | missing | academic | 
| 64 | 100 | true | 77 | true | true | chain | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 65 | 100 | true | 0 | false | true | chainwoo | false | false | false | false | other | unconstrained | -Inf | 3.71954e5 | true | missing | unknown | 
| 66 | 96 | true | 96 | true | true | channel | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 67 | 100 | true | 0 | false | true | chnrosnb_mod | false | false | false | false | other | unconstrained | -Inf | 17637.9 | true | missing | unknown | 
| 68 | 3 | false | 0 | false | true | chwirut1 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 69 | 3 | false | 0 | false | true | chwirut2 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 70 | 2 | false | 0 | false | true | cliff | false | false | false | false | other | unconstrained | -Inf | 4.85165e8 | true | missing | unknown | 
| 71 | 99 | true | 64 | true | true | clnlbeam | true | false | true | false | other | general | -Inf | 350.0 | true | missing | unknown | 
| 72 | 100 | true | 0 | false | true | clplatea | false | false | false | false | other | unconstrained | -Inf | 0.0 | true | missing | unknown | 
| 73 | 100 | true | 0 | false | true | clplateb | false | false | false | false | other | unconstrained | -Inf | 0.0 | true | missing | unknown | 
| 74 | 100 | true | 0 | false | true | clplatec | false | false | false | false | other | unconstrained | -Inf | 0.0 | true | missing | unknown | 
| 75 | 100 | true | 50 | true | true | controlinvestment | true | false | true | false | other | general | -Inf | -0.98 | true | missing | unknown | 
| 76 | 100 | true | 0 | false | true | cosine | false | false | false | false | other | unconstrained | -Inf | 86.8807 | true | missing | unknown | 
| 77 | 100 | true | 0 | false | true | cragglvy | false | false | false | false | other | unconstrained | -Inf | 52823.1 | true | missing | unknown | 
| 78 | 100 | true | 0 | false | true | cragglvy2 | false | false | false | false | other | unconstrained | -Inf | 52823.1 | true | missing | unknown | 
| 79 | 100 | true | 0 | false | true | curly | false | false | false | false | other | unconstrained | -Inf | -0.00623722 | true | missing | unknown | 
| 80 | 100 | true | 0 | false | true | curly10 | false | false | false | false | other | unconstrained | -Inf | -0.00623722 | true | missing | unknown | 
| 81 | 100 | true | 0 | false | true | curly20 | false | false | false | false | other | unconstrained | -Inf | -0.0129654 | true | missing | unknown | 
| 82 | 100 | true | 0 | false | true | curly30 | false | false | false | false | other | unconstrained | -Inf | -0.020383 | true | missing | unknown | 
| 83 | 2 | false | 0 | false | true | danwood | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 84 | 99 | true | 0 | false | true | dixmaane | false | false | false | false | other | unconstrained | -Inf | 731.833 | true | missing | unknown | 
| 85 | 99 | true | 0 | false | true | dixmaanf | false | false | false | false | other | unconstrained | -Inf | 1348.42 | true | missing | unknown | 
| 86 | 99 | true | 0 | false | true | dixmaang | false | false | false | false | other | unconstrained | -Inf | 2495.83 | true | missing | unknown | 
| 87 | 99 | true | 0 | false | true | dixmaanh | false | false | false | false | other | unconstrained | -Inf | 4974.25 | true | missing | unknown | 
| 88 | 99 | true | 0 | false | true | dixmaani | false | false | false | false | other | unconstrained | -Inf | 663.646 | true | missing | unknown | 
| 89 | 99 | true | 0 | false | true | dixmaanj | false | false | false | false | other | unconstrained | -Inf | 1281.33 | true | missing | unknown | 
| 90 | 99 | true | 0 | false | true | dixmaank | false | false | false | false | other | unconstrained | -Inf | 2427.65 | true | missing | unknown | 
| 91 | 99 | true | 0 | false | true | dixmaanl | false | false | false | false | other | unconstrained | -Inf | 4903.7 | true | missing | unknown | 
| 92 | 99 | true | 0 | false | true | dixmaanm | false | false | false | false | other | unconstrained | -Inf | 314.313 | true | missing | unknown | 
| 93 | 99 | true | 0 | false | true | dixmaann | false | false | false | false | other | unconstrained | -Inf | 665.66 | true | missing | unknown | 
| 94 | 99 | true | 0 | false | true | dixmaano | false | false | false | false | other | unconstrained | -Inf | 1196.31 | true | missing | unknown | 
| 95 | 99 | true | 0 | false | true | dixmaanp | false | false | false | false | other | unconstrained | -Inf | 2342.52 | true | missing | unknown | 
| 96 | 100 | true | 0 | false | true | dixon3dq | false | false | false | false | least_squares | unconstrained | -Inf | 8.0 | true | missing | unknown | 
| 97 | 100 | true | 0 | false | true | dqdrtic | false | false | false | false | other | unconstrained | -Inf | 177282.0 | true | missing | unknown | 
| 98 | 100 | true | 0 | false | true | dqrtic | false | false | false | false | other | unconstrained | -Inf | 1.85427e9 | true | missing | unknown | 
| 99 | 3 | false | 0 | false | true | eckerle4 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 100 | 100 | true | 0 | false | true | edensch | false | false | false | false | other | unconstrained | -Inf | 1699.0 | true | missing | unknown | 
| 101 | 100 | true | 0 | false | true | eg2 | false | false | false | false | other | unconstrained | -Inf | -83.3056 | true | missing | unknown | 
| 102 | 99 | true | 33 | true | true | elec | true | false | false | false | other | quadratic | -Inf | Inf | missing | missing | unknown | 
| 103 | 100 | true | 0 | false | true | engval1 | false | false | false | false | other | unconstrained | -Inf | 5841.0 | true | missing | unknown | 
| 104 | 9 | false | 0 | false | true | enso | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 105 | 100 | true | 0 | false | true | errinros_mod | false | false | false | false | least_squares | unconstrained | -Inf | 3.13991e5 | true | missing | unknown | 
| 106 | 100 | true | 0 | false | true | extrosnb | false | false | false | false | other | unconstrained | -Inf | 39604.0 | true | missing | unknown | 
| 107 | 100 | true | 0 | false | true | fletcbv2 | false | false | false | false | other | unconstrained | -Inf | -0.513108 | true | missing | unknown | 
| 108 | 100 | true | 0 | false | true | fletcbv3_mod | false | false | false | false | other | unconstrained | -Inf | -0.0187925 | true | missing | unknown | 
| 109 | 100 | true | 0 | false | true | fletchcr | false | false | false | false | other | unconstrained | -Inf | 9900.0 | true | missing | unknown | 
| 110 | 100 | false | 0 | false | true | fminsrf2 | false | false | false | false | other | unconstrained | -Inf | 2504.27 | true | missing | unknown | 
| 111 | 100 | true | 0 | false | true | freuroth | false | false | false | false | least_squares | unconstrained | -Inf | 99556.5 | true | missing | unknown | 
| 112 | 8 | false | 0 | false | true | gauss1 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 113 | 8 | false | 0 | false | true | gauss2 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 114 | 8 | false | 0 | false | true | gauss3 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 115 | 3 | false | 0 | false | true | gaussian | false | false | false | false | least_squares | unconstrained | -Inf | 3.88811e-6 | true | missing | unknown | 
| 116 | 100 | true | 0 | false | true | genhumps | false | false | false | false | other | unconstrained | -Inf | 2.53684e6 | true | missing | unknown | 
| 117 | 100 | true | 0 | false | true | genrose | false | false | false | false | other | unconstrained | -Inf | 405.106 | true | missing | unknown | 
| 118 | 100 | true | 0 | false | true | genrose_nash | false | false | false | false | other | unconstrained | -Inf | 404.126 | true | missing | unknown | 
| 119 | 3 | false | 0 | false | true | gulf | false | false | false | false | least_squares | unconstrained | -Inf | 0.0 | true | missing | unknown | 
| 120 | 7 | false | 0 | false | true | hahn1 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 121 | 3 | false | 0 | false | true | helical | false | false | false | false | other | unconstrained | -Inf | 0.0 | true | missing | unknown | 
| 122 | 98 | true | 68 | true | true | hovercraft1d | true | false | false | false | least_squares | linear | -Inf | Inf | missing | missing | unknown | 
| 123 | 2 | false | 0 | false | true | hs1 | false | false | true | false | other | unconstrained | -Inf | 909.0 | true | missing | unknown | 
| 124 | 2 | false | 1 | false | true | hs10 | false | true | false | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 125 | 7 | false | 4 | false | true | hs100 | false | true | false | false | other | general | -Inf | 714.0 | true | missing | unknown | 
| 126 | 7 | false | 5 | false | true | hs101 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 127 | 7 | false | 5 | false | true | hs102 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 128 | 7 | false | 5 | false | true | hs103 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 129 | 8 | false | 5 | false | true | hs104 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 130 | 8 | false | 1 | false | true | hs105 | false | true | true | false | other | linear | -Inf | Inf | missing | missing | unknown | 
| 131 | 8 | false | 6 | false | true | hs106 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 132 | 9 | false | 6 | false | true | hs107 | true | false | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 133 | 9 | false | 12 | false | true | hs108 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 134 | 9 | false | 9 | false | true | hs109 | false | false | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 135 | 2 | false | 1 | false | true | hs11 | false | true | false | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 136 | 10 | false | 0 | false | true | hs110 | false | false | true | false | other | unconstrained | -Inf | -43.1343 | true | missing | unknown | 
| 137 | 10 | false | 3 | false | true | hs111 | true | false | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 138 | 10 | false | 3 | false | true | hs112 | true | false | true | false | other | linear | -Inf | Inf | missing | missing | unknown | 
| 139 | 10 | false | 8 | false | true | hs113 | false | true | false | false | other | general | -Inf | 753.0 | true | missing | unknown | 
| 140 | 10 | false | 11 | false | true | hs114 | false | false | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 141 | 13 | false | 15 | false | true | hs116 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 142 | 15 | false | 5 | false | true | hs117 | false | true | true | false | other | general | -Inf | 2400.11 | true | missing | unknown | 
| 143 | 15 | false | 17 | false | true | hs118 | false | true | true | false | other | linear | -Inf | 942.716 | true | missing | unknown | 
| 144 | 16 | false | 8 | false | true | hs119 | true | false | true | false | other | linear | -Inf | Inf | missing | missing | unknown | 
| 145 | 2 | false | 1 | false | true | hs12 | false | true | false | false | other | general | -Inf | 0.0 | true | missing | unknown | 
| 146 | 2 | false | 1 | false | true | hs13 | false | true | true | false | least_squares | general | -Inf | Inf | missing | missing | unknown | 
| 147 | 2 | false | 2 | false | true | hs14 | false | false | false | false | least_squares | general | -Inf | Inf | missing | missing | unknown | 
| 148 | 2 | false | 2 | false | true | hs15 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 149 | 2 | false | 2 | false | true | hs16 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 150 | 2 | false | 2 | false | true | hs17 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 151 | 2 | false | 2 | false | true | hs18 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 152 | 2 | false | 2 | false | true | hs19 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 153 | 2 | false | 0 | false | true | hs2 | false | false | true | false | other | unconstrained | -Inf | 909.0 | true | missing | unknown | 
| 154 | 2 | false | 3 | false | true | hs20 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 155 | 2 | false | 1 | false | true | hs21 | false | true | true | false | other | linear | -Inf | Inf | missing | missing | unknown | 
| 156 | 4 | false | 2 | false | true | hs219 | true | false | false | false | linear | general | -1.0 | -1.0 | true | true | unknown | 
| 157 | 2 | false | 2 | false | true | hs22 | false | true | false | false | least_squares | general | -Inf | Inf | missing | missing | unknown | 
| 158 | 2 | false | 1 | false | true | hs220 | true | false | true | false | other | general | 1 | 25000 | true | missing | unknown | 
| 159 | 2 | false | 1 | false | true | hs221 | false | true | true | false | other | general | -1 | -0.25 | true | missing | unknown | 
| 160 | 2 | false | 1 | false | true | hs222 | false | true | true | false | other | general | -1.5 | -1.3 | true | missing | unknown | 
| 161 | 2 | false | 2 | false | true | hs223 | false | true | true | false | other | general | -0.834032 | -0.1 | true | missing | unknown | 
| 162 | 2 | false | 4 | false | true | hs224 | false | true | true | false | other | linear | -304 | -304 | true | missing | unknown | 
| 163 | 2 | false | 5 | false | true | hs225 | false | true | false | false | other | general | 2 | 2 | true | missing | unknown | 
| 164 | 2 | false | 2 | false | true | hs226 | false | true | true | false | other | general | -0.5 | -0.5 | true | missing | unknown | 
| 165 | 2 | false | 2 | false | true | hs227 | false | true | false | false | other | general | 1 | 1 | true | missing | unknown | 
| 166 | 2 | false | 2 | false | true | hs228 | false | true | false | false | other | general | -3 | -3 | true | missing | unknown | 
| 167 | 2 | false | 0 | false | true | hs229 | false | false | true | false | other | unconstrained | 0 | 0 | true | missing | unknown | 
| 168 | 2 | false | 5 | false | true | hs23 | false | true | true | false | least_squares | general | -Inf | Inf | missing | missing | unknown | 
| 169 | 2 | false | 2 | false | true | hs230 | false | true | false | false | other | general | 0.375 | 0.375 | true | missing | unknown | 
| 170 | 2 | false | 2 | false | true | hs231 | false | true | false | false | other | linear | 0 | 0 | true | missing | unknown | 
| 171 | 2 | false | 3 | false | true | hs232 | false | true | true | false | other | linear | -1 | -1 | true | missing | unknown | 
| 172 | 2 | false | 1 | false | true | hs233 | false | true | false | false | other | unconstrained | 0 | 0 | true | missing | unknown | 
| 173 | 2 | false | 1 | false | true | hs234 | false | true | true | false | other | general | -0.8 | -0.8 | true | missing | unknown | 
| 174 | 3 | false | 1 | false | true | hs235 | true | false | false | false | other | general | 0.04 | 0.04 | true | missing | unknown | 
| 175 | 2 | false | 2 | false | true | hs236 | false | true | true | false | other | general | -58.9034 | -58.9034 | true | missing | unknown | 
| 176 | 2 | false | 3 | false | true | hs237 | false | true | true | false | other | general | -58.9034 | -58.9034 | true | missing | unknown | 
| 177 | 2 | false | 3 | false | true | hs238 | false | true | true | false | other | general | -58.9034 | -58.9034 | true | missing | unknown | 
| 178 | 2 | false | 1 | false | true | hs239 | false | true | true | false | other | general | -58.9034 | -58.9034 | true | missing | unknown | 
| 179 | 2 | false | 2 | false | true | hs24 | false | true | true | false | other | linear | -Inf | -0.0133646 | true | missing | unknown | 
| 180 | 3 | false | 0 | false | true | hs240 | false | false | false | false | other | unconstrained | 0 | 0 | true | missing | unknown | 
| 181 | 3 | false | 0 | false | true | hs241 | false | false | false | false | other | unconstrained | 0 | 0 | true | missing | unknown | 
| 182 | 3 | false | 0 | false | true | hs242 | false | false | true | false | other | unconstrained | 0 | 0 | true | missing | unknown | 
| 183 | 3 | false | 0 | false | true | hs243 | false | false | false | false | other | unconstrained | 0.7966 | 0.7966 | true | missing | unknown | 
| 184 | 3 | false | 0 | false | true | hs244 | false | false | false | false | other | unconstrained | 0 | 0 | true | missing | unknown | 
| 185 | 3 | false | 0 | false | true | hs245 | false | false | false | false | other | unconstrained | 0 | 0 | true | missing | unknown | 
| 186 | 3 | false | 0 | false | true | hs246 | false | false | false | false | other | unconstrained | 0 | 0 | true | missing | unknown | 
| 187 | 3 | false | 2 | false | true | hs248 | false | false | false | false | other | general | -0.8 | -0.8 | true | missing | unknown | 
| 188 | 3 | false | 1 | false | true | hs249 | false | true | true | false | other | general | 1 | 1 | true | missing | unknown | 
| 189 | 3 | false | 0 | false | true | hs25 | false | false | true | false | other | unconstrained | -Inf | 32.835 | true | missing | unknown | 
| 190 | 3 | false | 2 | false | true | hs250 | false | true | true | false | other | linear | -3300 | -3300 | true | missing | unknown | 
| 191 | 3 | false | 1 | false | true | hs251 | false | true | true | false | other | linear | -3456 | -3456 | true | missing | unknown | 
| 192 | 3 | false | 1 | false | true | hs252 | true | false | false | false | other | unconstrained | 0.04 | 0.04 | true | missing | unknown | 
| 193 | 3 | false | 1 | false | true | hs253 | false | true | true | false | other | linear | 87.3794 | 87.3794 | true | missing | unknown | 
| 194 | 3 | false | 2 | false | true | hs254 | true | false | true | false | other | general | -1.73205 | -1.73205 | true | missing | unknown | 
| 195 | 4 | false | 0 | false | true | hs255 | false | false | false | false | other | unconstrained | 0 | 0 | true | missing | unknown | 
| 196 | 4 | false | 0 | false | true | hs256 | false | false | false | false | other | unconstrained | 0 | 0 | true | missing | unknown | 
| 197 | 4 | false | 0 | false | true | hs257 | false | false | true | false | other | unconstrained | 0 | 0 | true | missing | unknown | 
| 198 | 4 | false | 0 | false | true | hs258 | false | false | false | false | other | unconstrained | 0 | 0 | true | missing | unknown | 
| 199 | 4 | false | 0 | false | true | hs259 | false | false | false | false | other | unconstrained | 0 | 0 | true | missing | unknown | 
| 200 | 3 | false | 1 | false | true | hs26 | true | false | false | false | other | general | -Inf | 21.16 | true | missing | unknown | 
| 201 | 4 | false | 0 | false | true | hs260 | false | false | false | false | other | unconstrained | 0 | 0 | true | missing | unknown | 
| 202 | 4 | false | 0 | false | true | hs261 | false | false | false | false | other | unconstrained | 0 | 0 | true | missing | unknown | 
| 203 | 4 | false | 4 | false | true | hs262 | false | false | true | false | other | linear | -10 | -10 | true | missing | unknown | 
| 204 | 4 | false | 4 | false | true | hs263 | false | false | false | false | other | general | -1 | -1 | true | missing | unknown | 
| 205 | 4 | false | 3 | false | true | hs264 | false | true | false | false | other | general | -44 | -44 | true | missing | unknown | 
| 206 | 4 | false | 2 | false | true | hs265 | true | false | true | false | other | linear | 0.974747 | 0.974747 | true | missing | unknown | 
| 207 | 3 | false | 1 | false | true | hs27 | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 208 | 3 | false | 1 | false | true | hs28 | true | false | false | false | least_squares | linear | -Inf | 13.0 | true | missing | unknown | 
| 209 | 3 | false | 1 | false | true | hs29 | false | true | false | false | other | general | -Inf | -1.0 | true | missing | unknown | 
| 210 | 2 | false | 0 | false | true | hs3 | false | false | true | false | other | unconstrained | -Inf | 1.00081 | true | missing | unknown | 
| 211 | 3 | false | 1 | false | true | hs30 | false | true | true | false | least_squares | general | -Inf | 3.0 | true | missing | unknown | 
| 212 | 3 | false | 1 | false | true | hs31 | false | true | true | false | other | general | -Inf | 19.0 | true | missing | unknown | 
| 213 | 2 | false | 1 | false | true | hs316 | true | false | false | false | quadratic | quadratic | -Inf | Inf | true | missing | academic | 
| 214 | 2 | false | 1 | false | true | hs317 | true | false | false | false | quadratic | quadratic | -Inf | Inf | true | missing | academic | 
| 215 | 2 | false | 1 | false | true | hs318 | true | false | false | false | quadratic | quadratic | -Inf | Inf | true | missing | academic | 
| 216 | 2 | false | 1 | false | true | hs319 | true | false | false | false | quadratic | quadratic | -Inf | Inf | true | missing | academic | 
| 217 | 3 | false | 2 | false | true | hs32 | false | false | true | false | other | general | -Inf | 7.2 | true | missing | unknown | 
| 218 | 2 | false | 1 | false | true | hs320 | true | false | false | false | quadratic | quadratic | -Inf | Inf | true | missing | academic | 
| 219 | 2 | false | 1 | false | true | hs321 | true | false | false | false | quadratic | quadratic | -Inf | Inf | true | missing | academic | 
| 220 | 2 | false | 1 | false | true | hs322 | true | false | false | false | quadratic | quadratic | -Inf | Inf | true | missing | academic | 
| 221 | 3 | false | 2 | false | true | hs33 | false | true | true | false | other | general | -Inf | -3.0 | true | missing | unknown | 
| 222 | 3 | false | 2 | false | true | hs34 | false | true | true | false | other | general | -Inf | 0.0 | true | missing | unknown | 
| 223 | 3 | false | 1 | false | true | hs35 | false | true | true | false | other | linear | -Inf | 2.25 | true | missing | unknown | 
| 224 | 3 | false | 1 | false | true | hs36 | false | true | true | false | other | linear | -Inf | -1000.0 | true | missing | unknown | 
| 225 | 3 | false | 1 | false | true | hs37 | false | true | true | false | other | linear | -Inf | -1000.0 | true | missing | unknown | 
| 226 | 10 | false | 3 | false | true | hs378 | true | false | false | false | other | general | -Inf | Inf | true | missing | academic | 
| 227 | 4 | false | 0 | false | true | hs38 | false | false | true | false | other | unconstrained | -Inf | 19192.0 | true | missing | unknown | 
| 228 | 4 | false | 2 | false | true | hs39 | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 229 | 2 | false | 0 | false | true | hs4 | false | false | true | false | other | unconstrained | -Inf | 3.32357 | true | missing | unknown | 
| 230 | 4 | false | 3 | false | true | hs40 | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 231 | 4 | false | 1 | false | true | hs41 | true | false | true | false | other | linear | -Inf | Inf | missing | missing | unknown | 
| 232 | 4 | false | 2 | false | true | hs42 | true | false | false | false | least_squares | general | -Inf | Inf | missing | missing | unknown | 
| 233 | 4 | false | 3 | false | true | hs43 | false | true | false | false | other | general | -Inf | 0.0 | true | missing | unknown | 
| 234 | 4 | false | 6 | false | true | hs44 | false | true | true | false | other | linear | -Inf | 0.0 | true | missing | unknown | 
| 235 | 5 | false | 0 | false | true | hs45 | false | false | true | false | other | unconstrained | -Inf | 1.73333 | true | missing | unknown | 
| 236 | 5 | false | 2 | false | true | hs46 | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 237 | 5 | false | 3 | false | true | hs47 | true | false | false | false | other | general | -Inf | 20.7381 | true | missing | unknown | 
| 238 | 5 | false | 2 | false | true | hs48 | true | false | false | false | least_squares | linear | -Inf | 84.0 | true | missing | unknown | 
| 239 | 5 | false | 2 | false | true | hs49 | true | false | false | false | other | linear | -Inf | 266.0 | true | missing | unknown | 
| 240 | 2 | false | 0 | false | true | hs5 | false | false | true | false | other | unconstrained | -Inf | 1.0 | true | missing | unknown | 
| 241 | 5 | false | 3 | false | true | hs50 | true | false | false | false | other | linear | -Inf | 7516.0 | true | missing | unknown | 
| 242 | 5 | false | 3 | false | true | hs51 | true | false | false | false | least_squares | linear | -Inf | 8.5 | true | missing | unknown | 
| 243 | 5 | false | 3 | false | true | hs52 | true | false | false | false | least_squares | linear | -Inf | Inf | missing | missing | unknown | 
| 244 | 5 | false | 3 | false | true | hs53 | true | false | true | false | least_squares | linear | -Inf | Inf | missing | missing | unknown | 
| 245 | 6 | false | 1 | false | true | hs54 | true | false | true | false | other | linear | -Inf | Inf | missing | missing | unknown | 
| 246 | 6 | false | 6 | false | true | hs55 | true | false | true | false | other | linear | -Inf | Inf | missing | missing | unknown | 
| 247 | 7 | false | 4 | false | true | hs56 | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 248 | 2 | false | 1 | false | true | hs57 | false | true | true | false | least_squares | general | -Inf | 0.0307986 | true | missing | unknown | 
| 249 | 2 | false | 3 | false | true | hs59 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 250 | 2 | false | 1 | false | true | hs6 | true | false | false | false | least_squares | general | -Inf | Inf | missing | missing | unknown | 
| 251 | 3 | false | 1 | false | true | hs60 | true | false | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 252 | 3 | false | 2 | false | true | hs61 | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 253 | 3 | false | 1 | false | true | hs62 | true | false | true | false | other | linear | -Inf | Inf | missing | missing | unknown | 
| 254 | 3 | false | 2 | false | true | hs63 | true | false | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 255 | 3 | false | 1 | false | true | hs64 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 256 | 3 | false | 1 | false | true | hs65 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 257 | 3 | false | 2 | false | true | hs66 | false | true | true | false | other | general | -Inf | 0.58 | true | missing | unknown | 
| 258 | 4 | false | 2 | false | true | hs68 | true | false | true | false | other | general | -Inf | Inf | true | missing | unknown | 
| 259 | 4 | false | 2 | false | true | hs69 | true | false | true | false | other | general | -Inf | Inf | true | missing | unknown | 
| 260 | 2 | false | 1 | false | true | hs7 | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 261 | 4 | false | 1 | false | true | hs70 | false | true | true | false | other | general | -Inf | 0.987859 | true | missing | unknown | 
| 262 | 4 | false | 2 | false | true | hs71 | false | false | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 263 | 4 | false | 2 | false | true | hs72 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 264 | 4 | false | 3 | false | true | hs73 | false | false | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 265 | 4 | false | 4 | false | true | hs74 | false | false | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 266 | 4 | false | 4 | false | true | hs75 | false | false | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 267 | 4 | false | 3 | false | true | hs76 | false | true | true | false | other | linear | -Inf | -1.25 | true | missing | unknown | 
| 268 | 5 | false | 2 | false | true | hs77 | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 269 | 5 | false | 3 | false | true | hs78 | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 270 | 5 | false | 3 | false | true | hs79 | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 271 | 2 | false | 2 | false | true | hs8 | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 272 | 5 | false | 3 | false | true | hs80 | true | false | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 273 | 5 | false | 3 | false | true | hs81 | true | false | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 274 | 5 | false | 3 | false | true | hs83 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 275 | 5 | false | 3 | false | true | hs84 | false | true | true | false | other | general | -Inf | -2.35124e6 | true | missing | unknown | 
| 276 | 5 | false | 10 | false | true | hs86 | false | true | true | false | other | linear | -Inf | 20.0 | true | missing | unknown | 
| 277 | 6 | false | 4 | false | true | hs87 | true | false | true | false | other | general | -Inf | Inf | true | missing | unknown | 
| 278 | 2 | false | 1 | false | true | hs9 | true | false | false | false | other | linear | -Inf | 0.0 | true | missing | unknown | 
| 279 | 6 | false | 2 | false | true | hs93 | false | true | true | false | other | general | -Inf | 137.066 | true | missing | unknown | 
| 280 | 6 | false | 4 | false | true | hs95 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 281 | 6 | false | 4 | false | true | hs96 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 282 | 6 | false | 4 | false | true | hs97 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 283 | 6 | false | 4 | false | true | hs98 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 284 | 7 | false | 2 | false | true | hs99 | true | false | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 285 | 100 | true | 0 | false | true | indef_mod | false | false | false | false | other | unconstrained | -Inf | 91.6655 | true | missing | unknown | 
| 286 | 100 | true | 0 | false | true | integreq | false | false | false | false | least_squares | unconstrained | -Inf | 0.0 | true | missing | unknown | 
| 287 | 2 | false | 0 | false | true | jennrichsampson | false | false | false | false | least_squares | unconstrained | -Inf | 4171.31 | true | missing | unknown | 
| 288 | 5 | false | 0 | false | true | kirby2 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 289 | 4 | false | 0 | false | true | kowosb | false | false | false | false | least_squares | unconstrained | -Inf | 0.0264978 | true | missing | unknown | 
| 290 | 6 | false | 0 | false | true | lanczos1 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 291 | 6 | false | 0 | false | true | lanczos2 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 292 | 6 | false | 0 | false | true | lanczos3 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 293 | 100 | true | 0 | false | true | liarwhd | false | false | false | false | other | unconstrained | -Inf | 58500.0 | true | missing | unknown | 
| 294 | 15 | false | 11 | false | true | lincon | false | false | false | false | other | linear | -Inf | Inf | missing | missing | unknown | 
| 295 | 2 | false | 2 | false | true | linsv | false | true | false | false | other | linear | -Inf | Inf | missing | missing | unknown | 
| 296 | 111 | true | 40 | true | true | marine | true | false | true | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 297 | 3 | false | 0 | false | true | meyer3 | false | false | false | false | least_squares | unconstrained | -Inf | 1.69361e9 | true | missing | unknown | 
| 298 | 2 | false | 2 | false | true | mgh01feas | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown | 
| 299 | 4 | false | 0 | false | true | mgh09 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 300 | 3 | false | 0 | false | true | mgh10 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 301 | 5 | false | 0 | false | true | mgh17 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 302 | 2 | false | 0 | false | true | misra1a | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 303 | 2 | false | 0 | false | true | misra1b | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 304 | 2 | false | 0 | false | true | misra1c | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 305 | 2 | false | 0 | false | true | misra1d | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 306 | 100 | true | 0 | false | true | morebv | false | false | false | false | least_squares | unconstrained | -Inf | 0.500942 | true | missing | unknown | 
| 307 | 2 | false | 0 | false | true | nasty | false | false | false | false | other | unconstrained | -Inf | 0.5 | true | missing | unknown | 
| 308 | 100 | true | 0 | false | true | ncb20 | false | false | false | false | other | unconstrained | -Inf | 182.002 | true | missing | unknown | 
| 309 | 100 | true | 0 | false | true | ncb20b | false | false | false | false | other | unconstrained | -Inf | 200.0 | true | missing | unknown | 
| 310 | 3 | false | 0 | false | true | nelson | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 311 | 100 | true | 0 | false | true | noncvxu2 | false | false | false | false | other | unconstrained | -Inf | 2.63975e6 | true | missing | unknown | 
| 312 | 100 | true | 0 | false | true | noncvxun | false | false | false | false | other | unconstrained | -Inf | 2.72701e6 | true | missing | unknown | 
| 313 | 100 | true | 0 | false | true | nondia | false | false | false | false | other | unconstrained | -Inf | 39604.0 | true | missing | unknown | 
| 314 | 100 | true | 0 | false | true | nondquar | false | false | false | false | other | unconstrained | -Inf | 106.0 | true | missing | unknown | 
| 315 | 5 | false | 0 | false | true | osborne1 | false | false | false | false | least_squares | unconstrained | -Inf | 7.06876 | true | missing | unknown | 
| 316 | 11 | false | 0 | false | true | osborne2 | false | false | false | false | least_squares | unconstrained | -Inf | 2.09342 | true | missing | unknown | 
| 317 | 8 | false | 0 | false | true | palmer1c | false | false | false | false | least_squares | unconstrained | -Inf | 3.45295e8 | true | missing | unknown | 
| 318 | 7 | false | 0 | false | true | palmer1d | false | false | false | false | least_squares | unconstrained | -Inf | 2.87266e7 | true | missing | unknown | 
| 319 | 8 | false | 0 | false | true | palmer2c | false | false | false | false | least_squares | unconstrained | -Inf | 2.6894e7 | true | missing | unknown | 
| 320 | 8 | false | 0 | false | true | palmer3c | false | false | false | false | least_squares | unconstrained | -Inf | 8.12197e6 | true | missing | unknown | 
| 321 | 8 | false | 0 | false | true | palmer4c | false | false | false | false | least_squares | unconstrained | -Inf | 8.09445e6 | true | missing | unknown | 
| 322 | 6 | false | 0 | false | true | palmer5c | false | false | false | false | least_squares | unconstrained | -Inf | 25495.0 | true | missing | unknown | 
| 323 | 4 | false | 0 | false | true | palmer5d | false | false | false | false | least_squares | unconstrained | -Inf | 22262.6 | true | missing | unknown | 
| 324 | 8 | false | 0 | false | true | palmer6c | false | false | false | false | least_squares | unconstrained | -Inf | 7.72166e5 | true | missing | unknown | 
| 325 | 8 | false | 0 | false | true | palmer7c | false | false | false | false | least_squares | unconstrained | -Inf | 3.20513e6 | true | missing | unknown | 
| 326 | 8 | false | 0 | false | true | palmer8c | false | false | false | false | least_squares | unconstrained | -Inf | 850271.0 | true | missing | unknown | 
| 327 | 100 | true | 0 | false | true | penalty1 | false | false | false | false | least_squares | unconstrained | -Inf | 1.0 | true | missing | unknown | 
| 328 | 100 | true | 0 | false | true | penalty2 | false | false | false | false | other | unconstrained | -Inf | 1.68848e6 | true | missing | unknown | 
| 329 | 100 | true | 0 | false | true | penalty3 | false | false | false | false | other | unconstrained | -Inf | 1.00639e8 | true | missing | unknown | 
| 330 | 100 | true | 50 | true | true | polygon | false | false | true | false | other | linear | -Inf | Inf | false | missing | unknown | 
| 331 | 100 | true | 50 | true | true | polygon1 | false | false | true | false | other | linear | -Inf | Inf | false | missing | unknown | 
| 332 | 100 | true | 1 | false | true | polygon2 | true | false | true | false | other | linear | -Inf | Inf | false | missing | unknown | 
| 333 | 100 | true | 100 | true | true | polygon3 | false | true | false | false | other | general | -Inf | -0.0 | true | missing | unknown | 
| 334 | 2 | false | 0 | false | true | powellbs | false | false | false | false | other | unconstrained | -Inf | 0.567631 | true | missing | unknown | 
| 335 | 100 | true | 0 | false | true | powellsg | false | false | false | false | other | unconstrained | -Inf | 5375.0 | true | missing | unknown | 
| 336 | 100 | true | 0 | false | true | power | false | false | false | false | least_squares | unconstrained | -Inf | 2.55025e7 | true | missing | unknown | 
| 337 | 100 | true | 0 | false | true | quartc | false | false | false | false | other | unconstrained | -Inf | 1.85427e9 | true | missing | unknown | 
| 338 | 3 | false | 0 | false | true | rat42 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 339 | 4 | false | 0 | false | true | rat43 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 340 | 109 | true | 102 | true | true | robotarm | false | false | true | true | other | general | -Inf | Inf | missing | missing | unknown | 
| 341 | 2 | false | 0 | false | true | rosenbrock | false | false | false | false | other | unconstrained | -Inf | 32.3086 | true | missing | unknown | 
| 342 | 4 | false | 0 | false | true | rozman1 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 343 | 100 | true | 0 | false | true | sbrybnd | false | false | false | false | least_squares | unconstrained | -Inf | 1568.0 | true | missing | unknown | 
| 344 | 100 | true | 0 | false | true | schmvett | false | false | false | false | other | unconstrained | -Inf | -189.068 | true | missing | unknown | 
| 345 | 100 | true | 0 | false | true | scosine | false | false | false | false | other | unconstrained | -Inf | 86.8807 | true | missing | unknown | 
| 346 | 100 | true | 0 | false | true | sinquad | false | false | false | false | other | unconstrained | -Inf | 0.6561 | true | missing | unknown | 
| 347 | 100 | true | 0 | false | true | sparsine | false | false | false | false | other | unconstrained | -Inf | 20893.3 | true | missing | unknown | 
| 348 | 100 | true | 0 | false | true | sparsqur | false | false | false | false | other | unconstrained | -Inf | 1420.31 | true | missing | unknown | 
| 349 | 100 | true | 0 | false | true | spmsrtls | false | false | false | false | least_squares | unconstrained | -Inf | 49.3239 | true | missing | unknown | 
| 350 | 100 | true | 0 | false | true | srosenbr | false | false | false | false | other | unconstrained | -Inf | 1210.0 | true | missing | unknown | 
| 351 | 600 | true | 44 | true | true | structural | false | false | true | false | other | linear | -Inf | Inf | missing | missing | unknown | 
| 352 | 15 | false | 4 | false | true | tetra | false | true | true | true | other | general | -Inf | Inf | missing | missing | unknown | 
| 353 | 12597 | false | 19222 | false | true | tetra_duct12 | false | true | true | true | other | general | -Inf | 23246.1 | true | missing | unknown | 
| 354 | 6417 | false | 9000 | false | true | tetra_duct15 | false | true | true | true | other | general | -Inf | 10890.9 | true | missing | unknown | 
| 355 | 3201 | false | 4104 | false | true | tetra_duct20 | false | true | true | true | other | general | -Inf | 4959.8 | true | missing | unknown | 
| 356 | 4011 | false | 4847 | false | true | tetra_foam5 | false | true | true | true | other | general | -Inf | 6497.1 | true | missing | unknown | 
| 357 | 2598 | false | 3116 | false | true | tetra_gear | false | true | true | true | other | general | -Inf | 4256.38 | true | missing | unknown | 
| 358 | 3570 | false | 4675 | false | true | tetra_hook | false | true | true | true | other | general | -Inf | 6157.14 | true | missing | unknown | 
| 359 | 30 | false | 0 | false | true | threepk | false | false | true | false | other | unconstrained | -Inf | 20236.5 | true | missing | unknown | 
| 360 | 7 | false | 0 | false | true | thurber | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 361 | 100 | true | 0 | false | true | tointgss | false | false | false | false | other | unconstrained | -Inf | 891.608 | true | missing | unknown | 
| 362 | 100 | true | 0 | false | true | tquartic | false | false | false | false | least_squares | unconstrained | -Inf | 0.81 | true | missing | unknown | 
| 363 | 8 | false | 3 | false | true | triangle | false | true | true | true | other | general | -Inf | 11.328 | true | missing | unknown | 
| 364 | 2244 | false | 1896 | false | true | triangle_deer | false | true | true | true | other | general | -Inf | 2014.34 | true | missing | unknown | 
| 365 | 1366 | false | 1182 | false | true | triangle_pacman | false | true | true | true | other | general | -Inf | 1316.28 | true | missing | unknown | 
| 366 | 4444 | false | 4025 | false | true | triangle_turtle | false | true | true | true | other | general | -Inf | 4467.58 | true | missing | unknown | 
| 367 | 100 | true | 0 | false | true | tridia | false | false | false | false | other | unconstrained | -Inf | 5049.0 | true | missing | unknown | 
| 368 | 100 | true | 0 | false | true | vardim | false | false | false | false | other | unconstrained | -Inf | 1.31058e14 | true | missing | unknown | 
| 369 | 8 | false | 0 | false | true | vibrbeam | false | false | false | false | least_squares | unconstrained | -Inf | 8231.28 | true | missing | unknown | 
| 370 | 31 | false | 0 | false | true | watson | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown | 
| 371 | 100 | true | 0 | false | true | woods | false | false | false | false | other | unconstrained | -Inf | 180451.0 | true | missing | unknown | 
| 372 | 3 | false | 3 | false | true | zangwil3 | true | false | false | false | other | linear | -Inf | Inf | missing | missing | unknown | 
We select the problems that are scalable, so that there size can be modified. By default, the size is close to 100.
scalable_problems = meta[(meta.variable_nvar .== true) .& (meta.ncon .> 0), :name]15-element Vector{String}:
 "camshape"
 "catenary"
 "chain"
 "channel"
 "clnlbeam"
 "controlinvestment"
 "elec"
 "hovercraft1d"
 "marine"
 "polygon"
 "polygon1"
 "polygon2"
 "polygon3"
 "robotarm"
 "structural"using NLPModelsJuMP
list_backends = Dict(
  :forward => ADNLPModels.ForwardDiffADGradient,
  :reverse => ADNLPModels.ReverseDiffADGradient,
)Dict{Symbol, DataType} with 2 entries:
  :reverse => ReverseDiffADGradient
  :forward => ForwardDiffADGradientusing DataFrames
nprob = length(scalable_problems)
stats = Dict{Symbol, DataFrame}()
for back in union(keys(list_backends), [:jump])
  stats[back] = DataFrame("name" => scalable_problems,
                 "time" => zeros(nprob),
                 "allocs" => zeros(Int, nprob))
endusing BenchmarkTools
nscal = 1000
for name in scalable_problems
  n = eval(Meta.parse("OptimizationProblems.get_" * name * "_nvar(n = $(nscal))"))
  m = eval(Meta.parse("OptimizationProblems.get_" * name * "_ncon(n = $(nscal))"))
  @info " $(name) with $n vars and $m cons"
  global x = ones(n)
  global g = zeros(n)
  global pb = Meta.parse(name)
  global nlp = MathOptNLPModel(OptimizationProblems.PureJuMP.eval(pb)(n = nscal))
  b = @benchmark grad!(nlp, x, g)
  stats[:jump][stats[:jump].name .== name, :time] = [median(b.times)]
  stats[:jump][stats[:jump].name .== name, :allocs] = [median(b.allocs)]
  for back in keys(list_backends)
    nlp = OptimizationProblems.ADNLPProblems.eval(pb)(n = nscal, gradient_backend = list_backends[back], matrix_free = true)
    b = @benchmark grad!(nlp, x, g)
    stats[back][stats[back].name .== name, :time] = [median(b.times)]
    stats[back][stats[back].name .== name, :allocs] = [median(b.allocs)]
  end
end[ Info:  camshape with 1000 vars and 2003 cons
[ Info:  catenary with 999 vars and 332 cons
┌ Warning: catenary: number of variables adjusted to be a multiple of 3
└ @ OptimizationProblems.PureJuMP ~/.julia/packages/OptimizationProblems/9qr9C/src/PureJuMP/catenary.jl:20
┌ Warning: catenary: number of variables adjusted to be greater or equal to 6
└ @ OptimizationProblems.PureJuMP ~/.julia/packages/OptimizationProblems/9qr9C/src/PureJuMP/catenary.jl:22
┌ Warning: catenary: number of variables adjusted to be a multiple of 3
└ @ OptimizationProblems.ADNLPProblems ~/.julia/packages/OptimizationProblems/9qr9C/src/ADNLPProblems/catenary.jl:4
┌ Warning: catenary: number of variables adjusted to be greater or equal to 6
└ @ OptimizationProblems.ADNLPProblems ~/.julia/packages/OptimizationProblems/9qr9C/src/ADNLPProblems/catenary.jl:6
┌ Warning: catenary: number of variables adjusted to be a multiple of 3
└ @ OptimizationProblems.ADNLPProblems ~/.julia/packages/OptimizationProblems/9qr9C/src/ADNLPProblems/catenary.jl:4
┌ Warning: catenary: number of variables adjusted to be greater or equal to 6
└ @ OptimizationProblems.ADNLPProblems ~/.julia/packages/OptimizationProblems/9qr9C/src/ADNLPProblems/catenary.jl:6
[ Info:  chain with 1000 vars and 752 cons
[ Info:  channel with 1000 vars and 1000 cons
[ Info:  clnlbeam with 999 vars and 664 cons
[ Info:  controlinvestment with 1000 vars and 500 cons
[ Info:  elec with 999 vars and 333 cons
[ Info:  hovercraft1d with 998 vars and 668 cons
[ Info:  marine with 1007 vars and 488 cons
[ Info:  polygon with 1000 vars and 125251 cons
[ Info:  polygon1 with 1000 vars and 500 cons
[ Info:  polygon2 with 1000 vars and 1 cons
[ Info:  polygon3 with 1000 vars and 1000 cons
[ Info:  robotarm with 1009 vars and 1002 cons
[ Info:  structural with 3540 vars and 3652 consusing Plots, SolverBenchmark
costnames = ["median time (in ns)", "median allocs"]
costs = [
  df -> df.time,
  df -> df.allocs,
]
gr()
profile_solvers(stats, costs, costnames)