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 │  3.20e-12 │     9.67e+00 │  40805 │  1.20e-05 │    4.52e-12 │    670425 │     714569 │    1255864 │              0 │        1255864 │          0 │           0 │         0 │             0 │             0 │     9812763 │               0 │         9812763 │     10568137 │                0 │                0 │          0 │     9812763 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │      2 │  EXPFITA │      5 │     22 │      0 │ first_order │  1.14e-03 │     1.38e-03 │      5 │  9.29e-09 │    4.19e-10 │        14 │         24 │         14 │             14 │              0 │          0 │           0 │         0 │             0 │             0 │         497 │             994 │               0 │          526 │                0 │                0 │          0 │         497 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │      3 │     MSS1 │     90 │     73 │      0 │ first_order │ -9.00e+00 │     6.15e-02 │      8 │  1.87e-11 │    3.47e-06 │        72 │         65 │         97 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │        4814 │               0 │               0 │         4887 │                0 │                0 │          0 │        4814 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │      4 │     HS79 │      5 │      3 │      0 │ first_order │  7.88e-02 │     3.96e-04 │      5 │  5.73e-09 │    4.62e-06 │        25 │         27 │         33 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         267 │               0 │               0 │          299 │                0 │                0 │          0 │         267 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │      5 │     S268 │      5 │      5 │      0 │ first_order │ -3.64e-12 │     3.19e-04 │      4 │  5.27e-08 │    1.90e-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 │     5.96e-04 │      6 │  9.38e-12 │    9.03e-10 │       102 │         80 │        137 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         724 │               0 │               0 │          810 │                0 │                0 │          0 │         724 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │      7 │     HS48 │      5 │      2 │      0 │ first_order │  7.17e-43 │     8.51e-05 │      6 │  1.29e-13 │    7.16e-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 │     3.42e-04 │      6 │  2.00e-09 │    1.37e-06 │        34 │         35 │         45 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         352 │               0 │               0 │          393 │                0 │                0 │          0 │         352 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │      9 │ MIFFLIN1 │      3 │      2 │      0 │ first_order │ -1.00e+00 │     3.14e-04 │      5 │  1.37e-14 │    7.80e-08 │        26 │         31 │         32 │             32 │             32 │          0 │           0 │         0 │             0 │             0 │         273 │             546 │             273 │          309 │                0 │                0 │          0 │         273 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     10 │   HAIFAS │     13 │      9 │      0 │ first_order │ -4.50e-01 │     5.39e-04 │      5 │  3.85e-08 │    6.78e-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.23e-03 │      5 │  1.02e-07 │    7.96e-07 │        75 │         57 │        103 │            103 │            103 │          0 │           0 │         0 │             0 │             0 │        1135 │            2270 │            1135 │         1197 │                0 │                0 │          0 │        1135 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     12 │ GIGOMEZ2 │      3 │      3 │      0 │ first_order │  1.95e+00 │     7.54e-04 │      6 │  6.07e-13 │    2.44e-09 │        53 │         56 │         63 │              0 │             63 │          0 │           0 │         0 │             0 │             0 │         572 │               0 │             572 │          634 │                0 │                0 │          0 │         572 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     13 │ DEMYMALO │      3 │      3 │      0 │ first_order │ -3.00e+00 │     4.91e-04 │      4 │  2.63e-11 │    8.66e-07 │        45 │         43 │         55 │             55 │             55 │          0 │           0 │         0 │             0 │             0 │         420 │             840 │             420 │          467 │                0 │                0 │          0 │         420 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     14 │     HS42 │      4 │      2 │      0 │ first_order │  1.39e+01 │     3.24e-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 │     4.56e-04 │      4 │  3.12e-08 │    1.24e-06 │        60 │         52 │         76 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         492 │               0 │               0 │          548 │                0 │                0 │          0 │         492 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     16 │ DIXCHLNG │     10 │      5 │      0 │ first_order │  4.27e+02 │     3.83e-03 │     10 │  1.95e-09 │    1.51e-06 │        71 │         70 │        105 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │        1099 │               0 │               0 │         1179 │                0 │                0 │          0 │        1099 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     17 │ CHACONN1 │      3 │      3 │      0 │ first_order │  1.95e+00 │     2.43e-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.05e-06 │     9.66e-04 │      4 │  2.50e-09 │    5.80e-06 │        63 │         48 │         86 │              0 │             86 │          0 │           0 │         0 │             0 │             0 │         911 │               0 │             911 │          963 │                0 │                0 │          0 │         911 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     19 │    HS100 │      7 │      4 │      0 │ first_order │  6.81e+02 │     1.19e-02 │      6 │  1.94e-08 │    2.07e-09 │       518 │        404 │        646 │              0 │            646 │          0 │           0 │         0 │             0 │             0 │        8303 │               0 │            8303 │         8713 │                0 │                0 │          0 │        8303 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     20 │  WOMFLET │      3 │      3 │      0 │ first_order │  6.05e+00 │     7.10e-04 │      4 │  1.96e-08 │    3.13e-11 │        50 │         46 │         62 │              0 │             62 │          0 │           0 │         0 │             0 │             0 │         599 │               0 │             599 │          649 │                0 │                0 │          0 │         599 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     21 │     BT11 │      5 │      3 │      0 │ first_order │  8.25e-01 │     7.49e-04 │      6 │  2.11e-13 │    3.58e-06 │        46 │         42 │         63 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         554 │               0 │               0 │          602 │                0 │                0 │          0 │         554 │           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.26e-04 │      5 │  4.35e-10 │    3.02e-06 │        16 │         22 │         20 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         113 │               0 │               0 │          140 │                0 │                0 │          0 │         113 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     24 │    HS113 │     10 │      8 │      0 │ first_order │  2.43e+01 │     1.02e-02 │      5 │  5.84e-10 │    1.01e-07 │       204 │        184 │        236 │            236 │            236 │          0 │           0 │         0 │             0 │             0 │        5552 │           11104 │            5552 │         5741 │                0 │                0 │          0 │        5552 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     25 │      BT6 │      5 │      2 │      0 │ first_order │  5.15e+00 │     3.97e-03 │      6 │  1.17e-07 │    2.18e-07 │       181 │        102 │        273 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │        2430 │               0 │               0 │         2538 │                0 │                0 │          0 │        2430 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     26 │ ORTHREGB │     27 │      6 │      0 │ first_order │  4.69e-22 │     2.77e-02 │      6 │  3.56e-07 │    2.23e-09 │       101 │         55 │        163 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │        8100 │               0 │               0 │         8161 │                0 │                0 │          0 │        8100 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     27 │      HS6 │      2 │      1 │      0 │ first_order │  1.45e-16 │     9.41e-04 │      3 │  2.39e-05 │    2.49e-06 │       170 │        100 │        246 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │        1198 │               0 │               0 │         1301 │                0 │                0 │          0 │        1198 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     28 │ GIGOMEZ3 │      3 │      3 │      0 │ first_order │  2.00e+00 │     6.04e-04 │      5 │  1.38e-13 │    5.35e-08 │        40 │         37 │         54 │              0 │             54 │          0 │           0 │         0 │             0 │             0 │         451 │               0 │             451 │          493 │                0 │                0 │          0 │         451 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     29 │     HS28 │      3 │      1 │      0 │ first_order │  8.94e-30 │     7.61e-05 │      6 │  2.73e-12 │    7.86e-14 │         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 │     6.70e-02 │      6 │  6.25e-07 │    2.45e-09 │       761 │        642 │        894 │              0 │            894 │          0 │           0 │         0 │             0 │             0 │       21665 │               0 │           21665 │        22313 │                0 │                0 │          0 │       21665 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     31 │     HS10 │      2 │      1 │      0 │ first_order │ -1.00e+00 │     7.81e-04 │      6 │  1.15e-12 │    2.27e-07 │        68 │         60 │         89 │              0 │             89 │          0 │           0 │         0 │             0 │             0 │         794 │               0 │             794 │          860 │                0 │                0 │          0 │         794 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     32 │     HS40 │      4 │      3 │      0 │ first_order │ -2.50e-01 │     2.09e-04 │      5 │  5.81e-07 │    6.67e-06 │        18 │         21 │         25 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         174 │               0 │               0 │          200 │                0 │                0 │          0 │         174 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     33 │      BT8 │      5 │      2 │      0 │ first_order │  1.00e+00 │     1.65e-04 │      5 │  8.66e-15 │    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 │     2.52e-04 │      5 │  5.11e-11 │    2.95e-08 │        40 │         35 │         56 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         276 │               0 │               0 │          316 │                0 │                0 │          0 │         276 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     35 │     HS43 │      4 │      3 │      0 │ first_order │ -4.40e+01 │     1.86e-03 │      5 │  1.16e-06 │    1.06e-06 │        62 │         44 │         90 │              0 │             90 │          0 │           0 │         0 │             0 │             0 │        1415 │               0 │            1415 │         1464 │                0 │                0 │          0 │        1415 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     36 │  MAKELA2 │      3 │      3 │      0 │ first_order │  7.20e+00 │     6.58e-04 │      6 │  5.06e-11 │    9.13e-10 │        32 │         39 │         38 │              0 │             38 │          0 │           0 │         0 │             0 │             0 │         581 │               0 │             581 │          626 │                0 │                0 │          0 │         581 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     37 │     HS14 │      2 │      2 │      0 │ first_order │  1.39e+00 │     1.79e-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 │     1.23e-02 │      6 │  1.53e-08 │    4.28e-09 │       521 │        398 │        657 │              0 │            657 │          0 │           0 │         0 │             0 │             0 │        8787 │               0 │            8787 │         9191 │                0 │                0 │          0 │        8787 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     39 │ MIFFLIN2 │      3 │      2 │      0 │ first_order │ -1.00e+00 │     7.72e-04 │      5 │  2.51e-08 │    5.68e-08 │        68 │         70 │         77 │              0 │             77 │          0 │           0 │         0 │             0 │             0 │         729 │               0 │             729 │          804 │                0 │                0 │          0 │         729 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     40 │     HS91 │      5 │      1 │      0 │ first_order │  1.36e+00 │     1.38e-01 │     15 │  6.48e-12 │    2.44e-06 │        60 │         90 │         65 │              0 │             65 │          0 │           0 │         0 │             0 │             0 │         488 │               0 │             488 │          593 │                0 │                0 │          0 │         488 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     41 │ BYRDSPHR │      3 │      2 │      0 │ first_order │ -4.68e+00 │     3.49e-04 │      5 │  2.35e-11 │    3.18e-10 │        40 │         41 │         50 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         365 │               0 │               0 │          411 │                0 │                0 │          0 │         365 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     42 │     HS50 │      5 │      3 │      0 │ first_order │  6.39e-15 │     1.56e-04 │      6 │  5.52e-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 │     6.79e-04 │      5 │  5.23e-14 │    5.39e-08 │        44 │         39 │         60 │              0 │             60 │          0 │           0 │         0 │             0 │             0 │         516 │               0 │             516 │          560 │                0 │                0 │          0 │         516 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     44 │     BT10 │      2 │      2 │      0 │ first_order │ -1.00e+00 │     2.46e-04 │      6 │  3.15e-10 │    8.66e-07 │        29 │         35 │         35 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         246 │               0 │               0 │          287 │                0 │                0 │          0 │         246 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     45 │ HALDMADS │      6 │     42 │      0 │ first_order │  1.21e-04 │     1.45e-02 │      8 │  2.36e-11 │    7.51e-06 │        43 │         50 │         54 │              0 │             54 │          0 │           0 │         0 │             0 │             0 │        2563 │               0 │            2563 │         2621 │                0 │                0 │          0 │        2563 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     46 │ ROSENMMX │      5 │      4 │      0 │ first_order │ -4.40e+01 │     7.57e-03 │      5 │  1.39e-08 │    1.93e-09 │       391 │        308 │        487 │              0 │            487 │          0 │           0 │         0 │             0 │             0 │        5780 │               0 │            5780 │         6093 │                0 │                0 │          0 │        5780 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     47 │     HS26 │      3 │      1 │      0 │ first_order │  9.74e-13 │     6.48e-04 │      6 │  5.83e-06 │    1.74e-06 │        55 │         47 │         76 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         644 │               0 │               0 │          697 │                0 │                0 │          0 │         644 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     48 │   SPIRAL │      3 │      2 │      0 │ first_order │  1.81e-08 │     2.00e-03 │      4 │  3.13e-07 │    2.56e-08 │       147 │        111 │        191 │              0 │            191 │          0 │           0 │         0 │             0 │             0 │        1492 │               0 │            1492 │         1607 │                0 │                0 │          0 │        1492 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     49 │      BT7 │      5 │      3 │      0 │ first_order │  3.60e+02 │     5.80e-04 │      8 │  7.25e-11 │    1.84e-08 │        42 │         51 │         52 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         516 │               0 │               0 │          575 │                0 │                0 │          0 │         516 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     50 │      HS9 │      2 │      1 │      0 │ first_order │ -5.00e-01 │     6.20e-05 │      5 │  7.43e-12 │    5.51e-06 │         5 │         15 │          5 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │          32 │               0 │               0 │           52 │                0 │                0 │          0 │          32 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     51 │ HS100LNP │      7 │      2 │      0 │ first_order │  6.81e+02 │     8.89e-04 │      6 │  3.40e-09 │    2.22e-09 │        50 │         43 │         71 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         730 │               0 │               0 │          779 │                0 │                0 │          0 │         730 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     52 │  GENHS28 │     10 │      8 │      0 │ first_order │  9.27e-01 │     1.61e-04 │      6 │  4.57e-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 │     2.33e-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 │     2.62e-04 │      4 │  4.99e-06 │    8.38e-06 │        34 │         34 │         42 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         269 │               0 │               0 │          307 │                0 │                0 │          0 │         269 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     55 │      CB2 │      3 │      3 │      0 │ first_order │  1.95e+00 │     8.68e-04 │      6 │  3.80e-09 │    8.38e-09 │        62 │         64 │         73 │              0 │             73 │          0 │           0 │         0 │             0 │             0 │         713 │               0 │             713 │          783 │                0 │                0 │          0 │         713 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     56 │     HS77 │      5 │      2 │      0 │ first_order │  5.53e+00 │     1.73e-03 │      6 │  8.98e-09 │    1.29e-09 │       101 │         71 │        144 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │        1408 │               0 │               0 │         1485 │                0 │                0 │          0 │        1408 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     57 │     HS39 │      4 │      2 │      0 │ first_order │ -1.00e+00 │     3.41e-04 │      6 │  2.00e-09 │    1.37e-06 │        34 │         35 │         45 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         352 │               0 │               0 │          393 │                0 │                0 │          0 │         352 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     58 │     HS88 │      2 │      1 │      0 │ first_order │  1.36e+00 │     5.76e-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 │     2.83e-04 │      5 │  7.96e-06 │    8.98e-06 │        21 │         24 │         28 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         209 │               0 │               0 │          238 │                0 │                0 │          0 │         209 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     60 │      BT4 │      3 │      2 │      0 │ first_order │ -4.55e+01 │     1.99e-04 │      6 │  1.47e-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 │     2.48e-03 │      6 │  1.21e-10 │    6.30e-07 │       238 │        130 │        359 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │        2526 │               0 │               0 │         2662 │                0 │                0 │          0 │        2526 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     62 │  MAKELA3 │     21 │     20 │      0 │ first_order │  2.46e-13 │     1.39e-02 │      6 │  1.40e-07 │    3.32e-12 │       441 │        302 │        592 │              0 │            592 │          0 │           0 │         0 │             0 │             0 │        5637 │               0 │            5637 │         5945 │                0 │                0 │          0 │        5637 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     63 │     HS46 │      5 │      2 │      0 │ first_order │  1.40e-12 │     7.11e-04 │      6 │  3.99e-09 │    2.07e-06 │        30 │         32 │         40 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         546 │               0 │               0 │          584 │                0 │                0 │          0 │         546 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     64 │     HS49 │      5 │      2 │      0 │ first_order │  1.56e-09 │     2.09e-04 │      6 │  9.95e-07 │    2.23e-12 │        18 │         30 │         18 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         183 │               0 │               0 │          219 │                0 │                0 │          0 │         183 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     65 │   GOFFIN │     51 │     50 │      0 │ first_order │ -1.98e-07 │     1.30e-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 │     9.50e-02 │      6 │  4.60e-05 │    2.78e-07 │      1714 │       1094 │       2357 │              0 │           2357 │          0 │           0 │         0 │             0 │             0 │       67855 │               0 │           67855 │        68955 │                0 │                0 │          0 │       67855 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     67 │   MADSEN │      3 │      6 │      0 │ first_order │  6.16e-01 │     2.59e-03 │      6 │  1.76e-10 │    1.64e-09 │        89 │         83 │        108 │              0 │            108 │          0 │           0 │         0 │             0 │             0 │        1734 │               0 │            1734 │         1823 │                0 │                0 │          0 │        1734 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     68 │   POLAK6 │      5 │      4 │      0 │ first_order │ -4.40e+01 │     4.56e-02 │      6 │  7.62e-09 │    2.31e-07 │      2172 │       1941 │       2417 │              0 │           2417 │          0 │           0 │         0 │             0 │             0 │       28612 │               0 │           28612 │        30559 │                0 │                0 │          0 │       28612 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     69 │     HS78 │      5 │      3 │      0 │ first_order │ -2.92e+00 │     6.34e-04 │      5 │  4.08e-11 │    3.39e-07 │        37 │         32 │         53 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         532 │               0 │               0 │          569 │                0 │                0 │          0 │         532 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     70 │     HS90 │      4 │      1 │      0 │ first_order │  1.36e+00 │     7.21e-02 │     15 │  1.57e-12 │    2.44e-06 │        58 │         91 │         60 │              0 │             60 │          0 │           0 │         0 │             0 │             0 │         444 │               0 │             444 │          550 │                0 │                0 │          0 │         444 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     71 │     HS11 │      2 │      1 │      0 │ first_order │ -8.50e+00 │     4.50e-04 │      6 │  2.54e-10 │    8.98e-08 │        38 │         37 │         52 │              0 │             52 │          0 │           0 │         0 │             0 │             0 │         468 │               0 │             468 │          511 │                0 │                0 │          0 │         468 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     72 │     HS29 │      3 │      1 │      0 │ first_order │ -2.26e+01 │     5.91e-04 │      5 │  1.46e-10 │    3.54e-06 │        65 │         50 │         91 │              0 │             91 │          0 │           0 │         0 │             0 │             0 │         569 │               0 │             569 │          624 │                0 │                0 │          0 │         569 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     73 │ S316-322 │      2 │      1 │      0 │ first_order │  3.34e+02 │     1.15e-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 │     7.70e-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 │     1.31e-03 │      5 │  1.40e-05 │    5.03e-07 │       124 │         83 │        175 │              0 │            175 │          0 │           0 │         0 │             0 │             0 │        1216 │               0 │            1216 │         1304 │                0 │                0 │          0 │        1216 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     76 │  MAKELA4 │     21 │     40 │      0 │ first_order │ -3.09e-18 │     2.26e-04 │      4 │  6.66e-16 │    2.09e-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 │  1.06e-05 │     4.35e+02 │      7 │  6.66e-16 │    8.06e-10 │  55781819 │   30422418 │   81149417 │              0 │       81149417 │          0 │           0 │         0 │             0 │             0 │   407857585 │               0 │       407857585 │    438280010 │                0 │                0 │          0 │   407857585 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     78 │   POLAK2 │     11 │      2 │      0 │ first_order │  5.46e+01 │     1.18e-03 │      5 │  1.71e-08 │    1.29e-08 │        68 │         62 │         84 │              0 │             84 │          0 │           0 │         0 │             0 │             0 │         729 │               0 │             729 │          796 │                0 │                0 │          0 │         729 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     79 │     HS92 │      6 │      1 │      0 │ first_order │  1.36e+00 │     1.55e-01 │     15 │  6.27e-12 │    2.44e-06 │        61 │         91 │         66 │              0 │             66 │          0 │           0 │         0 │             0 │             0 │         516 │               0 │             516 │          622 │                0 │                0 │          0 │         516 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     80 │ MINMAXRB │      3 │      4 │      0 │ first_order │ -6.37e-16 │     2.08e-03 │      4 │  1.36e-06 │    1.54e-06 │       172 │        164 │        188 │            188 │            188 │          0 │           0 │         0 │             0 │             0 │        1875 │            3750 │            1875 │         2043 │                0 │                0 │          0 │        1875 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     81 │  MAKELA1 │      3 │      2 │      0 │ first_order │ -1.41e+00 │     5.81e-04 │      5 │  7.93e-09 │    1.05e-06 │        41 │         33 │         59 │             59 │             59 │          0 │           0 │         0 │             0 │             0 │         520 │            1040 │             520 │          558 │                0 │                0 │          0 │         520 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     82 │     HS51 │      5 │      3 │      0 │ first_order │  1.23e-11 │     9.99e-05 │      7 │  5.58e-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 │     3.40e-04 │      5 │  2.47e-12 │    1.24e-07 │        19 │         25 │         24 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         231 │               0 │               0 │          261 │                0 │                0 │          0 │         231 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     84 │     BT12 │      5 │      3 │      0 │ first_order │  6.19e+00 │     4.18e-04 │      5 │  2.76e-06 │    4.87e-07 │        41 │         45 │         47 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         411 │               0 │               0 │          461 │                0 │                0 │          0 │         411 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     85 │ PENTAGON │      6 │     15 │      0 │ first_order │  1.37e-04 │     8.70e-04 │      4 │  2.03e-08 │    2.41e-07 │        29 │         28 │         38 │             38 │              0 │          0 │           0 │         0 │             0 │             0 │         520 │            1040 │               0 │          552 │                0 │                0 │          0 │         520 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     86 │ HS111LNP │     10 │      3 │      0 │ first_order │ -4.78e+01 │     3.71e-03 │      5 │  2.14e-10 │    2.59e-06 │        28 │         34 │         33 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         457 │               0 │               0 │          496 │                0 │                0 │          0 │         457 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     87 │     HS52 │      5 │      3 │      0 │ first_order │  5.33e+00 │     9.20e-05 │      6 │  5.27e-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 │     6.65e-02 │     15 │  3.10e-12 │    2.44e-06 │        58 │         90 │         61 │              0 │             61 │          0 │           0 │         0 │             0 │             0 │         456 │               0 │             456 │          561 │                0 │                0 │          0 │         456 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     89 │ CONGIGMZ │      3 │      5 │      0 │ first_order │  2.00e+00 │     5.36e-04 │      5 │  4.26e-11 │    4.92e-08 │        24 │         32 │         26 │             26 │             26 │          0 │           0 │         0 │             0 │             0 │         432 │             864 │             432 │          469 │                0 │                0 │          0 │         432 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     90 │   POLAK5 │      3 │      2 │      0 │ first_order │  5.00e+01 │     2.01e-02 │      5 │  1.61e-09 │    9.17e-09 │      1728 │       1789 │       2569 │              0 │           2569 │          0 │           0 │         0 │             0 │             0 │       21047 │               0 │           21047 │        22841 │                0 │                0 │          0 │       21047 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     91 │     HS47 │      5 │      3 │      0 │ first_order │  2.89e-14 │     6.84e-04 │      5 │  3.72e-07 │    1.91e-07 │        45 │         47 │         55 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │         491 │               0 │               0 │          543 │                0 │                0 │          0 │         491 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     92 │      CB3 │      3 │      3 │      0 │ first_order │  2.00e+00 │     6.23e-04 │      5 │  7.22e-14 │    5.29e-08 │        44 │         39 │         60 │              0 │             60 │          0 │           0 │         0 │             0 │             0 │         497 │               0 │             497 │          541 │                0 │                0 │          0 │         497 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     93 │     HS12 │      2 │      1 │      0 │ first_order │ -3.00e+01 │     2.64e-04 │      4 │  1.73e-06 │    6.13e-07 │        30 │         33 │         35 │              0 │             35 │          0 │           0 │         0 │             0 │             0 │         245 │               0 │             245 │          282 │                0 │                0 │          0 │         245 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     94 │      BT3 │      5 │      3 │      0 │ first_order │  4.09e+00 │     9.30e-05 │      5 │  7.43e-09 │    5.55e-06 │         7 │         17 │          7 │              0 │              0 │          0 │           0 │         0 │             0 │             0 │          52 │               0 │               0 │           74 │                0 │                0 │          0 │          52 │           0 │            0 │              0 │                  0 │                    0 │                     0 │                   0 │                    0 │                    0 │                                           │
│    percival │     95 │    HS268 │      5 │      5 │      0 │ first_order │ -3.64e-12 │     3.14e-04 │      4 │  5.27e-08 │    1.90e-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.33e-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