sleipnirgroup-jormungandr 0.6.5.dev1__tar.gz → 0.6.5.dev3__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.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/PKG-INFO +1 -1
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/solver/interior_point.hpp +19 -10
- sleipnirgroup_jormungandr-0.6.5.dev3/python/src/sleipnir/__init__.py +5 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/src/sleipnir/autodiff/__init__.py +1 -1
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/src/sleipnir/optimization/__init__.py +2 -8
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/test/autodiff/gradient_test.py +1 -1
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/test/autodiff/hessian_test.py +1 -1
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/test/autodiff/variable_matrix_test.py +1 -1
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/test/optimization/arm_on_elevator_problem_test.py +1 -1
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/test/optimization/cart_pole_util.py +2 -2
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/test/optimization/differential_drive_util.py +1 -1
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/test/optimization/flywheel_ocp_test.py +7 -7
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/test/optimization/multistart_test.py +2 -2
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/test/optimization/nonlinear_problem_test.py +1 -1
- sleipnirgroup_jormungandr-0.6.5.dev1/python/src/sleipnir/__init__.py +0 -5
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/CMakeLists.txt +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/LICENSE.txt +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/README.md +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/SleipnirConfig.cmake.in +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/cmake/BuildTypes.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/cmake/CompilerFlags.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/cmake/Pybind11Mkdoc.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/cmake/SubdirList.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/cmake/arm-none-eabi.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/autodiff/expression.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/autodiff/expression_graph.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/autodiff/expression_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/autodiff/gradient.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/autodiff/hessian.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/autodiff/jacobian.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/autodiff/sleipnir_base.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/autodiff/slice.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/autodiff/variable.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/autodiff/variable_block.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/autodiff/variable_matrix.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/multistart.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/ocp/dynamics_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/ocp/timestep_method.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/ocp/transcription_method.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/ocp.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/problem.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/solver/exit_status.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/solver/interior_point_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/solver/iteration_info.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/solver/newton.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/solver/newton_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/solver/options.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/solver/sqp.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/solver/sqp_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/solver/util/all_finite.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/solver/util/append_as_triplets.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/solver/util/bounds.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/solver/util/dense_regularized_ldlt.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/solver/util/feasibility_restoration.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/solver/util/filter.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/solver/util/fraction_to_the_boundary_rule.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/solver/util/inertia.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/solver/util/is_locally_infeasible.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/solver/util/kkt_error.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/solver/util/lagrange_multiplier_estimate.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/solver/util/problem_scaling.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/solver/util/regularized_ldlt.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/solver/util/sparse_inf_norms.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/optimization/solver/util/sparse_regularized_ldlt.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/util/assert.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/util/concepts.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/util/empty.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/util/function_ref.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/util/intrusive_shared_ptr.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/util/pool.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/util/print.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/util/print_diagnostics.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/util/profiler.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/util/scope_exit.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/util/spy.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/include/sleipnir/util/symbol_exports.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/pyproject.toml +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/cpp/autodiff/bind_expression_type.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/cpp/autodiff/bind_gradient.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/cpp/autodiff/bind_hessian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/cpp/autodiff/bind_jacobian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/cpp/autodiff/bind_variable.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/cpp/autodiff/bind_variable_block.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/cpp/autodiff/bind_variable_matrix.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/cpp/binders.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/cpp/docstrings.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/cpp/for_each_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/cpp/main.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/cpp/optimization/bind_equality_constraints.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/cpp/optimization/bind_inequality_constraints.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/cpp/optimization/bind_ocp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/cpp/optimization/bind_problem.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/cpp/optimization/ocp/bind_dynamics_type.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/cpp/optimization/ocp/bind_timestep_method.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/cpp/optimization/ocp/bind_transcription_method.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/cpp/optimization/solver/bind_exit_status.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/cpp/optimization/solver/bind_iteration_info.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/cpp/try_cast.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/test/autodiff/jacobian_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/test/autodiff/variable_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/test/optimization/cart_pole_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/test/optimization/cart_pole_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/test/optimization/constraints_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/test/optimization/decision_variable_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/test/optimization/differential_drive_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/test/optimization/differential_drive_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/test/optimization/double_integrator_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/test/optimization/flywheel_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/test/optimization/linear_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/test/optimization/problem_spy_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/test/optimization/quadratic_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/test/optimization/rk4.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/test/optimization/solver/exit_status_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/test/optimization/trivial_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/src/autodiff/gradient.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/src/autodiff/hessian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/src/autodiff/jacobian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/src/autodiff/variable_matrix.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/src/optimization/ocp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/src/optimization/problem.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/src/optimization/solver/interior_point.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/src/optimization/solver/newton.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/src/optimization/solver/sqp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/src/util/pool.cpp +0 -0
|
@@ -467,7 +467,7 @@ ExitStatus interior_point(
|
|
|
467
467
|
kkt_matrix_decomp_profiler.stop();
|
|
468
468
|
ScopedProfiler kkt_system_solve_profiler{kkt_system_solve_prof};
|
|
469
469
|
|
|
470
|
-
auto compute_step = [&](Step& step) {
|
|
470
|
+
auto compute_step = [&](Step& step, const DenseVector& c_i_minus_s) {
|
|
471
471
|
// p = [ pˣ]
|
|
472
472
|
// [−pʸ]
|
|
473
473
|
DenseVector p = solver.solve(rhs);
|
|
@@ -475,11 +475,11 @@ ExitStatus interior_point(
|
|
|
475
475
|
step.p_y = -p.segment(x.rows(), y.rows());
|
|
476
476
|
|
|
477
477
|
// pˢ = cᵢ − s + Aᵢpˣ
|
|
478
|
-
// pᶻ =
|
|
479
|
-
step.p_s =
|
|
480
|
-
step.p_z =
|
|
478
|
+
// pᶻ = μS⁻¹e − z − Σpˢ
|
|
479
|
+
step.p_s = c_i_minus_s + A_i * step.p_x;
|
|
480
|
+
step.p_z = μ * s.cwiseInverse() - z - Σ * step.p_s;
|
|
481
481
|
};
|
|
482
|
-
compute_step(step);
|
|
482
|
+
compute_step(step, c_i - s);
|
|
483
483
|
|
|
484
484
|
kkt_system_solve_profiler.stop();
|
|
485
485
|
ScopedProfiler line_search_profiler{line_search_prof};
|
|
@@ -556,6 +556,7 @@ ExitStatus interior_point(
|
|
|
556
556
|
Scalar α_soc = α;
|
|
557
557
|
Scalar α_z_soc = α_z;
|
|
558
558
|
DenseVector c_e_soc = c_e;
|
|
559
|
+
DenseVector c_i_minus_s_soc = c_i - s;
|
|
559
560
|
|
|
560
561
|
Scalar soc_constraint_violation = next_constraint_violation;
|
|
561
562
|
|
|
@@ -589,15 +590,23 @@ ExitStatus interior_point(
|
|
|
589
590
|
|
|
590
591
|
// Rebuild Newton-KKT rhs with updated constraint values.
|
|
591
592
|
//
|
|
592
|
-
// rhs = −[∇f − Aₑᵀy − Aᵢᵀ(
|
|
593
|
-
// [
|
|
593
|
+
// rhs = −[∇f − Aₑᵀy − Aᵢᵀ(μS⁻¹e − Σ(cᵢ − s)ˢᵒᶜ)]
|
|
594
|
+
// [ cₑˢᵒᶜ ]
|
|
594
595
|
//
|
|
595
|
-
// where
|
|
596
|
+
// where
|
|
597
|
+
//
|
|
598
|
+
// cₑˢᵒᶜ = αˢᵒᶜcₑ(xₖ) + cₑ(xₖ + αˢᵒᶜpˣˢᵒᶜ)
|
|
599
|
+
// (cᵢ − s)ˢᵒᶜ = αˢᵒᶜ(cᵢ(xₖ) − sₖ) + cᵢ(xₖ + αˢᵒᶜpˣˢᵒᶜ)
|
|
600
|
+
// − (sₖ + αˢᵒᶜpˢˢᵒᶜ).
|
|
596
601
|
c_e_soc = α_soc * c_e_soc + trial_c_e;
|
|
597
|
-
|
|
602
|
+
c_i_minus_s_soc = α_soc * c_i_minus_s_soc + trial_c_i - trial_s;
|
|
603
|
+
rhs.segment(0, x.rows()) =
|
|
604
|
+
-g + A_e.transpose() * y +
|
|
605
|
+
A_i.transpose() * (μ * s.cwiseInverse() - Σ * c_i_minus_s_soc);
|
|
606
|
+
rhs.segment(x.rows(), y.rows()) = -c_e_soc;
|
|
598
607
|
|
|
599
608
|
// Solve the Newton-KKT system
|
|
600
|
-
compute_step(soc_step);
|
|
609
|
+
compute_step(soc_step, c_i_minus_s_soc);
|
|
601
610
|
|
|
602
611
|
// αˢᵒᶜ = max(α ∈ (0, 1] : sₖ + αpₖˢ ≥ (1−τⱼ)sₖ)
|
|
603
612
|
// αₖᶻˢᵒᶜ = max(α ∈ (0, 1] : zₖ + αpₖᶻ ≥ (1−τⱼ)zₖ)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import concurrent.futures
|
|
2
2
|
|
|
3
|
-
from .._sleipnir.optimization import *
|
|
3
|
+
from .._sleipnir.optimization import *
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
def multistart(solve, initial_guesses):
|
|
@@ -30,10 +30,4 @@ def multistart(solve, initial_guesses):
|
|
|
30
30
|
]
|
|
31
31
|
|
|
32
32
|
# Prioritize successful solve, otherwise prioritize solution with lower cost
|
|
33
|
-
return min(
|
|
34
|
-
results,
|
|
35
|
-
key=lambda x: (
|
|
36
|
-
int(x[0] != ExitStatus.SUCCESS), # noqa: F405
|
|
37
|
-
x[1],
|
|
38
|
-
),
|
|
39
|
-
)
|
|
33
|
+
return min(results, key=lambda x: (int(x[0] != ExitStatus.SUCCESS), x[1]))
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import math
|
|
2
2
|
|
|
3
3
|
import numpy as np
|
|
4
|
-
|
|
4
|
+
from sleipnir import autodiff
|
|
5
5
|
from sleipnir.autodiff import Variable, VariableMatrix
|
|
6
6
|
|
|
7
7
|
# https://underactuated.mit.edu/acrobot.html#cart_pole
|
|
@@ -30,7 +30,7 @@ from sleipnir.autodiff import Variable, VariableMatrix
|
|
|
30
30
|
|
|
31
31
|
m_c = 5.0 # Cart mass (kg)
|
|
32
32
|
m_p = 0.5 # Pole mass (kg)
|
|
33
|
-
l = 0.5 # Pole length (m)
|
|
33
|
+
l = 0.5 # Pole length (m)
|
|
34
34
|
g = 9.806 # Acceleration due to gravity (m/s²)
|
|
35
35
|
|
|
36
36
|
|
|
@@ -108,21 +108,21 @@ def flywheel_test(
|
|
|
108
108
|
assert problem.X().value(0, N) == pytest.approx(r, abs=2e-6)
|
|
109
109
|
|
|
110
110
|
# Log states for offline viewing
|
|
111
|
-
with open(f"{test_name} states.csv", "w") as
|
|
112
|
-
|
|
111
|
+
with open(f"{test_name} states.csv", "w") as file:
|
|
112
|
+
file.write("Time (s),Velocity (rad/s)\n")
|
|
113
113
|
|
|
114
114
|
for k in range(N + 1):
|
|
115
|
-
|
|
115
|
+
file.write(f"{k * dt},{problem.X().value(0, k)}\n")
|
|
116
116
|
|
|
117
117
|
# Log inputs for offline viewing
|
|
118
|
-
with open(f"{test_name} inputs.csv", "w") as
|
|
119
|
-
|
|
118
|
+
with open(f"{test_name} inputs.csv", "w") as file:
|
|
119
|
+
file.write("Time (s),Voltage (V)\n")
|
|
120
120
|
|
|
121
121
|
for k in range(N + 1):
|
|
122
122
|
if k < N:
|
|
123
|
-
|
|
123
|
+
file.write(f"{k * dt},{problem.U().value(0, k)}\n")
|
|
124
124
|
else:
|
|
125
|
-
|
|
125
|
+
file.write(f"{k * dt},0.0\n")
|
|
126
126
|
|
|
127
127
|
|
|
128
128
|
def test_flywheel_explicit_ocp():
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import pytest
|
|
2
|
-
|
|
2
|
+
from sleipnir import autodiff
|
|
3
3
|
from sleipnir.optimization import ExitStatus, Problem, multistart
|
|
4
4
|
|
|
5
5
|
|
|
@@ -30,7 +30,7 @@ def mishras_bird_function_solve(input: DecisionVariables):
|
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
def test_mishras_bird_function():
|
|
33
|
-
status,
|
|
33
|
+
status, _cost, variables = multistart(
|
|
34
34
|
mishras_bird_function_solve,
|
|
35
35
|
[DecisionVariables(-3, -8), DecisionVariables(-3, -1.5)],
|
|
36
36
|
)
|
{sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/CMakeLists.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/cmake/BuildTypes.cmake
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/cmake/SubdirList.cmake
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
|
{sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/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
|
{sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/python/cpp/binders.hpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/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
|
{sleipnirgroup_jormungandr-0.6.5.dev1 → sleipnirgroup_jormungandr-0.6.5.dev3}/src/util/pool.cpp
RENAMED
|
File without changes
|