sleipnirgroup-jormungandr 0.5.1.dev5__tar.gz → 0.5.1.dev7__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.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/PKG-INFO +1 -1
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/problem.hpp +85 -37
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/print_diagnostics.hpp +6 -6
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/src/sleipnir/__init__.py +1 -1
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/CMakeLists.txt +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/LICENSE.txt +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/README.md +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/SleipnirConfig.cmake.in +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/cmake/BuildTypes.cmake +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/cmake/CompilerFlags.cmake +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/cmake/Pybind11Mkdoc.cmake +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/cmake/SubdirList.cmake +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/cmake/arm-none-eabi.cmake +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/expression.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/expression_graph.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/expression_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/gradient.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/gradient_expression_graph.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/hessian.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/jacobian.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/sleipnir_base.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/slice.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/variable.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/variable_block.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/variable_matrix.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/multistart.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/ocp/dynamics_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/ocp/timestep_method.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/ocp/transcription_method.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/ocp.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/exit_status.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/interior_point.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/interior_point_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/iteration_info.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/newton.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/newton_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/options.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/sqp.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/sqp_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/all_finite.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/append_as_triplets.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/bounds.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/feasibility_restoration.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/filter.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/fraction_to_the_boundary_rule.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/inertia.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/is_locally_infeasible.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/kkt_error.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/lagrange_multiplier_estimate.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/regularized_ldlt.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/assert.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/concepts.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/empty.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/function_ref.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/intrusive_shared_ptr.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/pool.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/print.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/profiler.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/scope_exit.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/spy.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/symbol_exports.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/pyproject.toml +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/autodiff/bind_expression_type.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/autodiff/bind_gradient.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/autodiff/bind_hessian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/autodiff/bind_jacobian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/autodiff/bind_variable.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/autodiff/bind_variable_block.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/autodiff/bind_variable_matrix.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/binders.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/docstrings.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/for_each_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/main.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/optimization/bind_equality_constraints.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/optimization/bind_inequality_constraints.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/optimization/bind_ocp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/optimization/bind_problem.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/optimization/ocp/bind_dynamics_type.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/optimization/ocp/bind_timestep_method.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/optimization/ocp/bind_transcription_method.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/optimization/solver/bind_exit_status.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/optimization/solver/bind_iteration_info.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/try_cast.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/src/sleipnir/autodiff/__init__.py +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/src/sleipnir/optimization/__init__.py +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/autodiff/gradient_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/autodiff/hessian_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/autodiff/jacobian_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/autodiff/variable_matrix_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/autodiff/variable_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/arm_on_elevator_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/cart_pole_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/cart_pole_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/cart_pole_util.py +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/constraints_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/decision_variable_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/differential_drive_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/differential_drive_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/differential_drive_util.py +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/double_integrator_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/flywheel_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/flywheel_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/linear_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/multistart_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/nonlinear_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/problem_spy_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/quadratic_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/rk4.py +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/solver/exit_status_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/trivial_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/autodiff/gradient.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/autodiff/hessian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/autodiff/jacobian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/autodiff/variable_matrix.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/optimization/ocp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/optimization/problem.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/optimization/solver/interior_point.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/optimization/solver/newton.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/optimization/solver/sqp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/util/pool.cpp +0 -0
|
@@ -311,19 +311,11 @@ class Problem {
|
|
|
311
311
|
return ExitStatus::SUCCESS;
|
|
312
312
|
}
|
|
313
313
|
|
|
314
|
-
gch::small_vector<SetupProfiler> ad_setup_profilers;
|
|
315
|
-
ad_setup_profilers.emplace_back("setup").start();
|
|
316
|
-
|
|
317
314
|
VariableMatrix<Scalar> x_ad{m_decision_variables};
|
|
318
315
|
|
|
319
316
|
// Set up cost function
|
|
320
317
|
Variable f = m_f.value_or(Scalar(0));
|
|
321
318
|
|
|
322
|
-
// Set up gradient autodiff
|
|
323
|
-
ad_setup_profilers.emplace_back("↳ ∇f(x)").start();
|
|
324
|
-
Gradient g{f, x_ad};
|
|
325
|
-
ad_setup_profilers.back().stop();
|
|
326
|
-
|
|
327
319
|
int num_decision_variables = m_decision_variables.size();
|
|
328
320
|
int num_equality_constraints = m_equality_constraints.size();
|
|
329
321
|
int num_inequality_constraints = m_inequality_constraints.size();
|
|
@@ -344,13 +336,29 @@ class Problem {
|
|
|
344
336
|
slp::println("\nInvoking Newton solver\n");
|
|
345
337
|
}
|
|
346
338
|
|
|
339
|
+
gch::small_vector<SetupProfiler> ad_setup_profilers;
|
|
340
|
+
ad_setup_profilers.emplace_back("setup");
|
|
341
|
+
ad_setup_profilers.emplace_back("↳ ∇f(x)");
|
|
342
|
+
ad_setup_profilers.emplace_back("↳ ∇²ₓₓL");
|
|
343
|
+
|
|
344
|
+
ad_setup_profilers[0].start();
|
|
345
|
+
|
|
346
|
+
// Set up gradient autodiff
|
|
347
|
+
ad_setup_profilers[1].start();
|
|
348
|
+
Gradient g{f, x_ad};
|
|
349
|
+
ad_setup_profilers[1].stop();
|
|
350
|
+
|
|
347
351
|
// Set up Lagrangian Hessian autodiff
|
|
348
|
-
ad_setup_profilers.
|
|
352
|
+
ad_setup_profilers[2].start();
|
|
349
353
|
Hessian<Scalar, Eigen::Lower> H{f, x_ad};
|
|
350
|
-
ad_setup_profilers.
|
|
354
|
+
ad_setup_profilers[2].stop();
|
|
351
355
|
|
|
352
356
|
ad_setup_profilers[0].stop();
|
|
353
357
|
|
|
358
|
+
if (options.diagnostics) {
|
|
359
|
+
print_setup_diagnostics(ad_setup_profilers);
|
|
360
|
+
}
|
|
361
|
+
|
|
354
362
|
#ifndef SLEIPNIR_DISABLE_DIAGNOSTICS
|
|
355
363
|
// Sparsity pattern files written when spy flag is set
|
|
356
364
|
std::unique_ptr<Spy<Scalar>> H_spy;
|
|
@@ -391,28 +399,48 @@ class Problem {
|
|
|
391
399
|
}
|
|
392
400
|
|
|
393
401
|
VariableMatrix<Scalar> c_e_ad{m_equality_constraints};
|
|
394
|
-
|
|
395
|
-
// Set up Lagrangian
|
|
396
402
|
VariableMatrix<Scalar> y_ad(num_equality_constraints);
|
|
397
|
-
Variable L = f - y_ad.T() * c_e_ad;
|
|
398
403
|
|
|
399
|
-
|
|
400
|
-
ad_setup_profilers.emplace_back("
|
|
401
|
-
|
|
402
|
-
ad_setup_profilers.
|
|
404
|
+
gch::small_vector<SetupProfiler> ad_setup_profilers;
|
|
405
|
+
ad_setup_profilers.emplace_back("setup");
|
|
406
|
+
ad_setup_profilers.emplace_back("↳ ∇f(x)");
|
|
407
|
+
ad_setup_profilers.emplace_back("↳ ∇²ₓₓL");
|
|
408
|
+
ad_setup_profilers.emplace_back(" ↳ ∇²ₓₓL_f");
|
|
409
|
+
ad_setup_profilers.emplace_back(" ↳ ∇²ₓₓL_c");
|
|
410
|
+
ad_setup_profilers.emplace_back("↳ ∂cₑ/∂x");
|
|
411
|
+
|
|
412
|
+
ad_setup_profilers[0].start();
|
|
413
|
+
|
|
414
|
+
// Set up gradient autodiff
|
|
415
|
+
ad_setup_profilers[1].start();
|
|
416
|
+
Gradient g{f, x_ad};
|
|
417
|
+
ad_setup_profilers[1].stop();
|
|
418
|
+
|
|
419
|
+
ad_setup_profilers[2].start();
|
|
420
|
+
|
|
421
|
+
// Set up cost part of Lagrangian Hessian autodiff
|
|
422
|
+
ad_setup_profilers[3].start();
|
|
423
|
+
Hessian<Scalar, Eigen::Lower> H_f{f, x_ad};
|
|
424
|
+
ad_setup_profilers[3].stop();
|
|
403
425
|
|
|
404
426
|
// Set up constraint part of Lagrangian Hessian autodiff
|
|
405
|
-
ad_setup_profilers.
|
|
427
|
+
ad_setup_profilers[4].start();
|
|
406
428
|
Hessian<Scalar, Eigen::Lower> H_c{-y_ad.T() * c_e_ad, x_ad};
|
|
407
|
-
ad_setup_profilers.
|
|
429
|
+
ad_setup_profilers[4].stop();
|
|
430
|
+
|
|
431
|
+
ad_setup_profilers[2].stop();
|
|
408
432
|
|
|
409
433
|
// Set up equality constraint Jacobian autodiff
|
|
410
|
-
ad_setup_profilers.
|
|
434
|
+
ad_setup_profilers[5].start();
|
|
411
435
|
Jacobian A_e{c_e_ad, x_ad};
|
|
412
|
-
ad_setup_profilers.
|
|
436
|
+
ad_setup_profilers[5].stop();
|
|
413
437
|
|
|
414
438
|
ad_setup_profilers[0].stop();
|
|
415
439
|
|
|
440
|
+
if (options.diagnostics) {
|
|
441
|
+
print_setup_diagnostics(ad_setup_profilers);
|
|
442
|
+
}
|
|
443
|
+
|
|
416
444
|
#ifndef SLEIPNIR_DISABLE_DIAGNOSTICS
|
|
417
445
|
// Sparsity pattern files written when spy flag is set
|
|
418
446
|
std::unique_ptr<Spy<Scalar>> H_spy;
|
|
@@ -449,7 +477,7 @@ class Problem {
|
|
|
449
477
|
[&](const DenseVector& x, const DenseVector& y) -> SparseMatrix {
|
|
450
478
|
x_ad.set_value(x);
|
|
451
479
|
y_ad.set_value(y);
|
|
452
|
-
return
|
|
480
|
+
return H_f.value() + H_c.value();
|
|
453
481
|
},
|
|
454
482
|
[&](const DenseVector& x, const DenseVector& y) -> SparseMatrix {
|
|
455
483
|
x_ad.set_value(x);
|
|
@@ -474,35 +502,56 @@ class Problem {
|
|
|
474
502
|
|
|
475
503
|
VariableMatrix<Scalar> c_e_ad{m_equality_constraints};
|
|
476
504
|
VariableMatrix<Scalar> c_i_ad{m_inequality_constraints};
|
|
477
|
-
|
|
478
|
-
// Set up Lagrangian
|
|
479
505
|
VariableMatrix<Scalar> y_ad(num_equality_constraints);
|
|
480
506
|
VariableMatrix<Scalar> z_ad(num_inequality_constraints);
|
|
481
|
-
Variable L = f - y_ad.T() * c_e_ad - z_ad.T() * c_i_ad;
|
|
482
507
|
|
|
483
|
-
|
|
484
|
-
ad_setup_profilers.emplace_back("
|
|
485
|
-
|
|
486
|
-
ad_setup_profilers.
|
|
508
|
+
gch::small_vector<SetupProfiler> ad_setup_profilers;
|
|
509
|
+
ad_setup_profilers.emplace_back("setup");
|
|
510
|
+
ad_setup_profilers.emplace_back("↳ ∇f(x)");
|
|
511
|
+
ad_setup_profilers.emplace_back("↳ ∇²ₓₓL");
|
|
512
|
+
ad_setup_profilers.emplace_back(" ↳ ∇²ₓₓL_f");
|
|
513
|
+
ad_setup_profilers.emplace_back(" ↳ ∇²ₓₓL_c");
|
|
514
|
+
ad_setup_profilers.emplace_back("↳ ∂cₑ/∂x");
|
|
515
|
+
ad_setup_profilers.emplace_back("↳ ∂cᵢ/∂x");
|
|
516
|
+
|
|
517
|
+
ad_setup_profilers[0].start();
|
|
518
|
+
|
|
519
|
+
// Set up gradient autodiff
|
|
520
|
+
ad_setup_profilers[1].start();
|
|
521
|
+
Gradient g{f, x_ad};
|
|
522
|
+
ad_setup_profilers[1].stop();
|
|
523
|
+
|
|
524
|
+
ad_setup_profilers[2].start();
|
|
525
|
+
|
|
526
|
+
// Set up cost part of Lagrangian Hessian autodiff
|
|
527
|
+
ad_setup_profilers[3].start();
|
|
528
|
+
Hessian<Scalar, Eigen::Lower> H_f{f, x_ad};
|
|
529
|
+
ad_setup_profilers[3].stop();
|
|
487
530
|
|
|
488
531
|
// Set up constraint part of Lagrangian Hessian autodiff
|
|
489
|
-
ad_setup_profilers.
|
|
532
|
+
ad_setup_profilers[4].start();
|
|
490
533
|
Hessian<Scalar, Eigen::Lower> H_c{-y_ad.T() * c_e_ad - z_ad.T() * c_i_ad,
|
|
491
534
|
x_ad};
|
|
492
|
-
ad_setup_profilers.
|
|
535
|
+
ad_setup_profilers[4].stop();
|
|
536
|
+
|
|
537
|
+
ad_setup_profilers[2].stop();
|
|
493
538
|
|
|
494
539
|
// Set up equality constraint Jacobian autodiff
|
|
495
|
-
ad_setup_profilers.
|
|
540
|
+
ad_setup_profilers[5].start();
|
|
496
541
|
Jacobian A_e{c_e_ad, x_ad};
|
|
497
|
-
ad_setup_profilers.
|
|
542
|
+
ad_setup_profilers[5].stop();
|
|
498
543
|
|
|
499
544
|
// Set up inequality constraint Jacobian autodiff
|
|
500
|
-
ad_setup_profilers.
|
|
545
|
+
ad_setup_profilers[6].start();
|
|
501
546
|
Jacobian A_i{c_i_ad, x_ad};
|
|
502
|
-
ad_setup_profilers.
|
|
547
|
+
ad_setup_profilers[6].stop();
|
|
503
548
|
|
|
504
549
|
ad_setup_profilers[0].stop();
|
|
505
550
|
|
|
551
|
+
if (options.diagnostics) {
|
|
552
|
+
print_setup_diagnostics(ad_setup_profilers);
|
|
553
|
+
}
|
|
554
|
+
|
|
506
555
|
#ifndef SLEIPNIR_DISABLE_DIAGNOSTICS
|
|
507
556
|
// Sparsity pattern files written when spy flag is set
|
|
508
557
|
std::unique_ptr<Spy<Scalar>> H_spy;
|
|
@@ -563,7 +612,7 @@ class Problem {
|
|
|
563
612
|
x_ad.set_value(x);
|
|
564
613
|
y_ad.set_value(y);
|
|
565
614
|
z_ad.set_value(z);
|
|
566
|
-
return
|
|
615
|
+
return H_f.value() + H_c.value();
|
|
567
616
|
},
|
|
568
617
|
[&](const DenseVector& x, const DenseVector& y,
|
|
569
618
|
const DenseVector& z) -> SparseMatrix {
|
|
@@ -599,7 +648,6 @@ class Problem {
|
|
|
599
648
|
}
|
|
600
649
|
|
|
601
650
|
if (options.diagnostics) {
|
|
602
|
-
print_autodiff_diagnostics(ad_setup_profilers);
|
|
603
651
|
slp::println("\nExit: {}", status);
|
|
604
652
|
}
|
|
605
653
|
|
|
@@ -318,17 +318,17 @@ inline void print_solver_diagnostics(
|
|
|
318
318
|
#endif
|
|
319
319
|
|
|
320
320
|
#ifndef SLEIPNIR_DISABLE_DIAGNOSTICS
|
|
321
|
-
/// Prints
|
|
321
|
+
/// Prints setup diagnostics.
|
|
322
322
|
///
|
|
323
|
-
/// @param setup_profilers
|
|
324
|
-
inline void
|
|
323
|
+
/// @param setup_profilers Setup profilers.
|
|
324
|
+
inline void print_setup_diagnostics(
|
|
325
325
|
const gch::small_vector<SetupProfiler>& setup_profilers) {
|
|
326
326
|
auto setup_duration = to_ms(setup_profilers[0].duration());
|
|
327
327
|
|
|
328
328
|
// Print heading
|
|
329
329
|
slp::println("┏{:━^21}┯{:━^18}┯{:━^10}┯{:━^9}┯{:━^4}┓", "", "", "", "", "");
|
|
330
|
-
slp::println("┃{:^21}│{:^18}│{:^10}│{:^9}│{:^4}┃", "
|
|
331
|
-
"
|
|
330
|
+
slp::println("┃{:^21}│{:^18}│{:^10}│{:^9}│{:^4}┃", "setup trace", "percent",
|
|
331
|
+
"total (ms)", "each (ms)", "runs");
|
|
332
332
|
slp::println("┡{:━^21}┷{:━^18}┷{:━^10}┷{:━^9}┷{:━^4}┩", "", "", "", "", "");
|
|
333
333
|
|
|
334
334
|
// Print setup profilers
|
|
@@ -344,7 +344,7 @@ inline void print_autodiff_diagnostics(
|
|
|
344
344
|
slp::println("└{:─^66}┘", "");
|
|
345
345
|
}
|
|
346
346
|
#else
|
|
347
|
-
#define
|
|
347
|
+
#define print_setup_diagnostics(...)
|
|
348
348
|
#endif
|
|
349
349
|
|
|
350
350
|
} // namespace slp
|
{sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/CMakeLists.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/cmake/BuildTypes.cmake
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/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
|
{sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/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.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/binders.hpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/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.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/util/pool.cpp
RENAMED
|
File without changes
|