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.
Files changed (120) hide show
  1. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/PKG-INFO +1 -1
  2. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/problem.hpp +85 -37
  3. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/print_diagnostics.hpp +6 -6
  4. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/src/sleipnir/__init__.py +1 -1
  5. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/CMakeLists.txt +0 -0
  6. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/LICENSE.txt +0 -0
  7. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/README.md +0 -0
  8. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/SleipnirConfig.cmake.in +0 -0
  9. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/cmake/BuildTypes.cmake +0 -0
  10. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/cmake/CompilerFlags.cmake +0 -0
  11. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/cmake/Pybind11Mkdoc.cmake +0 -0
  12. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/cmake/SubdirList.cmake +0 -0
  13. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/cmake/arm-none-eabi.cmake +0 -0
  14. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/expression.hpp +0 -0
  15. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/expression_graph.hpp +0 -0
  16. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/expression_type.hpp +0 -0
  17. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/gradient.hpp +0 -0
  18. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/gradient_expression_graph.hpp +0 -0
  19. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/hessian.hpp +0 -0
  20. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/jacobian.hpp +0 -0
  21. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/sleipnir_base.hpp +0 -0
  22. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/slice.hpp +0 -0
  23. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/variable.hpp +0 -0
  24. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/variable_block.hpp +0 -0
  25. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/variable_matrix.hpp +0 -0
  26. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/multistart.hpp +0 -0
  27. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/ocp/dynamics_type.hpp +0 -0
  28. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/ocp/timestep_method.hpp +0 -0
  29. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/ocp/transcription_method.hpp +0 -0
  30. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/ocp.hpp +0 -0
  31. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/exit_status.hpp +0 -0
  32. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/interior_point.hpp +0 -0
  33. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/interior_point_matrix_callbacks.hpp +0 -0
  34. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/iteration_info.hpp +0 -0
  35. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/newton.hpp +0 -0
  36. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/newton_matrix_callbacks.hpp +0 -0
  37. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/options.hpp +0 -0
  38. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/sqp.hpp +0 -0
  39. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/sqp_matrix_callbacks.hpp +0 -0
  40. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/all_finite.hpp +0 -0
  41. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/append_as_triplets.hpp +0 -0
  42. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/bounds.hpp +0 -0
  43. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/feasibility_restoration.hpp +0 -0
  44. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/filter.hpp +0 -0
  45. {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
  46. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/inertia.hpp +0 -0
  47. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/is_locally_infeasible.hpp +0 -0
  48. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/kkt_error.hpp +0 -0
  49. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/lagrange_multiplier_estimate.hpp +0 -0
  50. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/regularized_ldlt.hpp +0 -0
  51. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/assert.hpp +0 -0
  52. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/concepts.hpp +0 -0
  53. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/empty.hpp +0 -0
  54. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/function_ref.hpp +0 -0
  55. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/intrusive_shared_ptr.hpp +0 -0
  56. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/pool.hpp +0 -0
  57. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/print.hpp +0 -0
  58. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/profiler.hpp +0 -0
  59. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/scope_exit.hpp +0 -0
  60. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/spy.hpp +0 -0
  61. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/symbol_exports.hpp +0 -0
  62. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/pyproject.toml +0 -0
  63. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/autodiff/bind_expression_type.cpp +0 -0
  64. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/autodiff/bind_gradient.cpp +0 -0
  65. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/autodiff/bind_hessian.cpp +0 -0
  66. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/autodiff/bind_jacobian.cpp +0 -0
  67. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/autodiff/bind_variable.cpp +0 -0
  68. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/autodiff/bind_variable_block.cpp +0 -0
  69. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/autodiff/bind_variable_matrix.cpp +0 -0
  70. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/binders.hpp +0 -0
  71. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/docstrings.hpp +0 -0
  72. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/for_each_type.hpp +0 -0
  73. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/main.cpp +0 -0
  74. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/optimization/bind_equality_constraints.cpp +0 -0
  75. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/optimization/bind_inequality_constraints.cpp +0 -0
  76. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/optimization/bind_ocp.cpp +0 -0
  77. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/optimization/bind_problem.cpp +0 -0
  78. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/optimization/ocp/bind_dynamics_type.cpp +0 -0
  79. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/optimization/ocp/bind_timestep_method.cpp +0 -0
  80. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/optimization/ocp/bind_transcription_method.cpp +0 -0
  81. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/optimization/solver/bind_exit_status.cpp +0 -0
  82. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/optimization/solver/bind_iteration_info.cpp +0 -0
  83. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/try_cast.hpp +0 -0
  84. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/src/sleipnir/autodiff/__init__.py +0 -0
  85. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/src/sleipnir/optimization/__init__.py +0 -0
  86. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/autodiff/gradient_test.py +0 -0
  87. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/autodiff/hessian_test.py +0 -0
  88. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/autodiff/jacobian_test.py +0 -0
  89. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/autodiff/variable_matrix_test.py +0 -0
  90. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/autodiff/variable_test.py +0 -0
  91. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/arm_on_elevator_problem_test.py +0 -0
  92. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/cart_pole_ocp_test.py +0 -0
  93. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/cart_pole_problem_test.py +0 -0
  94. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/cart_pole_util.py +0 -0
  95. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/constraints_test.py +0 -0
  96. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/decision_variable_test.py +0 -0
  97. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/differential_drive_ocp_test.py +0 -0
  98. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/differential_drive_problem_test.py +0 -0
  99. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/differential_drive_util.py +0 -0
  100. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/double_integrator_problem_test.py +0 -0
  101. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/flywheel_ocp_test.py +0 -0
  102. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/flywheel_problem_test.py +0 -0
  103. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/linear_problem_test.py +0 -0
  104. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/multistart_test.py +0 -0
  105. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/nonlinear_problem_test.py +0 -0
  106. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/problem_spy_test.py +0 -0
  107. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/quadratic_problem_test.py +0 -0
  108. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/rk4.py +0 -0
  109. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/solver/exit_status_test.py +0 -0
  110. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/trivial_problem_test.py +0 -0
  111. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/autodiff/gradient.cpp +0 -0
  112. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/autodiff/hessian.cpp +0 -0
  113. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/autodiff/jacobian.cpp +0 -0
  114. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/autodiff/variable_matrix.cpp +0 -0
  115. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/optimization/ocp.cpp +0 -0
  116. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/optimization/problem.cpp +0 -0
  117. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/optimization/solver/interior_point.cpp +0 -0
  118. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/optimization/solver/newton.cpp +0 -0
  119. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/optimization/solver/sqp.cpp +0 -0
  120. {sleipnirgroup_jormungandr-0.5.1.dev5 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/util/pool.cpp +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sleipnirgroup-jormungandr
3
- Version: 0.5.1.dev5
3
+ Version: 0.5.1.dev7
4
4
  Summary: Reverse mode autodiff library and NLP solver DSL
5
5
  License-Expression: BSD-3-Clause
6
6
  License-File: LICENSE.txt
@@ -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.emplace_back("↳ ∇²ₓₓL").start();
352
+ ad_setup_profilers[2].start();
349
353
  Hessian<Scalar, Eigen::Lower> H{f, x_ad};
350
- ad_setup_profilers.back().stop();
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
- // Set up Lagrangian Hessian autodiff
400
- ad_setup_profilers.emplace_back("↳ ∇²ₓₓL").start();
401
- Hessian<Scalar, Eigen::Lower> H{L, x_ad};
402
- ad_setup_profilers.back().stop();
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.emplace_back("↳ ∇²ₓₓL_c").start();
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.back().stop();
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.emplace_back("↳ ∂cₑ/∂x").start();
434
+ ad_setup_profilers[5].start();
411
435
  Jacobian A_e{c_e_ad, x_ad};
412
- ad_setup_profilers.back().stop();
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 H.value();
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
- // Set up Lagrangian Hessian autodiff
484
- ad_setup_profilers.emplace_back("↳ ∇²ₓₓL").start();
485
- Hessian<Scalar, Eigen::Lower> H{L, x_ad};
486
- ad_setup_profilers.back().stop();
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.emplace_back("↳ ∇²ₓₓL_c").start();
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.back().stop();
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.emplace_back("↳ ∂cₑ/∂x").start();
540
+ ad_setup_profilers[5].start();
496
541
  Jacobian A_e{c_e_ad, x_ad};
497
- ad_setup_profilers.back().stop();
542
+ ad_setup_profilers[5].stop();
498
543
 
499
544
  // Set up inequality constraint Jacobian autodiff
500
- ad_setup_profilers.emplace_back("↳ ∂cᵢ/∂x").start();
545
+ ad_setup_profilers[6].start();
501
546
  Jacobian A_i{c_i_ad, x_ad};
502
- ad_setup_profilers.back().stop();
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 H.value();
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 autodiff diagnostics.
321
+ /// Prints setup diagnostics.
322
322
  ///
323
- /// @param setup_profilers Autodiff setup profilers.
324
- inline void print_autodiff_diagnostics(
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}┃", "autodiff trace",
331
- "percent", "total (ms)", "each (ms)", "runs");
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 print_autodiff_diagnostics(...)
347
+ #define print_setup_diagnostics(...)
348
348
  #endif
349
349
 
350
350
  } // namespace slp
@@ -2,4 +2,4 @@
2
2
 
3
3
  from ._sleipnir import *
4
4
 
5
- __version__ = "0.5.1.dev5"
5
+ __version__ = "0.5.1.dev7"