Skip to main content
Version: v0.7.0 beta

Release Notes

v0.7.0 beta

  • Added Mehrotra strategy and its correction step option mehrotra_correction to the barrier_strategy option, 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_inequality and rectangle_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 sqp solving 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_check option)
  • 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.simd option)
  • 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 erk2 integrator
  • Added line_search_max_num_consecutive_fails to options, allowing control of the maximum number of consecutive line search failures
  • Added max_num_function_eval_ratio and max_num_function_eval_offset to 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