Skip to content

v2.9.3

Latest

Choose a tag to compare

@github-actions github-actions released this 03 Nov 13:42
· 29 commits to main since this release
3d7b621

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 EvaluationError to EVALUATION_ERROR (#1008)
  • auto preset: only pick presets supported by the available solvers (#1008)
  • MA27: keep LA and LIW consistent between MA27BD and MA27CD (#1008)
  • Reject the trust-region + interior-point combination explicitly (#1008)
  • Fix the Woodbury correction for L-SR1 Hessians (#1008)
  • BQPD: keep kmax <= n and 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_ASSERTIONS in 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)