sleipnirgroup-jormungandr 0.6.7.dev42__tar.gz → 0.6.7.dev45__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of sleipnirgroup-jormungandr might be problematic. Click here for more details.
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/PKG-INFO +1 -1
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/autodiff/expression.hpp +1 -2
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/optimization/solver/ipm.hpp +19 -19
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/optimization/solver/util/feasibility_restoration.hpp +5 -4
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/util/intrusive_shared_ptr.hpp +1 -1
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/util/pool.hpp +5 -4
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/src/sleipnir/__init__.py +1 -1
- sleipnirgroup_jormungandr-0.6.7.dev42/include/sleipnir/optimization/solver/util/lagrange_multiplier_estimate.hpp +0 -30
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/CMakeLists.txt +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/LICENSE.txt +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/README.md +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/SleipnirConfig.cmake.in +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/cmake/BuildTypes.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/cmake/CompilerFlags.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/cmake/Pybind11Mkdoc.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/cmake/SubdirList.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/cmake/arm-none-eabi.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/autodiff/expression_graph.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/autodiff/expression_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/autodiff/gradient.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/autodiff/hessian.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/autodiff/jacobian.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/autodiff/sleipnir_base.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/autodiff/slice.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/autodiff/variable.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/autodiff/variable_block.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/autodiff/variable_matrix.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/optimization/multistart.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/optimization/ocp/dynamics_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/optimization/ocp/timestep_method.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/optimization/ocp/transcription_method.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/optimization/ocp.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/optimization/problem.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/optimization/solver/exit_status.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/optimization/solver/ipm_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/optimization/solver/iteration_info.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/optimization/solver/newton.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/optimization/solver/newton_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/optimization/solver/options.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/optimization/solver/sqp.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/optimization/solver/sqp_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/optimization/solver/util/all_finite.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/optimization/solver/util/append_as_triplets.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/optimization/solver/util/bounds.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/optimization/solver/util/dense_kkt_solver.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/optimization/solver/util/filter.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/optimization/solver/util/fraction_to_the_boundary_rule.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/optimization/solver/util/inertia.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/optimization/solver/util/kkt_error.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/optimization/solver/util/kkt_solver.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/optimization/solver/util/problem_scaling.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/optimization/solver/util/sparse_inf_norms.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/optimization/solver/util/sparse_kkt_solver.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/util/assert.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/util/concepts.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/util/empty.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/util/function_ref.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/util/print.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/util/print_diagnostics.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/util/profiler.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/util/scope_exit.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/util/spy.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/include/sleipnir/util/symbol_exports.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/pyproject.toml +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/cpp/autodiff/bind_expression_type.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/cpp/autodiff/bind_gradient.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/cpp/autodiff/bind_hessian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/cpp/autodiff/bind_jacobian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/cpp/autodiff/bind_variable.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/cpp/autodiff/bind_variable_block.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/cpp/autodiff/bind_variable_matrix.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/cpp/binders.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/cpp/docstrings.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/cpp/for_each_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/cpp/main.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/cpp/optimization/bind_equality_constraints.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/cpp/optimization/bind_inequality_constraints.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/cpp/optimization/bind_ocp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/cpp/optimization/bind_problem.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/cpp/optimization/ocp/bind_dynamics_type.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/cpp/optimization/ocp/bind_timestep_method.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/cpp/optimization/ocp/bind_transcription_method.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/cpp/optimization/solver/bind_exit_status.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/cpp/optimization/solver/bind_iteration_info.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/cpp/try_cast.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/src/sleipnir/autodiff/__init__.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/src/sleipnir/optimization/__init__.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/test/autodiff/gradient_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/test/autodiff/hessian_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/test/autodiff/jacobian_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/test/autodiff/variable_matrix_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/test/autodiff/variable_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/test/optimization/arm_on_elevator_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/test/optimization/cart_pole_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/test/optimization/cart_pole_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/test/optimization/cart_pole_util.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/test/optimization/constraints_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/test/optimization/decision_variable_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/test/optimization/differential_drive_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/test/optimization/differential_drive_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/test/optimization/differential_drive_util.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/test/optimization/double_integrator_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/test/optimization/flywheel_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/test/optimization/flywheel_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/test/optimization/linear_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/test/optimization/multistart_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/test/optimization/near.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/test/optimization/nonlinear_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/test/optimization/problem_spy_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/test/optimization/quadratic_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/test/optimization/rk4.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/test/optimization/solver/exit_status_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/test/optimization/trivial_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/src/autodiff/gradient.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/src/autodiff/hessian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/src/autodiff/jacobian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/src/autodiff/variable_matrix.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/src/optimization/ocp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/src/optimization/problem.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/src/optimization/solver/ipm.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/src/optimization/solver/newton.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/src/optimization/solver/sqp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/src/util/pool.cpp +0 -0
|
@@ -772,8 +772,7 @@ constexpr void dec_ref_count(Expression<Scalar>* expr) {
|
|
|
772
772
|
// refcounts, which was already done above.
|
|
773
773
|
if constexpr (USE_POOL_ALLOCATOR) {
|
|
774
774
|
auto alloc = global_pool_allocator<Expression<Scalar>>();
|
|
775
|
-
std::allocator_traits<decltype(alloc)>::deallocate(
|
|
776
|
-
alloc, elem, sizeof(Expression<Scalar>));
|
|
775
|
+
std::allocator_traits<decltype(alloc)>::deallocate(alloc, elem, 1);
|
|
777
776
|
} else {
|
|
778
777
|
operator delete(elem);
|
|
779
778
|
}
|
|
@@ -777,30 +777,30 @@ ExitStatus ipm(const IPMMatrixCallbacks<Scalar>& matrix_callbacks,
|
|
|
777
777
|
y = trial_y;
|
|
778
778
|
z = trial_z;
|
|
779
779
|
|
|
780
|
-
// A requirement for the convergence proof is that the primal-dual barrier
|
|
781
|
-
// term Hessian Σₖ₊₁ does not deviate arbitrarily much from the primal
|
|
782
|
-
// barrier term Hessian μSₖ₊₁⁻².
|
|
783
|
-
//
|
|
784
|
-
// Σₖ₊₁ = μSₖ₊₁⁻²
|
|
785
|
-
// Sₖ₊₁⁻¹Zₖ₊₁ = μSₖ₊₁⁻²
|
|
786
|
-
// Zₖ₊₁ = μSₖ₊₁⁻¹
|
|
787
|
-
//
|
|
788
|
-
// We ensure this by resetting
|
|
789
|
-
//
|
|
790
|
-
// zₖ₊₁ = clamp(zₖ₊₁, 1/κ_Σ μ/sₖ₊₁, κ_Σ μ/sₖ₊₁)
|
|
791
|
-
//
|
|
792
|
-
// for some fixed κ_Σ ≥ 1 after each step. See equation (16) of [2].
|
|
793
|
-
for (int row = 0; row < z.rows(); ++row) {
|
|
794
|
-
constexpr Scalar κ_Σ(1e10);
|
|
795
|
-
z[row] =
|
|
796
|
-
std::clamp(z[row], Scalar(1) / κ_Σ * μ / s[row], κ_Σ * μ / s[row]);
|
|
797
|
-
}
|
|
798
|
-
|
|
799
780
|
f = trial_f;
|
|
800
781
|
c_e = trial_c_e;
|
|
801
782
|
c_i = trial_c_i;
|
|
802
783
|
}
|
|
803
784
|
|
|
785
|
+
// A requirement for the convergence proof is that the primal-dual barrier
|
|
786
|
+
// term Hessian Σₖ₊₁ does not deviate arbitrarily much from the primal
|
|
787
|
+
// barrier term Hessian μSₖ₊₁⁻².
|
|
788
|
+
//
|
|
789
|
+
// Σₖ₊₁ = μSₖ₊₁⁻²
|
|
790
|
+
// Sₖ₊₁⁻¹Zₖ₊₁ = μSₖ₊₁⁻²
|
|
791
|
+
// Zₖ₊₁ = μSₖ₊₁⁻¹
|
|
792
|
+
//
|
|
793
|
+
// We ensure this by resetting
|
|
794
|
+
//
|
|
795
|
+
// zₖ₊₁ = clamp(zₖ₊₁, 1/κ_Σ μ/sₖ₊₁, κ_Σ μ/sₖ₊₁)
|
|
796
|
+
//
|
|
797
|
+
// for some fixed κ_Σ ≥ 1 after each step. See equation (16) of [2].
|
|
798
|
+
for (int row = 0; row < z.rows(); ++row) {
|
|
799
|
+
constexpr Scalar κ_Σ(1e10);
|
|
800
|
+
z[row] =
|
|
801
|
+
std::clamp(z[row], Scalar(1) / κ_Σ * μ / s[row], κ_Σ * μ / s[row]);
|
|
802
|
+
}
|
|
803
|
+
|
|
804
804
|
// Update autodiff for Jacobians and Hessian
|
|
805
805
|
A_e = matrices.A_e(x);
|
|
806
806
|
A_i = matrices.A_i(x);
|
|
@@ -19,7 +19,6 @@
|
|
|
19
19
|
#include "sleipnir/optimization/solver/options.hpp"
|
|
20
20
|
#include "sleipnir/optimization/solver/sqp_matrix_callbacks.hpp"
|
|
21
21
|
#include "sleipnir/optimization/solver/util/append_as_triplets.hpp"
|
|
22
|
-
#include "sleipnir/optimization/solver/util/lagrange_multiplier_estimate.hpp"
|
|
23
22
|
#include "sleipnir/optimization/solver/util/problem_scaling.hpp"
|
|
24
23
|
#include "sleipnir/util/print_diagnostics.hpp"
|
|
25
24
|
|
|
@@ -317,7 +316,9 @@ ExitStatus feasibility_restoration(
|
|
|
317
316
|
auto g = matrices.g(x);
|
|
318
317
|
auto A_e = matrices.A_e(x);
|
|
319
318
|
|
|
320
|
-
|
|
319
|
+
// Reset the equality constraint duals since feasibility restoration didn't
|
|
320
|
+
// account for the cost function
|
|
321
|
+
y.setZero();
|
|
321
322
|
|
|
322
323
|
return ExitStatus::SUCCESS;
|
|
323
324
|
} else if (status == ExitStatus::SUCCESS) {
|
|
@@ -649,8 +650,8 @@ ExitStatus feasibility_restoration(
|
|
|
649
650
|
const DenseVector c_i = matrices.c_i(x);
|
|
650
651
|
s = (c_i.array() >= Scalar(1e-2)).select(c_i, Scalar(1));
|
|
651
652
|
|
|
652
|
-
// Reset the equality constraint duals since
|
|
653
|
-
//
|
|
653
|
+
// Reset the equality constraint duals since feasibility restoration didn't
|
|
654
|
+
// account for the cost function
|
|
654
655
|
y.setZero();
|
|
655
656
|
|
|
656
657
|
// Update the inequality constraint duals with a Newton step for
|
|
@@ -272,7 +272,7 @@ IntrusiveSharedPtr<T> make_intrusive_shared(Args&&... args) {
|
|
|
272
272
|
/// @param args Constructor arguments for T.
|
|
273
273
|
template <typename T, typename Alloc, typename... Args>
|
|
274
274
|
IntrusiveSharedPtr<T> allocate_intrusive_shared(Alloc alloc, Args&&... args) {
|
|
275
|
-
auto ptr = std::allocator_traits<Alloc>::allocate(alloc,
|
|
275
|
+
auto ptr = std::allocator_traits<Alloc>::allocate(alloc, 1);
|
|
276
276
|
std::allocator_traits<Alloc>::construct(alloc, ptr,
|
|
277
277
|
std::forward<Args>(args)...);
|
|
278
278
|
return IntrusiveSharedPtr<T>{ptr};
|
|
@@ -199,19 +199,20 @@ class PoolAllocator {
|
|
|
199
199
|
|
|
200
200
|
/// Returns a block of memory from the pool.
|
|
201
201
|
///
|
|
202
|
-
/// @param n Number of
|
|
202
|
+
/// @param n Number of objects in the block.
|
|
203
203
|
/// @return A block of memory from the pool.
|
|
204
204
|
[[nodiscard]]
|
|
205
205
|
constexpr T* allocate(size_t n) {
|
|
206
|
-
return static_cast<T*>(
|
|
206
|
+
return static_cast<T*>(
|
|
207
|
+
m_memory_resource->allocate(n * sizeof(T), alignof(T)));
|
|
207
208
|
}
|
|
208
209
|
|
|
209
210
|
/// Gives a block of memory back to the pool.
|
|
210
211
|
///
|
|
211
212
|
/// @param p A pointer to the block of memory.
|
|
212
|
-
/// @param n Number of
|
|
213
|
+
/// @param n Number of objects in the block.
|
|
213
214
|
constexpr void deallocate(T* p, size_t n) {
|
|
214
|
-
m_memory_resource->deallocate(p, n, alignof(T));
|
|
215
|
+
m_memory_resource->deallocate(p, n * sizeof(T), alignof(T));
|
|
215
216
|
}
|
|
216
217
|
|
|
217
218
|
private:
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Sleipnir contributors
|
|
2
|
-
|
|
3
|
-
#pragma once
|
|
4
|
-
|
|
5
|
-
#include <Eigen/Core>
|
|
6
|
-
#include <Eigen/SparseCholesky>
|
|
7
|
-
#include <Eigen/SparseCore>
|
|
8
|
-
|
|
9
|
-
namespace slp {
|
|
10
|
-
|
|
11
|
-
/// Estimates Lagrange multipliers for SQP.
|
|
12
|
-
///
|
|
13
|
-
/// @tparam Scalar Scalar type.
|
|
14
|
-
/// @param g Cost function gradient ∇f.
|
|
15
|
-
/// @param A_e Equality constraint Jacobian Aₑ(x).
|
|
16
|
-
template <typename Scalar>
|
|
17
|
-
Eigen::Vector<Scalar, Eigen::Dynamic> lagrange_multiplier_estimate(
|
|
18
|
-
const Eigen::SparseVector<Scalar>& g,
|
|
19
|
-
const Eigen::SparseMatrix<Scalar>& A_e) {
|
|
20
|
-
// Lagrange multiplier estimates
|
|
21
|
-
//
|
|
22
|
-
// ∇f − Aₑᵀy = 0
|
|
23
|
-
// Aₑᵀy = ∇f
|
|
24
|
-
// y = (AₑAₑᵀ)⁻¹Aₑ∇f
|
|
25
|
-
return Eigen::SimplicialLDLT<Eigen::SparseMatrix<Scalar>>{A_e *
|
|
26
|
-
A_e.transpose()}
|
|
27
|
-
.solve(A_e * g);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
} // namespace slp
|
{sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/CMakeLists.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/pyproject.toml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/python/cpp/main.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sleipnirgroup_jormungandr-0.6.7.dev42 → sleipnirgroup_jormungandr-0.6.7.dev45}/src/util/pool.cpp
RENAMED
|
File without changes
|