Benchmarks

CUTEst benchmark

With a JSO-compliant solver, such as Percival, we can run the solver on a set of problems, explore the results, and compare to other JSO-compliant solvers using specialized benchmark tools. We are following here the tutorial in SolverBenchmark.jl to run benchmarks on JSO-compliant solvers.

using CUTEst
 Downloading artifact: sifcollection

To test the implementation of Percival, we use the package CUTEst.jl, which implements CUTEstModel an instance of AbstractNLPModel.

using SolverBenchmark

Let us select problems from CUTEst with a maximum of 100 variables or constraints. After removing problems with fixed variables, examples with a constant objective, and infeasibility residuals.

_pnames = select_sif_problems(
  max_var = 100,
  min_con = 1,
  max_con = 100,
  only_free_var = true,
  objtype = 3:6
)

#Remove all the problems ending by NE as Ipopt cannot handle them.
pnamesNE = _pnames[findall(x->occursin(r"NE\b", x), _pnames)]
pnames = setdiff(_pnames, pnamesNE)
cutest_problems = (CUTEstModel(p) for p in pnames)

length(cutest_problems) # number of problems
96

We compare here Percival with Ipopt (Wächter, A., & Biegler, L. T. (2006). On the implementation of an interior-point filter line-search algorithm for large-scale nonlinear programming. Mathematical programming, 106(1), 25-57.), via the NLPModelsIpopt.jl thin wrapper, with Percival on a subset of CUTEst problems.

using Percival, NLPModelsIpopt

To make stopping conditions comparable, we set Ipopt's parameters dual_inf_tol=Inf, constr_viol_tol=Inf and compl_inf_tol=Inf to disable additional stopping conditions related to those tolerances, acceptable_iter=0 to disable the search for an acceptable point.

#Same time limit for all the solvers
max_time = 1200. #20 minutes
tol = 1e-5

solvers = Dict(
  :ipopt => nlp -> ipopt(
    nlp,
    print_level = 0,
    dual_inf_tol = Inf,
    constr_viol_tol = Inf,
    compl_inf_tol = Inf,
    acceptable_iter = 0,
    max_cpu_time = max_time,
    x0 = nlp.meta.x0,
    tol = tol,
  ),
  :percival => nlp -> percival(
      nlp,
      max_time = max_time,
      max_iter = typemax(Int64),
      max_eval = typemax(Int64),
      atol = tol,
      rtol = tol,
      ctol = tol,
  ),
)

stats = bmark_solvers(solvers, cutest_problems)
Dict{Symbol, DataFrames.DataFrame} with 2 entries:
  :percival => 96×40 DataFrame…
  :ipopt    => 96×42 DataFrame

The function bmark_solvers return a Dict of DataFrames with detailed information on the execution. This output can be saved in a data file.

using JLD2
@save "ipopt_percival_$(string(length(pnames))).jld2" stats

The result of the benchmark can be explored via tables,

pretty_stats(stats[:percival])
┌─────────────┬────────┬──────────┬────────┬────────┬────────┬─────────────┬───────────┬──────────────┬────────┬───────────┬─────────────┬───────────┬────────────┬────────────┬────────────────┬────────────────┬────────────┬─────────────┬───────────┬───────────────┬───────────────┬─────────────┬─────────────────┬─────────────────┬──────────────┬──────────────────┬──────────────────┬────────────┬─────────────┬─────────────┬──────────────┬────────────────┬────────────────────┬──────────────────────┬───────────────────────┬─────────────────────┬──────────────────────┬──────────────────────┬───────────────────────────────────────────┐
│ solver_name │     id │     name │   nvar │   ncon │   nequ │      status │ objective │ elapsed_time │   iter │ dual_feas │ primal_feas │ neval_obj │ neval_grad │ neval_cons │ neval_cons_lin │ neval_cons_nln │ neval_jcon │ neval_jgrad │ neval_jac │ neval_jac_lin │ neval_jac_nln │ neval_jprod │ neval_jprod_lin │ neval_jprod_nln │ neval_jtprod │ neval_jtprod_lin │ neval_jtprod_nln │ neval_hess │ neval_hprod │ neval_jhess │ neval_jhprod │ neval_residual │ neval_jac_residual │ neval_jprod_residual │ neval_jtprod_residual │ neval_hess_residual │ neval_jhess_residual │ neval_hprod_residual │                                 extrainfo │
├─────────────┼────────┼──────────┼────────┼────────┼────────┼─────────────┼───────────┼──────────────┼────────┼───────────┼─────────────┼───────────┼────────────┼────────────┼────────────────┼────────────────┼────────────┼─────────────┼───────────┼───────────────┼───────────────┼─────────────┼─────────────────┼─────────────────┼──────────────┼──────────────────┼──────────────────┼────────────┼─────────────┼─────────────┼──────────────┼────────────────┼────────────────────┼──────────────────────┼───────────────────────┼─────────────────────┼──────────────────────┼──────────────────────┼───────────────────────────────────────────┤
│    percival │      1 │   POLAK4 │      3 │      3 │      0 │ first_order │  8.11e-17 │     6.17e+01 │ 103704 │  1.36e-05 │    4.64e-14 │   2001309 │    2111028 │    3789159 │              0 │        3789159 │          0 │           0 │         0 │             0 │             0 │    48055222 │               0 │        48055222 │     50269954 │                0 │                0 │          0 │    48055222 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │      2 │  EXPFITA │      5 │     22 │      0 │ first_order │  1.14e-03 │     2.69e-03 │      5 │  1.93e-09 │    3.28e-11 │        13 │         23 │         13 │             13 │              0 │          0 │           0 │         0 │             0 │             0 │         799 │            1598 │               0 │          827 │                0 │                0 │          0 │         799 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │      3 │     MSS1 │     90 │     73 │      0 │ first_order │ -1.60e+01 │     4.55e+02 │     12 │  1.36e-07 │    5.25e-09 │     13733 │       5973 │      22144 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │    34000399 │               0 │               0 │     34006384 │                0 │                0 │          0 │    34000399 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │      4 │     HS79 │      5 │      3 │      0 │ first_order │  7.88e-02 │     2.06e-03 │      5 │  2.90e-09 │    1.40e-06 │        63 │         41 │         95 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │        1184 │               0 │               0 │         1230 │                0 │                0 │          0 │        1184 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │      5 │     S268 │      5 │      5 │      0 │ first_order │  1.46e-11 │     4.55e-04 │      4 │  1.88e-07 │    1.92e-08 │        11 │         19 │         11 │             11 │              0 │          0 │           0 │         0 │             0 │             0 │         190 │             380 │               0 │          213 │                0 │                0 │          0 │         190 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │      6 │      HS7 │      2 │      1 │      0 │ first_order │ -1.73e+00 │     8.47e-04 │      6 │  6.38e-12 │    9.03e-10 │       102 │         80 │        137 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         723 │               0 │               0 │          809 │                0 │                0 │          0 │         723 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │      7 │     HS48 │      5 │      2 │      0 │ first_order │  0.00e+00 │     1.21e-04 │      6 │  9.92e-14 │    8.01e-15 │         7 │         19 │          7 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │          47 │               0 │               0 │           72 │                0 │                0 │          0 │          47 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │      8 │      BT9 │      4 │      2 │      0 │ first_order │ -1.00e+00 │     5.96e-04 │      6 │  6.54e-09 │    1.77e-06 │        40 │         39 │         53 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         433 │               0 │               0 │          478 │                0 │                0 │          0 │         433 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │      9 │ MIFFLIN1 │      3 │      2 │      0 │ first_order │ -1.00e+00 │     6.11e-04 │      5 │  1.13e-14 │    8.93e-08 │        30 │         32 │         39 │             39 │             39 │          0 │           0 │         0 │             0 │             0 │         376 │             752 │             376 │          413 │                0 │                0 │          0 │         376 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     10 │   HAIFAS │     13 │      9 │      0 │ first_order │ -4.50e-01 │     7.09e-04 │      5 │  3.85e-08 │    6.77e-09 │        25 │         29 │         31 │              0 │             31 │          0 │           0 │         0 │             0 │             0 │         241 │               0 │             241 │          275 │                0 │                0 │          0 │         241 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     11 │ GIGOMEZ1 │      3 │      3 │      0 │ first_order │ -3.00e+00 │     1.62e-03 │      5 │  1.02e-07 │    7.96e-07 │        67 │         51 │         93 │             93 │             93 │          0 │           0 │         0 │             0 │             0 │        1230 │            2460 │            1230 │         1286 │                0 │                0 │          0 │        1230 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     12 │ GIGOMEZ2 │      3 │      3 │      0 │ first_order │  1.95e+00 │     1.84e-03 │      5 │  1.02e-06 │    7.75e-07 │        62 │         54 │         80 │              0 │             80 │          0 │           0 │         0 │             0 │             0 │        1158 │               0 │            1158 │         1217 │                0 │                0 │          0 │        1158 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     13 │ DEMYMALO │      3 │      3 │      0 │ first_order │ -3.00e+00 │     1.19e-03 │      4 │  2.60e-11 │    8.89e-07 │        48 │         40 │         64 │             64 │             64 │          0 │           0 │         0 │             0 │             0 │         883 │            1766 │             883 │          927 │                0 │                0 │          0 │         883 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     14 │     HS42 │      4 │      2 │      0 │ first_order │  1.39e+01 │     4.21e-04 │      5 │  2.30e-08 │    1.97e-07 │        26 │         36 │         39 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         327 │               0 │               0 │          368 │                0 │                0 │          0 │         327 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     15 │     HS27 │      3 │      1 │      0 │ first_order │  4.00e-02 │     5.92e-04 │      4 │  3.09e-08 │    1.33e-06 │        60 │         52 │         76 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         491 │               0 │               0 │          547 │                0 │                0 │          0 │         491 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     16 │ DIXCHLNG │     10 │      5 │      0 │ first_order │  4.82e-09 │     5.31e-03 │      6 │  7.03e-13 │    2.48e-06 │        47 │         34 │         74 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │        1178 │               0 │               0 │         1218 │                0 │                0 │          0 │        1178 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     17 │ CHACONN1 │      3 │      3 │      0 │ first_order │  1.95e+00 │     3.69e-04 │      4 │  1.28e-10 │    9.40e-06 │        17 │         25 │         17 │              0 │             17 │          0 │           0 │         0 │             0 │             0 │         173 │               0 │             173 │          202 │                0 │                0 │          0 │         173 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     18 │ KIWCRESC │      3 │      2 │      0 │ first_order │  2.00e-06 │     1.37e-03 │      4 │  1.18e-10 │    5.64e-06 │        62 │         45 │         88 │              0 │             88 │          0 │           0 │         0 │             0 │             0 │         961 │               0 │             961 │         1010 │                0 │                0 │          0 │         961 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     19 │    HS100 │      7 │      4 │      0 │ first_order │  6.81e+02 │     3.34e-02 │      5 │  2.48e-08 │    7.56e-09 │       258 │        131 │        397 │              0 │            397 │          0 │           0 │         0 │             0 │             0 │       18703 │               0 │           18703 │        18839 │                0 │                0 │          0 │       18703 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     20 │  WOMFLET │      3 │      3 │      0 │ first_order │  6.05e+00 │     1.92e-03 │      4 │  1.06e-08 │    2.35e-06 │        49 │         32 │         74 │              0 │             74 │          0 │           0 │         0 │             0 │             0 │        1364 │               0 │            1364 │         1400 │                0 │                0 │          0 │        1364 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     21 │     BT11 │      5 │      3 │      0 │ first_order │  8.25e-01 │     1.10e-03 │      6 │  6.76e-12 │    8.21e-08 │        40 │         35 │         58 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         594 │               0 │               0 │          635 │                0 │                0 │          0 │         594 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     22 │   POLAK3 │     12 │     10 │      0 │   exception │       Inf │          Inf │      0 │       Inf │         Inf │         0 │          0 │          0 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │           0 │               0 │               0 │            0 │                0 │                0 │          0 │           0 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │ ErrorException("radius must be positive") │
│    percival │     23 │  MARATOS │      2 │      1 │      0 │ first_order │ -1.00e+00 │     1.50e-04 │      5 │  1.46e-11 │    1.86e-06 │        16 │         22 │         20 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         117 │               0 │               0 │          144 │                0 │                0 │          0 │         117 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     24 │    HS113 │     10 │      8 │      0 │ first_order │  2.43e+01 │     3.98e-02 │      6 │  1.50e-09 │    4.72e-10 │       133 │         72 │        207 │            207 │            207 │          0 │           0 │         0 │             0 │             0 │       18232 │           36464 │           18232 │        18310 │                0 │                0 │          0 │       18232 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     25 │      BT6 │      5 │      2 │      0 │ first_order │  5.15e+00 │     5.26e-03 │      5 │  4.28e-11 │    8.74e-09 │       123 │         65 │        194 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │        2615 │               0 │               0 │         2685 │                0 │                0 │          0 │        2615 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     26 │ ORTHREGB │     27 │      6 │      0 │ first_order │  1.11e-21 │     3.76e-01 │      6 │  4.57e-08 │    1.56e-11 │       361 │        162 │        611 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │       90052 │               0 │               0 │        90220 │                0 │                0 │          0 │       90052 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     27 │      HS6 │      2 │      1 │      0 │ first_order │  4.04e-16 │     1.21e-03 │      3 │  3.44e-05 │    2.48e-06 │       170 │        100 │        246 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │        1200 │               0 │               0 │         1303 │                0 │                0 │          0 │        1200 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     28 │ GIGOMEZ3 │      3 │      3 │      0 │ first_order │  2.00e+00 │     7.52e-04 │      5 │  6.98e-14 │    5.35e-08 │        40 │         37 │         54 │              0 │             54 │          0 │           0 │         0 │             0 │             0 │         446 │               0 │             446 │          488 │                0 │                0 │          0 │         446 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     29 │     HS28 │      3 │      1 │      0 │ first_order │  6.41e-31 │     9.08e-05 │      6 │  7.50e-13 │    1.00e-13 │         7 │         19 │          7 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │          42 │               0 │               0 │           67 │                0 │                0 │          0 │          42 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     30 │ MINMAXBD │      5 │     20 │      0 │ first_order │  1.16e+02 │     9.88e-01 │      6 │  3.62e-07 │    9.78e-07 │      1194 │        484 │       1917 │              0 │           1917 │          0 │           0 │         0 │             0 │             0 │      254388 │               0 │          254388 │       254878 │                0 │                0 │          0 │      254388 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     31 │     HS10 │      2 │      1 │      0 │ first_order │ -1.00e+00 │     1.01e-03 │      6 │  8.94e-13 │    1.44e-07 │        69 │         59 │         92 │              0 │             92 │          0 │           0 │         0 │             0 │             0 │         831 │               0 │             831 │          896 │                0 │                0 │          0 │         831 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     32 │     HS40 │      4 │      3 │      0 │ first_order │ -2.50e-01 │     4.84e-04 │      5 │  1.28e-09 │    6.14e-06 │        24 │         25 │         33 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         290 │               0 │               0 │          320 │                0 │                0 │          0 │         290 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     33 │      BT8 │      5 │      2 │      0 │ first_order │  1.00e+00 │     2.08e-04 │      5 │  2.71e-14 │    7.18e-08 │        19 │         28 │         21 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         142 │               0 │               0 │          175 │                0 │                0 │          0 │         142 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     34 │      BT1 │      2 │      1 │      0 │ first_order │ -1.00e+00 │     3.90e-04 │      5 │  2.85e-14 │    1.20e-08 │        44 │         36 │         63 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         318 │               0 │               0 │          359 │                0 │                0 │          0 │         318 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     35 │     HS43 │      4 │      3 │      0 │ first_order │ -4.40e+01 │     2.79e-03 │      6 │  1.33e-11 │    3.09e-08 │        68 │         47 │        102 │              0 │            102 │          0 │           0 │         0 │             0 │             0 │        1688 │               0 │            1688 │         1741 │                0 │                0 │          0 │        1688 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     36 │  MAKELA2 │      3 │      3 │      0 │ first_order │  7.20e+00 │     9.25e-04 │      6 │  9.67e-11 │    9.13e-10 │        34 │         41 │         41 │              0 │             41 │          0 │           0 │         0 │             0 │             0 │         658 │               0 │             658 │          705 │                0 │                0 │          0 │         658 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     37 │     HS14 │      2 │      2 │      0 │ first_order │  1.39e+00 │     2.52e-04 │      6 │  3.53e-13 │    3.03e-07 │        13 │         26 │         13 │             13 │             13 │          0 │           0 │         0 │             0 │             0 │         131 │             262 │             131 │          163 │                0 │                0 │          0 │         131 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     38 │  DIPIGRI │      7 │      4 │      0 │ first_order │  6.81e+02 │     3.68e-02 │      6 │  3.41e-08 │    5.30e-07 │       301 │        140 │        475 │              0 │            475 │          0 │           0 │         0 │             0 │             0 │       22547 │               0 │           22547 │        22693 │                0 │                0 │          0 │       22547 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     39 │ MIFFLIN2 │      3 │      2 │      0 │ first_order │ -1.00e+00 │     9.83e-04 │      5 │  2.19e-06 │    5.66e-08 │        66 │         67 │         75 │              0 │             75 │          0 │           0 │         0 │             0 │             0 │         737 │               0 │             737 │          809 │                0 │                0 │          0 │         737 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     40 │     HS91 │      5 │      1 │      0 │ first_order │  1.36e+00 │     4.23e-01 │     15 │  1.15e-12 │    2.44e-06 │        79 │         96 │        102 │              0 │            102 │          0 │           0 │         0 │             0 │             0 │        1271 │               0 │            1271 │         1382 │                0 │                0 │          0 │        1271 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     41 │ BYRDSPHR │      3 │      2 │      0 │ first_order │ -4.68e+00 │     7.47e-04 │      5 │  6.77e-08 │    8.01e-11 │        51 │         51 │         73 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         650 │               0 │               0 │          706 │                0 │                0 │          0 │         650 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     42 │     HS50 │      5 │      3 │      0 │ first_order │  6.39e-15 │     2.16e-04 │      6 │  6.25e-13 │    1.20e-07 │        11 │         23 │         11 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         103 │               0 │               0 │          132 │                0 │                0 │          0 │         103 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     43 │ CHACONN2 │      3 │      3 │      0 │ first_order │  2.00e+00 │     9.21e-04 │      5 │  6.45e-14 │    5.35e-08 │        44 │         39 │         60 │              0 │             60 │          0 │           0 │         0 │             0 │             0 │         501 │               0 │             501 │          545 │                0 │                0 │          0 │         501 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     44 │     BT10 │      2 │      2 │      0 │ first_order │ -1.00e+00 │     3.08e-04 │      6 │  3.15e-10 │    8.66e-07 │        29 │         35 │         35 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         245 │               0 │               0 │          286 │                0 │                0 │          0 │         245 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     45 │ HALDMADS │      6 │     42 │      0 │ first_order │  1.20e-04 │     7.17e-02 │      8 │  1.44e-10 │    8.96e-06 │        62 │         53 │         90 │              0 │             90 │          0 │           0 │         0 │             0 │             0 │       10501 │               0 │           10501 │        10562 │                0 │                0 │          0 │       10501 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     46 │ ROSENMMX │      5 │      4 │      0 │ first_order │ -4.40e+01 │     3.53e-02 │      5 │  1.08e-08 │    2.19e-09 │       513 │        277 │        761 │              0 │            761 │          0 │           0 │         0 │             0 │             0 │       22999 │               0 │           22999 │        23281 │                0 │                0 │          0 │       22999 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     47 │     HS26 │      3 │      1 │      0 │ first_order │  1.98e-11 │     9.42e-04 │      6 │  9.32e-07 │    1.69e-07 │        61 │         49 │         85 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         720 │               0 │               0 │          775 │                0 │                0 │          0 │         720 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     48 │   SPIRAL │      3 │      2 │      0 │ first_order │  1.91e-06 │     2.49e-03 │      4 │  4.71e-09 │    2.70e-06 │       127 │        102 │        160 │              0 │            160 │          0 │           0 │         0 │             0 │             0 │        1494 │               0 │            1494 │         1600 │                0 │                0 │          0 │        1494 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     49 │      BT7 │      5 │      3 │      0 │ first_order │  3.60e+02 │     1.09e-03 │      8 │  3.55e-11 │    1.84e-08 │        48 │         49 │         66 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         752 │               0 │               0 │          809 │                0 │                0 │          0 │         752 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     50 │      HS9 │      2 │      1 │      0 │ first_order │ -5.00e-01 │     7.41e-05 │      4 │  5.15e-06 │    3.01e-08 │         5 │         13 │          5 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │          30 │               0 │               0 │           47 │                0 │                0 │          0 │          30 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     51 │ HS100LNP │      7 │      2 │      0 │ first_order │  6.81e+02 │     2.18e-03 │      5 │  1.24e-10 │    1.90e-06 │        56 │         38 │         85 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │        1344 │               0 │               0 │         1387 │                0 │                0 │          0 │        1344 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     52 │  GENHS28 │     10 │      8 │      0 │ first_order │  9.27e-01 │     2.37e-04 │      6 │  9.08e-11 │    1.69e-08 │         6 │         18 │          6 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │          72 │               0 │               0 │           96 │                0 │                0 │          0 │          72 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     53 │      BT5 │      3 │      2 │      0 │ first_order │  9.62e+02 │     3.23e-04 │      4 │  2.36e-09 │    4.95e-08 │        21 │         23 │         28 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         221 │               0 │               0 │          248 │                0 │                0 │          0 │         221 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     54 │     HS61 │      3 │      2 │      0 │ first_order │ -1.44e+02 │     6.78e-04 │      4 │  4.16e-06 │    1.39e-07 │        42 │         34 │         58 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         480 │               0 │               0 │          518 │                0 │                0 │          0 │         480 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     55 │      CB2 │      3 │      3 │      0 │ first_order │  1.95e+00 │     2.24e-03 │      6 │  3.86e-09 │    2.54e-08 │        74 │         61 │        100 │              0 │            100 │          0 │           0 │         0 │             0 │             0 │        1494 │               0 │            1494 │         1561 │                0 │                0 │          0 │        1494 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     56 │     HS77 │      5 │      2 │      0 │ first_order │  5.53e+00 │     3.24e-03 │      5 │  4.05e-11 │    7.99e-09 │       109 │         61 │        168 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │        2206 │               0 │               0 │         2272 │                0 │                0 │          0 │        2206 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     57 │     HS39 │      4 │      2 │      0 │ first_order │ -1.00e+00 │     5.48e-04 │      6 │  6.54e-09 │    1.77e-06 │        40 │         39 │         53 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         433 │               0 │               0 │          478 │                0 │                0 │          0 │         433 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     58 │     HS88 │      2 │      1 │      0 │ first_order │  1.36e+00 │     6.90e-02 │     15 │  1.46e-12 │    2.44e-06 │        67 │         92 │         77 │              0 │             77 │          0 │           0 │         0 │             0 │             0 │         509 │               0 │             509 │          616 │                0 │                0 │          0 │         509 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     59 │  MWRIGHT │      5 │      3 │      0 │ first_order │  2.50e+01 │     6.24e-04 │      5 │  5.32e-07 │    2.32e-06 │        24 │         23 │         35 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         396 │               0 │               0 │          424 │                0 │                0 │          0 │         396 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     60 │      BT4 │      3 │      2 │      0 │ first_order │ -4.55e+01 │     2.52e-04 │      6 │  2.34e-12 │    1.09e-06 │        21 │         32 │         23 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         175 │               0 │               0 │          213 │                0 │                0 │          0 │         175 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     61 │      BT2 │      3 │      1 │      0 │ first_order │  3.26e-02 │     3.86e-03 │      6 │  5.16e-06 │    8.22e-08 │       256 │        118 │        406 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │        3270 │               0 │               0 │         3394 │                0 │                0 │          0 │        3270 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     62 │  MAKELA3 │     21 │     20 │      0 │ first_order │  7.56e-13 │     1.73e-01 │      5 │  1.80e-11 │    3.38e-12 │       670 │        240 │       1111 │              0 │           1111 │          0 │           0 │         0 │             0 │             0 │       62826 │               0 │           62826 │        63071 │                0 │                0 │          0 │       62826 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     63 │     HS46 │      5 │      2 │      0 │ first_order │  1.40e-12 │     1.11e-03 │      6 │  4.00e-09 │    2.07e-06 │        30 │         32 │         40 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         547 │               0 │               0 │          585 │                0 │                0 │          0 │         547 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     64 │     HS49 │      5 │      2 │      0 │ first_order │  1.56e-09 │     2.82e-04 │      6 │  9.95e-07 │    1.82e-14 │        18 │         30 │         18 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         178 │               0 │               0 │          214 │                0 │                0 │          0 │         178 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     65 │   GOFFIN │     51 │     50 │      0 │ first_order │ -1.98e-07 │     1.57e-02 │      4 │  1.74e-09 │    1.40e-06 │        31 │         39 │         31 │             31 │              0 │          0 │           0 │         0 │             0 │             0 │         700 │            1400 │               0 │          743 │                0 │                0 │          0 │         700 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     66 │ HS100MOD │      7 │      4 │      0 │ first_order │  6.79e+02 │     1.01e-01 │      6 │  1.12e-05 │    2.05e-10 │       492 │        246 │        754 │              0 │            754 │          0 │           0 │         0 │             0 │             0 │       58375 │               0 │           58375 │        58627 │                0 │                0 │          0 │       58375 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     67 │   MADSEN │      3 │      6 │      0 │ first_order │  6.16e-01 │     5.16e-03 │      6 │  1.16e-12 │    6.78e-10 │        89 │         72 │        119 │              0 │            119 │          0 │           0 │         0 │             0 │             0 │        2885 │               0 │            2885 │         2963 │                0 │                0 │          0 │        2885 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     68 │   POLAK6 │      5 │      4 │      0 │ first_order │ -4.40e+01 │     3.01e-01 │      5 │  1.52e-09 │    9.47e-09 │      3662 │       1917 │       5419 │              0 │           5419 │          0 │           0 │         0 │             0 │             0 │      157000 │               0 │          157000 │       158922 │                0 │                0 │          0 │      157000 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     69 │     HS78 │      5 │      3 │      0 │ first_order │ -2.92e+00 │     1.47e-03 │      5 │  2.50e-05 │    7.85e-06 │        54 │         33 │         85 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │        1016 │               0 │               0 │         1054 │                0 │                0 │          0 │        1016 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     70 │     HS90 │      4 │      1 │      0 │ first_order │  1.36e+00 │     2.52e-01 │     15 │  7.38e-12 │    2.44e-06 │        87 │         95 │        119 │              0 │            119 │          0 │           0 │         0 │             0 │             0 │        1308 │               0 │            1308 │         1418 │                0 │                0 │          0 │        1308 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     71 │     HS11 │      2 │      1 │      0 │ first_order │ -8.50e+00 │     5.47e-04 │      6 │  6.22e-11 │    6.33e-08 │        40 │         40 │         54 │              0 │             54 │          0 │           0 │         0 │             0 │             0 │         491 │               0 │             491 │          537 │                0 │                0 │          0 │         491 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     72 │     HS29 │      3 │      1 │      0 │ first_order │ -2.26e+01 │     7.96e-04 │      4 │  3.20e-06 │    3.61e-07 │        48 │         36 │         68 │              0 │             68 │          0 │           0 │         0 │             0 │             0 │         551 │               0 │             551 │          591 │                0 │                0 │          0 │         551 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     73 │ S316-322 │      2 │      1 │      0 │ first_order │  3.34e+02 │     1.43e-04 │      7 │  8.04e-14 │    3.89e-07 │        16 │         31 │         16 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │          98 │               0 │               0 │          136 │                0 │                0 │          0 │          98 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     74 │      FLT │      2 │      2 │      0 │ first_order │ -3.10e-28 │     9.39e-05 │      3 │  1.10e-05 │    1.84e-12 │        10 │         16 │         10 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │          55 │               0 │               0 │           74 │                0 │                0 │          0 │          55 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     75 │   POLAK1 │      3 │      2 │      0 │ first_order │  2.72e+00 │     2.01e-03 │      5 │  1.18e-05 │    5.03e-07 │        90 │         65 │        125 │              0 │            125 │          0 │           0 │         0 │             0 │             0 │        1550 │               0 │            1550 │         1620 │                0 │                0 │          0 │        1550 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     76 │  MAKELA4 │     21 │     40 │      0 │ first_order │  4.81e-18 │     3.44e-04 │      4 │  6.66e-16 │    3.13e-17 │         8 │         16 │          8 │              8 │              0 │          0 │           0 │         0 │             0 │             0 │          79 │             158 │               0 │           99 │                0 │                0 │          0 │          79 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     77 │    SNAKE │      2 │      2 │      0 │ first_order │  6.09e-06 │     5.65e+02 │      7 │  0.00e+00 │    4.33e-10 │  38656331 │   22430125 │   54945935 │              0 │       54945935 │          0 │           0 │         0 │             0 │             0 │   455438515 │               0 │       455438515 │    477868647 │                0 │                0 │          0 │   455438515 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     78 │   POLAK2 │     11 │      2 │      0 │ first_order │  5.46e+01 │     1.57e-03 │      5 │  7.76e-09 │    1.41e-13 │        60 │         58 │         73 │              0 │             73 │          0 │           0 │         0 │             0 │             0 │         657 │               0 │             657 │          720 │                0 │                0 │          0 │         657 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     79 │     HS92 │      6 │      1 │      0 │ first_order │  1.36e+00 │     2.06e-01 │     15 │  3.30e-12 │    2.44e-06 │        63 │         90 │         71 │              0 │             71 │          0 │           0 │         0 │             0 │             0 │         606 │               0 │             606 │          711 │                0 │                0 │          0 │         606 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     80 │ MINMAXRB │      3 │      4 │      0 │ first_order │  1.25e-15 │     1.14e-02 │      4 │  1.52e-07 │    9.16e-07 │       244 │        151 │        345 │            345 │            345 │          0 │           0 │         0 │             0 │             0 │        9232 │           18464 │            9232 │         9387 │                0 │                0 │          0 │        9232 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     81 │  MAKELA1 │      3 │      2 │      0 │ first_order │ -1.41e+00 │     7.86e-04 │      5 │  1.25e-14 │    3.88e-07 │        34 │         30 │         49 │             49 │             49 │          0 │           0 │         0 │             0 │             0 │         545 │            1090 │             545 │          580 │                0 │                0 │          0 │         545 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     82 │     HS51 │      5 │      3 │      0 │ first_order │  1.23e-11 │     1.42e-04 │      7 │  9.49e-13 │    2.13e-06 │         8 │         22 │          8 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │          56 │               0 │               0 │           85 │                0 │                0 │          0 │          56 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     83 │     HS56 │      7 │      4 │      0 │ first_order │ -3.46e+00 │     6.40e-04 │      5 │  9.82e-13 │    4.24e-07 │        18 │         22 │         25 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         339 │               0 │               0 │          366 │                0 │                0 │          0 │         339 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     84 │     BT12 │      5 │      3 │      0 │ first_order │  6.19e+00 │     1.67e-03 │      5 │  7.90e-10 │    2.98e-06 │        56 │         46 │         77 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │        1126 │               0 │               0 │         1177 │                0 │                0 │          0 │        1126 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     85 │ PENTAGON │      6 │     15 │      0 │ first_order │  1.46e-04 │     1.71e-03 │      4 │  6.61e-08 │    8.36e-07 │        25 │         23 │         35 │             35 │              0 │          0 │           0 │         0 │             0 │             0 │         735 │            1470 │               0 │          762 │                0 │                0 │          0 │         735 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     86 │ HS111LNP │     10 │      3 │      0 │ first_order │ -4.78e+01 │     6.37e-03 │      5 │  4.12e-10 │    3.07e-06 │        33 │         34 │         43 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         661 │               0 │               0 │          700 │                0 │                0 │          0 │         661 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     87 │     HS52 │      5 │      3 │      0 │ first_order │  5.33e+00 │     1.28e-04 │      6 │  3.28e-12 │    3.17e-07 │         6 │         18 │          6 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │          52 │               0 │               0 │           76 │                0 │                0 │          0 │          52 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     88 │     HS89 │      3 │      1 │      0 │ first_order │  1.36e+00 │     7.90e-02 │     15 │  4.77e-12 │    2.44e-06 │        57 │         89 │         60 │              0 │             60 │          0 │           0 │         0 │             0 │             0 │         447 │               0 │             447 │          551 │                0 │                0 │          0 │         447 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     89 │ CONGIGMZ │      3 │      5 │      0 │ first_order │  2.00e+00 │     1.54e-03 │      5 │  2.04e-10 │    4.92e-08 │        29 │         30 │         38 │             38 │             38 │          0 │           0 │         0 │             0 │             0 │        1026 │            2052 │            1026 │         1061 │                0 │                0 │          0 │        1026 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     90 │   POLAK5 │      3 │      2 │      0 │ first_order │  5.00e+01 │     3.51e-02 │      4 │  2.66e-10 │    1.22e-07 │      1333 │       1196 │       2072 │              0 │           2072 │          0 │           0 │         0 │             0 │             0 │       29156 │               0 │           29156 │        30356 │                0 │                0 │          0 │       29156 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     91 │     HS47 │      5 │      3 │      0 │ first_order │  5.63e-14 │     1.58e-03 │      5 │  5.79e-07 │    2.79e-07 │        50 │         44 │         67 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         811 │               0 │               0 │          860 │                0 │                0 │          0 │         811 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     92 │      CB3 │      3 │      3 │      0 │ first_order │  2.00e+00 │     8.65e-04 │      5 │  2.63e-13 │    5.47e-08 │        44 │         39 │         60 │              0 │             60 │          0 │           0 │         0 │             0 │             0 │         498 │               0 │             498 │          542 │                0 │                0 │          0 │         498 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     93 │     HS12 │      2 │      1 │      0 │ first_order │ -3.00e+01 │     6.60e-04 │      4 │  3.15e-12 │    9.10e-07 │        44 │         33 │         64 │              0 │             64 │          0 │           0 │         0 │             0 │             0 │         448 │               0 │             448 │          485 │                0 │                0 │          0 │         448 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     94 │      BT3 │      5 │      3 │      0 │ first_order │  4.09e+00 │     1.31e-04 │      5 │  3.14e-08 │    5.55e-06 │         7 │         17 │          7 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │          51 │               0 │               0 │           73 │                0 │                0 │          0 │          51 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     95 │    HS268 │      5 │      5 │      0 │ first_order │  1.46e-11 │     4.78e-04 │      4 │  1.88e-07 │    1.92e-08 │        11 │         19 │         11 │             11 │              0 │          0 │           0 │         0 │             0 │             0 │         190 │             380 │               0 │          213 │                0 │                0 │          0 │         190 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     96 │     HS22 │      2 │      2 │      0 │ first_order │  1.00e+00 │     1.77e-04 │      5 │  1.25e-08 │    1.82e-06 │        10 │         20 │         10 │             10 │             10 │          0 │           0 │         0 │             0 │             0 │         100 │             200 │             100 │          125 │                0 │                0 │          0 │         100 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
└─────────────┴────────┴──────────┴────────┴────────┴────────┴─────────────┴───────────┴──────────────┴────────┴───────────┴─────────────┴───────────┴────────────┴────────────┴────────────────┴────────────────┴────────────┴─────────────┴───────────┴───────────────┴───────────────┴─────────────┴─────────────────┴─────────────────┴──────────────┴──────────────────┴──────────────────┴────────────┴─────────────┴─────────────┴──────────────┴────────────────┴────────────────────┴──────────────────────┴───────────────────────┴─────────────────────┴──────────────────────┴──────────────────────┴───────────────────────────────────────────┘

or it can also be used to make performance profiles.

using Plots
gr()

solved(df) = (df.status .== :first_order)
costs = [
  df -> .!solved(df) * Inf + df.elapsed_time,
  df -> .!solved(df) * Inf + df.neval_obj + df.neval_cons,
]
costnames = ["Time", "Evalutions of obj + cons"]
p = profile_solvers(stats, costs, costnames)
Example block output