sleipnirgroup-jormungandr 0.5.5.dev9__tar.gz → 0.5.6.dev2__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.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/PKG-INFO +1 -1
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/optimization/solver/interior_point.hpp +10 -2
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/optimization/solver/newton.hpp +6 -5
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/optimization/solver/sqp.hpp +8 -4
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/optimization/solver/util/regularized_ldlt.hpp +6 -2
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/util/print_diagnostics.hpp +34 -38
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/src/sleipnir/__init__.py +1 -1
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/CMakeLists.txt +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/LICENSE.txt +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/README.md +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/SleipnirConfig.cmake.in +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/cmake/BuildTypes.cmake +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/cmake/CompilerFlags.cmake +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/cmake/Pybind11Mkdoc.cmake +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/cmake/SubdirList.cmake +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/cmake/arm-none-eabi.cmake +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/autodiff/expression.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/autodiff/expression_graph.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/autodiff/expression_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/autodiff/gradient.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/autodiff/gradient_expression_graph.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/autodiff/hessian.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/autodiff/jacobian.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/autodiff/sleipnir_base.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/autodiff/slice.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/autodiff/variable.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/autodiff/variable_block.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/autodiff/variable_matrix.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/optimization/multistart.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/optimization/ocp/dynamics_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/optimization/ocp/timestep_method.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/optimization/ocp/transcription_method.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/optimization/ocp.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/optimization/problem.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/optimization/solver/exit_status.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/optimization/solver/interior_point_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/optimization/solver/iteration_info.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/optimization/solver/newton_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/optimization/solver/options.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/optimization/solver/sqp_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/optimization/solver/util/all_finite.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/optimization/solver/util/append_as_triplets.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/optimization/solver/util/bounds.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/optimization/solver/util/feasibility_restoration.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/optimization/solver/util/filter.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/optimization/solver/util/fraction_to_the_boundary_rule.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/optimization/solver/util/inertia.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/optimization/solver/util/is_locally_infeasible.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/optimization/solver/util/kkt_error.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/optimization/solver/util/lagrange_multiplier_estimate.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/util/assert.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/util/concepts.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/util/empty.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/util/function_ref.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/util/intrusive_shared_ptr.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/util/pool.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/util/print.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/util/profiler.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/util/scope_exit.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/util/spy.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/include/sleipnir/util/symbol_exports.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/pyproject.toml +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/cpp/autodiff/bind_expression_type.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/cpp/autodiff/bind_gradient.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/cpp/autodiff/bind_hessian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/cpp/autodiff/bind_jacobian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/cpp/autodiff/bind_variable.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/cpp/autodiff/bind_variable_block.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/cpp/autodiff/bind_variable_matrix.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/cpp/binders.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/cpp/docstrings.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/cpp/for_each_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/cpp/main.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/cpp/optimization/bind_equality_constraints.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/cpp/optimization/bind_inequality_constraints.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/cpp/optimization/bind_ocp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/cpp/optimization/bind_problem.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/cpp/optimization/ocp/bind_dynamics_type.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/cpp/optimization/ocp/bind_timestep_method.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/cpp/optimization/ocp/bind_transcription_method.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/cpp/optimization/solver/bind_exit_status.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/cpp/optimization/solver/bind_iteration_info.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/cpp/try_cast.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/src/sleipnir/autodiff/__init__.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/src/sleipnir/optimization/__init__.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/test/autodiff/gradient_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/test/autodiff/hessian_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/test/autodiff/jacobian_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/test/autodiff/variable_matrix_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/test/autodiff/variable_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/test/optimization/arm_on_elevator_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/test/optimization/cart_pole_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/test/optimization/cart_pole_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/test/optimization/cart_pole_util.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/test/optimization/constraints_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/test/optimization/decision_variable_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/test/optimization/differential_drive_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/test/optimization/differential_drive_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/test/optimization/differential_drive_util.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/test/optimization/double_integrator_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/test/optimization/flywheel_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/test/optimization/flywheel_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/test/optimization/linear_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/test/optimization/multistart_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/test/optimization/nonlinear_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/test/optimization/problem_spy_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/test/optimization/quadratic_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/test/optimization/rk4.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/test/optimization/solver/exit_status_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/test/optimization/trivial_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/src/autodiff/gradient.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/src/autodiff/hessian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/src/autodiff/jacobian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/src/autodiff/variable_matrix.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/src/optimization/ocp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/src/optimization/problem.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/src/optimization/solver/interior_point.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/src/optimization/solver/newton.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/src/optimization/solver/sqp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/src/util/pool.cpp +0 -0
|
@@ -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;
|
|
@@ -68,8 +68,12 @@ class RegularizedLDLT {
|
|
|
68
68
|
// We consider less than 25% to be sparse.
|
|
69
69
|
m_is_sparse = lhs.nonZeros() < 0.25 * lhs.size();
|
|
70
70
|
|
|
71
|
-
|
|
72
|
-
|
|
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();
|
|
73
77
|
|
|
74
78
|
if (m_info == Eigen::Success) {
|
|
75
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(...)
|
{sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/CMakeLists.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/cmake/BuildTypes.cmake
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/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
|
{sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/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.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/python/cpp/binders.hpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sleipnirgroup_jormungandr-0.5.5.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/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.dev9 → sleipnirgroup_jormungandr-0.5.6.dev2}/src/util/pool.cpp
RENAMED
|
File without changes
|