Release Notes
v0.7.0 beta
- Added Mehrotra strategy and its correction step option
mehrotra_correctionto thebarrier_strategyoption, which can improve solving stability and efficiency for SOCP problems - Added support for
second_order_cone_inequality, which can be used for linear/nonlinear second order cone constraints - Added support for
squared_distance_to_path, which can compute the squared distance from a point to a path, enabling functionalities such as path following - Added support for
point_to_boundary_inequality, which can be used for point-to-boundary obstacle avoidance constraints - Added support for introducing optimization variables in the dimensions of
point_to_rectangle_inequalityandrectangle_to_rectangle_inequality, which can handle different longitudinal and lateral obstacle avoidance distances in dynamic obstacle avoidance - Added support for
tol_max_ineq_dual, which can determine whether to exit iteration based on the maximum value of inequality constraint Lagrange multipliers - Added support for the
sqpsolving algorithm
v0.6.0
Retirement date: 20270531
Changes:
- Fixed performance issue with BFGS during warm start
- Fixed poor convergence of Gauss-Newton on certain problems
- Optimized sparse matrix storage, reducing memory usage and computation time
- Added validity check for options during solving
- Added compile-time version consistency check between prob and solver
- Added options for customizing source file and header file extensions during code generation
- Added support for 2D occupancy grid obstacle avoidance constraints (
point_to_occupancy_map_inequality) - Added support for the QNX platform (
qnx-arm64-gcc) - Added support for the MSVC compiler on the Windows platform (
windows-x86_64-msvc) - Added support for outputting the 8 largest inequality constraint Lagrange multipliers
- Added support for
tol_obj, which can determine whether to exit iteration based on changes in objective function value - Added configuration options for code style, allowing selection of indentation style and line width for generated code
- Added support for static code analysis on generated code (enabled via the
option.static_checkoption) - Added definition of solver UUID in generated code
- Added support for obtaining the exit reason via
output.exit_reason - Added support for obtaining function evaluation time via
output.function_eval_time - Added support for the NEON instruction set, improving computation efficiency on ARM platforms (enabled via the
option.simdoption) - Improved computation efficiency
- Added initialization options for customizing the initialization method of equality and inequality constraint Lagrange multipliers
v0.5.2
Retirement date: 20260531
Changes:
- Supported passing custom data to external functions via
_prob->external_data - Added support for the
erk2integrator - Added
line_search_max_num_consecutive_failsto options, allowing control of the maximum number of consecutive line search failures - Added
max_num_function_eval_ratioandmax_num_function_eval_offsetto options, allowing control of the maximum number of function evaluations - Supported disabling constraints when constraint value is inf or soft constraint weight is less than 1e-8
v0.5.1
Changes:
- Added support for the valid stage count functionality
v0.5.0
Changes:
- Added obstacle avoidance extensions, allowing direct use of obstacle avoidance constraints in modeling (point-to-rectangle, rectangle-to-rectangle)
- Distributed the client via whl files for easier installation
- Improved solving efficiency and robustness
v0.4.0
Solving changes:
- Added serialization tool, which can serialize optimization problems to files or deserialize and read files for solving. Facilitates problem reproduction and test protection.
- Optimized memory usage, e.g., the Hessian matrix in workspace is now stored as lower triangular, saving approximately 10% of storage overall
Modeling changes:
- Improved code generation speed, supporting problem generation with up to 100 variables per stage
v0.3.0
Solving changes:
- Optimized initialization logic, providing a unified initialization function for option, problem, and workspace
- Print version and other information before solving
- To maintain consistency of solve_status and remove ambiguity, removed solve_status from output. solve_status can only be obtained from the return value of the solve function
- Optimized computation and solving logic
- Fixed function redefinition issues when compiling multiple solvers on the ARM platform
- Fixed integrator numerical issues
Modeling changes:
- Improved code generation speed
- Introduced Matrix in modeling to simplify model definition
- Introduced verbose option to control information printing during code generation
- Introduced enable_timing option to control whether timing functionality is included in generated code
v0.2.0
Changes:
- Improved code generation speed
- Optimized interior-point method solving logic
- Fixed irk4 computation order issues and other bugs
v0.1.0
Initial version