sleipnirgroup-jormungandr 0.5.5.dev8__tar.gz → 0.5.6.dev4__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.
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/PKG-INFO +1 -1
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/autodiff/variable_matrix.hpp +2 -2
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/optimization/solver/interior_point.hpp +10 -2
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/optimization/solver/newton.hpp +6 -5
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/optimization/solver/sqp.hpp +8 -4
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/optimization/solver/util/regularized_ldlt.hpp +9 -2
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/util/print_diagnostics.hpp +34 -38
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/cpp/docstrings.hpp +2 -2
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/src/sleipnir/__init__.py +1 -1
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/CMakeLists.txt +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/LICENSE.txt +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/README.md +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/SleipnirConfig.cmake.in +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/cmake/BuildTypes.cmake +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/cmake/CompilerFlags.cmake +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/cmake/Pybind11Mkdoc.cmake +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/cmake/SubdirList.cmake +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/cmake/arm-none-eabi.cmake +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/autodiff/expression.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/autodiff/expression_graph.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/autodiff/expression_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/autodiff/gradient.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/autodiff/gradient_expression_graph.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/autodiff/hessian.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/autodiff/jacobian.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/autodiff/sleipnir_base.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/autodiff/slice.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/autodiff/variable.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/autodiff/variable_block.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/optimization/multistart.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/optimization/ocp/dynamics_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/optimization/ocp/timestep_method.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/optimization/ocp/transcription_method.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/optimization/ocp.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/optimization/problem.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/optimization/solver/exit_status.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/optimization/solver/interior_point_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/optimization/solver/iteration_info.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/optimization/solver/newton_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/optimization/solver/options.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/optimization/solver/sqp_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/optimization/solver/util/all_finite.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/optimization/solver/util/append_as_triplets.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/optimization/solver/util/bounds.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/optimization/solver/util/feasibility_restoration.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/optimization/solver/util/filter.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/optimization/solver/util/fraction_to_the_boundary_rule.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/optimization/solver/util/inertia.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/optimization/solver/util/is_locally_infeasible.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/optimization/solver/util/kkt_error.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/optimization/solver/util/lagrange_multiplier_estimate.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/util/assert.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/util/concepts.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/util/empty.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/util/function_ref.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/util/intrusive_shared_ptr.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/util/pool.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/util/print.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/util/profiler.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/util/scope_exit.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/util/spy.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/include/sleipnir/util/symbol_exports.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/pyproject.toml +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/cpp/autodiff/bind_expression_type.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/cpp/autodiff/bind_gradient.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/cpp/autodiff/bind_hessian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/cpp/autodiff/bind_jacobian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/cpp/autodiff/bind_variable.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/cpp/autodiff/bind_variable_block.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/cpp/autodiff/bind_variable_matrix.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/cpp/binders.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/cpp/for_each_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/cpp/main.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/cpp/optimization/bind_equality_constraints.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/cpp/optimization/bind_inequality_constraints.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/cpp/optimization/bind_ocp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/cpp/optimization/bind_problem.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/cpp/optimization/ocp/bind_dynamics_type.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/cpp/optimization/ocp/bind_timestep_method.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/cpp/optimization/ocp/bind_transcription_method.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/cpp/optimization/solver/bind_exit_status.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/cpp/optimization/solver/bind_iteration_info.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/cpp/try_cast.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/src/sleipnir/autodiff/__init__.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/src/sleipnir/optimization/__init__.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/test/autodiff/gradient_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/test/autodiff/hessian_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/test/autodiff/jacobian_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/test/autodiff/variable_matrix_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/test/autodiff/variable_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/test/optimization/arm_on_elevator_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/test/optimization/cart_pole_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/test/optimization/cart_pole_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/test/optimization/cart_pole_util.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/test/optimization/constraints_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/test/optimization/decision_variable_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/test/optimization/differential_drive_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/test/optimization/differential_drive_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/test/optimization/differential_drive_util.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/test/optimization/double_integrator_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/test/optimization/flywheel_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/test/optimization/flywheel_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/test/optimization/linear_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/test/optimization/multistart_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/test/optimization/nonlinear_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/test/optimization/problem_spy_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/test/optimization/quadratic_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/test/optimization/rk4.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/test/optimization/solver/exit_status_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/test/optimization/trivial_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/src/autodiff/gradient.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/src/autodiff/hessian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/src/autodiff/jacobian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/src/autodiff/variable_matrix.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/src/optimization/ocp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/src/optimization/problem.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/src/optimization/solver/interior_point.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/src/optimization/solver/newton.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/src/optimization/solver/sqp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/src/util/pool.cpp +0 -0
|
@@ -1184,11 +1184,11 @@ class VariableMatrix : public SleipnirBase {
|
|
|
1184
1184
|
/// @return Number of elements in matrix.
|
|
1185
1185
|
size_t size() const { return m_storage.size(); }
|
|
1186
1186
|
|
|
1187
|
-
/// Returns a variable matrix filled with
|
|
1187
|
+
/// Returns a variable matrix filled with zeros.
|
|
1188
1188
|
///
|
|
1189
1189
|
/// @param rows The number of matrix rows.
|
|
1190
1190
|
/// @param cols The number of matrix columns.
|
|
1191
|
-
/// @return A variable matrix filled with
|
|
1191
|
+
/// @return A variable matrix filled with zeros.
|
|
1192
1192
|
static VariableMatrix<Scalar> zero(int rows, int cols) {
|
|
1193
1193
|
VariableMatrix<Scalar> result{detail::empty, rows, cols};
|
|
1194
1194
|
|
|
@@ -566,6 +566,10 @@ ExitStatus interior_point(
|
|
|
566
566
|
trial_c_e.template lpNorm<1>() +
|
|
567
567
|
(trial_c_i - trial_s).template lpNorm<1>(),
|
|
568
568
|
trial_s.dot(trial_z), μ, solver.hessian_regularization(),
|
|
569
|
+
std::max(soc_step.p_x.template lpNorm<Eigen::Infinity>(),
|
|
570
|
+
soc_step.p_s.template lpNorm<Eigen::Infinity>()),
|
|
571
|
+
std::max(soc_step.p_y.template lpNorm<Eigen::Infinity>(),
|
|
572
|
+
soc_step.p_z.template lpNorm<Eigen::Infinity>()),
|
|
569
573
|
α_soc, Scalar(1), α_reduction_factor, α_z_soc);
|
|
570
574
|
}
|
|
571
575
|
}};
|
|
@@ -795,8 +799,12 @@ ExitStatus interior_point(
|
|
|
795
799
|
: IterationType::NORMAL,
|
|
796
800
|
inner_iter_profiler.current_duration(), E_0, f,
|
|
797
801
|
c_e.template lpNorm<1>() + (c_i - s).template lpNorm<1>(), s.dot(z),
|
|
798
|
-
μ, solver.hessian_regularization(),
|
|
799
|
-
|
|
802
|
+
μ, solver.hessian_regularization(),
|
|
803
|
+
std::max(step.p_x.template lpNorm<Eigen::Infinity>(),
|
|
804
|
+
step.p_s.template lpNorm<Eigen::Infinity>()),
|
|
805
|
+
std::max(step.p_y.template lpNorm<Eigen::Infinity>(),
|
|
806
|
+
step.p_z.template lpNorm<Eigen::Infinity>()),
|
|
807
|
+
α, α_max, α_reduction_factor, α_z);
|
|
800
808
|
}
|
|
801
809
|
|
|
802
810
|
++iterations;
|
|
@@ -258,11 +258,12 @@ ExitStatus newton(
|
|
|
258
258
|
inner_iter_profiler.stop();
|
|
259
259
|
|
|
260
260
|
if (options.diagnostics) {
|
|
261
|
-
print_iteration_diagnostics(
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
261
|
+
print_iteration_diagnostics(
|
|
262
|
+
iterations, IterationType::NORMAL,
|
|
263
|
+
inner_iter_profiler.current_duration(), E_0, f, Scalar(0), Scalar(0),
|
|
264
|
+
Scalar(0), solver.hessian_regularization(),
|
|
265
|
+
p_x.template lpNorm<Eigen::Infinity>(), Scalar(1), α, α_max,
|
|
266
|
+
α_reduction_factor, Scalar(1));
|
|
266
267
|
}
|
|
267
268
|
|
|
268
269
|
++iterations;
|
|
@@ -394,8 +394,10 @@ ExitStatus sqp(const SQPMatrixCallbacks<Scalar>& matrix_callbacks,
|
|
|
394
394
|
kkt_error<Scalar, KKTErrorType::INF_NORM_SCALED>(
|
|
395
395
|
g, A_e, trial_c_e, trial_y),
|
|
396
396
|
trial_f, trial_c_e.template lpNorm<1>(), Scalar(0), Scalar(0),
|
|
397
|
-
solver.hessian_regularization(),
|
|
398
|
-
|
|
397
|
+
solver.hessian_regularization(),
|
|
398
|
+
soc_step.p_x.template lpNorm<Eigen::Infinity>(),
|
|
399
|
+
soc_step.p_y.template lpNorm<Eigen::Infinity>(), α_soc,
|
|
400
|
+
Scalar(1), α_reduction_factor, Scalar(1));
|
|
399
401
|
}
|
|
400
402
|
}};
|
|
401
403
|
|
|
@@ -557,8 +559,10 @@ ExitStatus sqp(const SQPMatrixCallbacks<Scalar>& matrix_callbacks,
|
|
|
557
559
|
print_iteration_diagnostics(iterations, IterationType::NORMAL,
|
|
558
560
|
inner_iter_profiler.current_duration(), E_0,
|
|
559
561
|
f, c_e.template lpNorm<1>(), Scalar(0),
|
|
560
|
-
Scalar(0), solver.hessian_regularization(),
|
|
561
|
-
|
|
562
|
+
Scalar(0), solver.hessian_regularization(),
|
|
563
|
+
step.p_x.template lpNorm<Eigen::Infinity>(),
|
|
564
|
+
step.p_y.template lpNorm<Eigen::Infinity>(),
|
|
565
|
+
α, α_max, α_reduction_factor, α);
|
|
562
566
|
}
|
|
563
567
|
|
|
564
568
|
++iterations;
|
|
@@ -56,6 +56,9 @@ class RegularizedLDLT {
|
|
|
56
56
|
|
|
57
57
|
/// Computes the regularized LDLT factorization of a matrix.
|
|
58
58
|
///
|
|
59
|
+
/// The matrix's symbolic decomposition is reused in subsequent calls, so
|
|
60
|
+
/// subsequent calls must be given a matrix with the same sparsity pattern.
|
|
61
|
+
///
|
|
59
62
|
/// @param lhs Left-hand side of the system.
|
|
60
63
|
/// @return The factorization.
|
|
61
64
|
RegularizedLDLT& compute(const SparseMatrix& lhs) {
|
|
@@ -65,8 +68,12 @@ class RegularizedLDLT {
|
|
|
65
68
|
// We consider less than 25% to be sparse.
|
|
66
69
|
m_is_sparse = lhs.nonZeros() < 0.25 * lhs.size();
|
|
67
70
|
|
|
68
|
-
|
|
69
|
-
|
|
71
|
+
// Regularization with zeros ensures the pattern analysis in
|
|
72
|
+
// compute_sparse() is reused by all factorizations
|
|
73
|
+
m_info =
|
|
74
|
+
m_is_sparse
|
|
75
|
+
? compute_sparse(lhs + regularization(Scalar(0), Scalar(0))).info()
|
|
76
|
+
: m_dense_solver.compute(lhs).info();
|
|
70
77
|
|
|
71
78
|
if (m_info == Eigen::Success) {
|
|
72
79
|
auto D =
|
|
@@ -182,6 +182,8 @@ inline void print_bound_constraint_global_infeasibility_error(
|
|
|
182
182
|
/// @param complementarity The complementarity.
|
|
183
183
|
/// @param μ The barrier parameter.
|
|
184
184
|
/// @param δ The Hessian regularization factor.
|
|
185
|
+
/// @param full_primal_step_inf_norm The infinity norm of the full primal step.
|
|
186
|
+
/// @param full_dual_step_inf_norm The infinity norm of the full dual step.
|
|
185
187
|
/// @param primal_α The primal step size.
|
|
186
188
|
/// @param primal_α_max The max primal step size.
|
|
187
189
|
/// @param α_reduction_factor Factor by which primal_α is reduced during
|
|
@@ -192,33 +194,23 @@ void print_iteration_diagnostics(int iterations, IterationType type,
|
|
|
192
194
|
const std::chrono::duration<Rep, Period>& time,
|
|
193
195
|
Scalar error, Scalar cost,
|
|
194
196
|
Scalar infeasibility, Scalar complementarity,
|
|
195
|
-
Scalar μ, Scalar δ,
|
|
196
|
-
Scalar
|
|
197
|
-
Scalar
|
|
197
|
+
Scalar μ, Scalar δ,
|
|
198
|
+
Scalar full_primal_step_inf_norm,
|
|
199
|
+
Scalar full_dual_step_inf_norm,
|
|
200
|
+
Scalar primal_α, Scalar primal_α_max,
|
|
201
|
+
Scalar α_reduction_factor, Scalar dual_α) {
|
|
198
202
|
if (iterations % 20 == 0) {
|
|
199
203
|
if (iterations == 0) {
|
|
200
|
-
slp::
|
|
204
|
+
slp::println("┏{:━^116}┓", "");
|
|
201
205
|
} else {
|
|
202
|
-
slp::
|
|
203
|
-
}
|
|
204
|
-
slp::print(
|
|
205
|
-
"{:━^4}┯{:━^4}┯{:━^9}┯{:━^12}┯{:━^13}┯{:━^12}┯{:━^12}┯{:━^8}┯{:━^5}┯"
|
|
206
|
-
"{:━^8}┯{:━^8}┯{:━^2}",
|
|
207
|
-
"", "", "", "", "", "", "", "", "", "", "", "");
|
|
208
|
-
if (iterations == 0) {
|
|
209
|
-
slp::println("┓");
|
|
210
|
-
} else {
|
|
211
|
-
slp::println("┪");
|
|
206
|
+
slp::println("┢{:━^116}┪", "");
|
|
212
207
|
}
|
|
213
208
|
slp::println(
|
|
214
|
-
"┃{:^4}
|
|
215
|
-
"
|
|
216
|
-
"iter", "type", "
|
|
217
|
-
"
|
|
218
|
-
slp::println(
|
|
219
|
-
"┡{:━^4}┷{:━^4}┷{:━^9}┷{:━^12}┷{:━^13}┷{:━^12}┷{:━^12}┷{:━^8}┷{:━^5}┷"
|
|
220
|
-
"{:━^8}┷{:━^8}┷{:━^2}┩",
|
|
221
|
-
"", "", "", "", "", "", "", "", "", "", "", "");
|
|
209
|
+
"┃{:^4} {:^4} {:^9} {:^10} {:^11} {:^10} {:^8} {:^8} {:^5} {:^8} {:^8} "
|
|
210
|
+
"{:^8} {:^8} {:^2}┃",
|
|
211
|
+
"iter", "type", "duration", "error", "cost", "infeas.", "complem.", "μ",
|
|
212
|
+
"δ", "|p_pr|", "|p_du|", "α_pr", "α_du", "↩");
|
|
213
|
+
slp::println("┡{:━^116}┩", "");
|
|
222
214
|
}
|
|
223
215
|
|
|
224
216
|
// For the number of backtracks, we want x such that:
|
|
@@ -237,10 +229,11 @@ void print_iteration_diagnostics(int iterations, IterationType type,
|
|
|
237
229
|
|
|
238
230
|
constexpr std::array ITERATION_TYPES{"norm", "✓SOC", "XSOC", "rest"};
|
|
239
231
|
slp::println(
|
|
240
|
-
"│{:4} {:4} {:9.3f} {
|
|
241
|
-
"{:.2e} {:2d}│",
|
|
232
|
+
"│{:4} {:4} {:9.3f} {:.4e} {:11.4e} {:.4e} {:.2e} {:.2e} {:<5} {:.2e} "
|
|
233
|
+
"{:.2e} {:.2e} {:.2e} {:2d}│",
|
|
242
234
|
iterations, ITERATION_TYPES[std::to_underlying(type)], to_ms(time), error,
|
|
243
|
-
cost, infeasibility, complementarity, μ, power_of_10(δ),
|
|
235
|
+
cost, infeasibility, complementarity, μ, power_of_10(δ),
|
|
236
|
+
full_primal_step_inf_norm, full_dual_step_inf_norm, primal_α, dual_α,
|
|
244
237
|
backtracks);
|
|
245
238
|
}
|
|
246
239
|
#else
|
|
@@ -250,7 +243,7 @@ void print_iteration_diagnostics(int iterations, IterationType type,
|
|
|
250
243
|
#ifndef SLEIPNIR_DISABLE_DIAGNOSTICS
|
|
251
244
|
/// Prints bottom of iteration diagnostics table.
|
|
252
245
|
inline void print_bottom_iteration_diagnostics() {
|
|
253
|
-
slp::println("└{:─^
|
|
246
|
+
slp::println("└{:─^116}┘", "");
|
|
254
247
|
}
|
|
255
248
|
#else
|
|
256
249
|
#define print_bottom_iteration_diagnostics(...)
|
|
@@ -296,10 +289,10 @@ inline void print_solver_diagnostics(
|
|
|
296
289
|
const gch::small_vector<SolveProfiler>& solve_profilers) {
|
|
297
290
|
auto solve_duration = to_ms(solve_profilers[0].total_duration());
|
|
298
291
|
|
|
299
|
-
slp::println("┏{:━^
|
|
300
|
-
slp::println("┃{:^21}
|
|
301
|
-
"total
|
|
302
|
-
slp::println("┡{:━^
|
|
292
|
+
slp::println("┏{:━^66}┓", "");
|
|
293
|
+
slp::println("┃{:^21} {:^18} {:^10} {:^9} {:^4}┃", "time trace", "percentage",
|
|
294
|
+
"total", "each", "runs");
|
|
295
|
+
slp::println("┡{:━^66}┩", "");
|
|
303
296
|
|
|
304
297
|
for (auto& profiler : solve_profilers) {
|
|
305
298
|
double norm = solve_duration == 0.0
|
|
@@ -325,23 +318,26 @@ inline void print_setup_diagnostics(
|
|
|
325
318
|
const gch::small_vector<SetupProfiler>& setup_profilers) {
|
|
326
319
|
auto setup_duration = to_ms(setup_profilers[0].duration());
|
|
327
320
|
|
|
321
|
+
// Print link to diagnostic output description
|
|
322
|
+
slp::println(
|
|
323
|
+
"See https://sleipnirgroup.github.io/Sleipnir/md_usage.html#output for "
|
|
324
|
+
"diagnostic output description.\n");
|
|
325
|
+
|
|
328
326
|
// Print heading
|
|
329
|
-
slp::println("┏{:━^
|
|
330
|
-
slp::println("┃{:^21}
|
|
331
|
-
|
|
332
|
-
slp::println("┡{:━^21}┷{:━^18}┷{:━^10}┷{:━^9}┷{:━^4}┩", "", "", "", "", "");
|
|
327
|
+
slp::println("┏{:━^50}┓", "");
|
|
328
|
+
slp::println("┃{:^21} {:^18} {:^9}┃", "time trace", "percentage", "duration");
|
|
329
|
+
slp::println("┡{:━^50}┩", "");
|
|
333
330
|
|
|
334
331
|
// Print setup profilers
|
|
335
332
|
for (auto& profiler : setup_profilers) {
|
|
336
333
|
double norm = setup_duration == 0.0
|
|
337
334
|
? (&profiler == &setup_profilers[0] ? 1.0 : 0.0)
|
|
338
335
|
: to_ms(profiler.duration()) / setup_duration;
|
|
339
|
-
slp::println("│{:<21} {:>6.2f}%▕{}▏ {:>
|
|
340
|
-
|
|
341
|
-
to_ms(profiler.duration()), to_ms(profiler.duration()), "1");
|
|
336
|
+
slp::println("│{:<21} {:>6.2f}%▕{}▏ {:>9.3f}│", profiler.name(),
|
|
337
|
+
norm * 100.0, histogram<9>(norm), to_ms(profiler.duration()));
|
|
342
338
|
}
|
|
343
339
|
|
|
344
|
-
slp::println("└{:─^
|
|
340
|
+
slp::println("└{:─^50}┘", "");
|
|
345
341
|
}
|
|
346
342
|
#else
|
|
347
343
|
#define print_setup_diagnostics(...)
|
|
@@ -2152,7 +2152,7 @@ Returns:
|
|
|
2152
2152
|
The contents of the variable matrix.)doc";
|
|
2153
2153
|
|
|
2154
2154
|
static const char *__doc_slp_VariableMatrix_zero =
|
|
2155
|
-
R"doc(Returns a variable matrix filled with
|
|
2155
|
+
R"doc(Returns a variable matrix filled with zeros.
|
|
2156
2156
|
|
|
2157
2157
|
Parameter ``rows``:
|
|
2158
2158
|
The number of matrix rows.
|
|
@@ -2161,7 +2161,7 @@ Parameter ``cols``:
|
|
|
2161
2161
|
The number of matrix columns.
|
|
2162
2162
|
|
|
2163
2163
|
Returns:
|
|
2164
|
-
A variable matrix filled with
|
|
2164
|
+
A variable matrix filled with zeros.)doc";
|
|
2165
2165
|
|
|
2166
2166
|
static const char *__doc_slp_Variable_Variable = R"doc(Constructs a linear Variable with a value of zero.)doc";
|
|
2167
2167
|
|
{sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/CMakeLists.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/cmake/BuildTypes.cmake
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/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
|
{sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/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.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/python/cpp/binders.hpp
RENAMED
|
File without changes
|
|
File without changes
|
{sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/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
|
{sleipnirgroup_jormungandr-0.5.5.dev8 → sleipnirgroup_jormungandr-0.5.6.dev4}/src/util/pool.cpp
RENAMED
|
File without changes
|