Repository navigation
Uno v2.9.3 implements:
Features
- Iterative refinement and adaptive pivoting tolerance (#988, #1025)
- Waechter filter: raise the infeasibility upper bound when it limits the line search (#996)
- Line search: add IPOPT-style watchdog to escape tiny-step crawls (#1001)
- Dump KKT systems to disk in MatrixMarket format (#895)
Bug fixes
- Skip postprocessing when initialization failed, and map only
EvaluationErrortoEVALUATION_ERROR(#1008) autopreset: only pick presets supported by the available solvers (#1008)- MA27: keep
LAandLIWconsistent betweenMA27BDandMA27CD(#1008) - Reject the trust-region + interior-point combination explicitly (#1008)
- Fix the Woodbury correction for L-SR1 Hessians (#1008)
- BQPD: keep
kmax <= nand bound the workspace enlargements (#1008) - Fix the name of the L-BFGS Hessian model in the list of strategies (#1008)
- IPM: invalidate the evaluations when fixed variables are reset during postprocessing (#1008)
- Report an unusable HSL library instead of an unknown linear solver (#1008)
- HSL runtime loading: keep libhsl mapped after unloading (
RTLD_NODELETE) (#1024) - Watchdog: revert to the watchdog iterate when the direction fails at a watchdog trial iterate (#1041)
- [unopy] Apply the preset when it is set with
set_option("preset", ...)(#1039) - Various IPM fixes (#993)
- Properly initialize the elastic variables (#998)
- Feasibility restoration: do not recenter the prox term when the restoration barrier parameter decreases (#1002)
Improvements
- Fortran example: check API return values and the solution (#1015)
- HSL runtime loading: advertise MA57 and MA27 only if their routines are found (#1018)
- Improved the adaptive increase of the filter upper bound (#1023)
- Improve robustness of SQP and IPM (#1027)
- [unopy] Faster model setup from numpy arrays and lower per-callback overhead (#1033)
- IPM: terminate on the constraint violation of the unslacked problem (#1038)
- Automatic condensation of Newton systems (#987)
- Relax the bounds dynamically when iterate too close to bounds (#992)
CI
- Mittelmann: before/after comparison against another PR (#1010)
- Added workflow to run CUTEst benchmark (#1011, #1028, #1036, #1037)
- Unit tests in Release (#1012)
- Enable
_GLIBCXX_ASSERTIONSin the Debug unit tests (#1013) - Unit tests with Clang and libc++ on Linux (#1014)
- Build and test with a pure LLVM toolchain (clang + flang) (#1016, #1021)
- Treat warnings as errors on one canonical job (#1017)
- Test the runtime behavior of
HSL_RUNTIME_LOADING(#1019) NewtonSystemTests: compare direct and condensed computations of bound duals with relative tolerance (#1022)- [unopy] Test suite (#1034)