Repository navigation
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_jllv0.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
Viewoperators (#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.optto 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
EQPSolverandWoodburyEQPSolverinto 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_emptyfor model with parameters and empty constraints (#926) - Properly re-create the iterate upon switching phases (#918)
- Reset the
objective_gradient_bufferinSubproblem::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)