Skip to content

v2.9.1

Latest

Choose a tag to compare

@github-actions github-actions released this 13 Oct 06:58
· 8 commits to main since this release
3e2fd1b

Uno v2.9.1 implements the following.

Note: the options loose_primal_tolerance, loose_dual_tolerance, and loose_tolerance_iteration_threshold were superseded by these options.

Features

  • Upgrade to ASL_jll v0.1.5 (#851)
  • Function scaling for all methods (#932)
  • Acceptance of tiny steps in BacktrackingLineSearch (#962)
  • Interruption (Ctrl-C) handler (#975)

Improvements

  • Improve phase switching (#915)
  • Improve statistics printing (#922)
  • Print the elapsed time in the statistics table (#923)
  • Reduced memory allocations (#924)
  • BLAS-friendly View operators (#921)
  • Delay initialization of restoration to first switch (#931)
  • Introduce the slacks in the barrier reformulation (#936)
  • More robust primal-dual inertia correction (#941)
  • IPM: relax both the variables bounds and the inequality constraints bounds (#943)
  • Safeguard in PrimalDualInteriorPointProblem::set_auxiliary_measure (#945)
  • Accumulate Jacobian-vector products (#946)
  • Compute residuals and termination status only for accepted iterates (#953)
  • Do not set the constraint multipliers when initializing the elastics (#956)
  • Updated uno_default.opt to CUTEst style (#957)
  • Revert the relaxation of linear constraints only in the presence of a trust-region constraint (#908)
  • IPM: dynamically push the barrier iterates away from the bounds, instead of relaxing the bounds (#959)
  • Added option to regularize only the original variables in the augmented matrix (#960, #964)
  • Options implemented with std::variant (#949)
  • Merged EQPSolver and WoodburyEQPSolver into single class template (#969)
  • Use barrier stationarity and complementarity in termination residuals (#966)
  • Small optimizations (#971)
  • Handle the fixed variables in PrimalDualInteriorPointProblem (#972, #973)
  • Criteria for acceptable termination (#974)

Bug fixes

  • Fix MOI.is_empty for model with parameters and empty constraints (#926)
  • Properly re-create the iterate upon switching phases (#918)
  • Reset the objective_gradient_buffer in Subproblem::assemble_augmented_rhs (#938)
  • Fix options override (#950)
  • IPOPT switching condition with the correct exponents (#952)
  • Fix the objective comparison in the Wächter filter (#961)
  • Reset the evaluations if the iterate changed in PrimalDualInteriorPointProblem::postprocess_iterate (#963)
  • IPM: start the restoration at the correct barrier parameter (#965)
  • Fix BQPD's insufficient space available for profile (#928)
  • Many bugs fixed after Claude code reviews (#942, #951, #955, #958, #976)

Build

  • Fixed compiler warnings (#920)

Documentation

  • Updated the Benchmarks documentation page (#919)

CI and tests

  • Fix missing OpenMP_C in MinGW unit tests (#937)
  • Fixed the nactive dual test (multipliers not unique) (#939)
  • CUTEst workflow: fail loudly upon error (#948)
  • More unit tests (Norm, Funnel, BarrierParameterUpdateStrategy) (#968)