Expand description
TNLP wrapper that counts evaluation calls so the CLI can mirror Ipopt’s end-of-run “Number of … evaluations = N” summary block.
All eight required TNLP methods (and intermediate_callback) are
forwarded transparently to the inner TNLP. The counters live in
Cell<i32>s on the wrapper itself, so the CLI can read them via
Rc<RefCell<CountingTnlp>>::borrow() after the solve completes.
The wrapper does not count every call — calls that pass an
irow/jcol-only SparsityRequest::Structure (the symbolic
sparsity-pattern call, not the values call) don’t represent a real
Jacobian / Hessian evaluation, mirroring the way Ipopt reports
these numbers.