sleipnirgroup-jormungandr 0.5.1.dev6__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.

Potentially problematic release.


This version of sleipnirgroup-jormungandr might be problematic. Click here for more details.

Files changed (120) hide show
  1. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/PKG-INFO +1 -1
  2. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/problem.hpp +73 -36
  3. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/src/sleipnir/__init__.py +1 -1
  4. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/CMakeLists.txt +0 -0
  5. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/LICENSE.txt +0 -0
  6. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/README.md +0 -0
  7. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/SleipnirConfig.cmake.in +0 -0
  8. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/cmake/BuildTypes.cmake +0 -0
  9. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/cmake/CompilerFlags.cmake +0 -0
  10. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/cmake/Pybind11Mkdoc.cmake +0 -0
  11. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/cmake/SubdirList.cmake +0 -0
  12. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/cmake/arm-none-eabi.cmake +0 -0
  13. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/expression.hpp +0 -0
  14. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/expression_graph.hpp +0 -0
  15. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/expression_type.hpp +0 -0
  16. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/gradient.hpp +0 -0
  17. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/gradient_expression_graph.hpp +0 -0
  18. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/hessian.hpp +0 -0
  19. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/jacobian.hpp +0 -0
  20. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/sleipnir_base.hpp +0 -0
  21. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/slice.hpp +0 -0
  22. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/variable.hpp +0 -0
  23. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/variable_block.hpp +0 -0
  24. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/autodiff/variable_matrix.hpp +0 -0
  25. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/multistart.hpp +0 -0
  26. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/ocp/dynamics_type.hpp +0 -0
  27. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/ocp/timestep_method.hpp +0 -0
  28. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/ocp/transcription_method.hpp +0 -0
  29. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/ocp.hpp +0 -0
  30. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/exit_status.hpp +0 -0
  31. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/interior_point.hpp +0 -0
  32. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/interior_point_matrix_callbacks.hpp +0 -0
  33. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/iteration_info.hpp +0 -0
  34. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/newton.hpp +0 -0
  35. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/newton_matrix_callbacks.hpp +0 -0
  36. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/options.hpp +0 -0
  37. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/sqp.hpp +0 -0
  38. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/sqp_matrix_callbacks.hpp +0 -0
  39. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/all_finite.hpp +0 -0
  40. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/append_as_triplets.hpp +0 -0
  41. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/bounds.hpp +0 -0
  42. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/feasibility_restoration.hpp +0 -0
  43. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/filter.hpp +0 -0
  44. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/fraction_to_the_boundary_rule.hpp +0 -0
  45. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/inertia.hpp +0 -0
  46. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/is_locally_infeasible.hpp +0 -0
  47. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/kkt_error.hpp +0 -0
  48. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/lagrange_multiplier_estimate.hpp +0 -0
  49. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/optimization/solver/util/regularized_ldlt.hpp +0 -0
  50. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/assert.hpp +0 -0
  51. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/concepts.hpp +0 -0
  52. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/empty.hpp +0 -0
  53. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/function_ref.hpp +0 -0
  54. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/intrusive_shared_ptr.hpp +0 -0
  55. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/pool.hpp +0 -0
  56. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/print.hpp +0 -0
  57. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/print_diagnostics.hpp +0 -0
  58. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/profiler.hpp +0 -0
  59. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/scope_exit.hpp +0 -0
  60. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/spy.hpp +0 -0
  61. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/include/sleipnir/util/symbol_exports.hpp +0 -0
  62. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/pyproject.toml +0 -0
  63. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/autodiff/bind_expression_type.cpp +0 -0
  64. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/autodiff/bind_gradient.cpp +0 -0
  65. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/autodiff/bind_hessian.cpp +0 -0
  66. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/autodiff/bind_jacobian.cpp +0 -0
  67. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/autodiff/bind_variable.cpp +0 -0
  68. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/autodiff/bind_variable_block.cpp +0 -0
  69. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/autodiff/bind_variable_matrix.cpp +0 -0
  70. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/binders.hpp +0 -0
  71. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/docstrings.hpp +0 -0
  72. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/for_each_type.hpp +0 -0
  73. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/main.cpp +0 -0
  74. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/optimization/bind_equality_constraints.cpp +0 -0
  75. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/optimization/bind_inequality_constraints.cpp +0 -0
  76. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/optimization/bind_ocp.cpp +0 -0
  77. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/optimization/bind_problem.cpp +0 -0
  78. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/optimization/ocp/bind_dynamics_type.cpp +0 -0
  79. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/optimization/ocp/bind_timestep_method.cpp +0 -0
  80. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/optimization/ocp/bind_transcription_method.cpp +0 -0
  81. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/optimization/solver/bind_exit_status.cpp +0 -0
  82. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/optimization/solver/bind_iteration_info.cpp +0 -0
  83. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/cpp/try_cast.hpp +0 -0
  84. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/src/sleipnir/autodiff/__init__.py +0 -0
  85. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/src/sleipnir/optimization/__init__.py +0 -0
  86. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/autodiff/gradient_test.py +0 -0
  87. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/autodiff/hessian_test.py +0 -0
  88. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/autodiff/jacobian_test.py +0 -0
  89. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/autodiff/variable_matrix_test.py +0 -0
  90. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/autodiff/variable_test.py +0 -0
  91. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/arm_on_elevator_problem_test.py +0 -0
  92. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/cart_pole_ocp_test.py +0 -0
  93. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/cart_pole_problem_test.py +0 -0
  94. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/cart_pole_util.py +0 -0
  95. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/constraints_test.py +0 -0
  96. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/decision_variable_test.py +0 -0
  97. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/differential_drive_ocp_test.py +0 -0
  98. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/differential_drive_problem_test.py +0 -0
  99. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/differential_drive_util.py +0 -0
  100. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/double_integrator_problem_test.py +0 -0
  101. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/flywheel_ocp_test.py +0 -0
  102. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/flywheel_problem_test.py +0 -0
  103. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/linear_problem_test.py +0 -0
  104. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/multistart_test.py +0 -0
  105. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/nonlinear_problem_test.py +0 -0
  106. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/problem_spy_test.py +0 -0
  107. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/quadratic_problem_test.py +0 -0
  108. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/rk4.py +0 -0
  109. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/solver/exit_status_test.py +0 -0
  110. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/python/test/optimization/trivial_problem_test.py +0 -0
  111. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/autodiff/gradient.cpp +0 -0
  112. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/autodiff/hessian.cpp +0 -0
  113. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/autodiff/jacobian.cpp +0 -0
  114. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/autodiff/variable_matrix.cpp +0 -0
  115. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/optimization/ocp.cpp +0 -0
  116. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/optimization/problem.cpp +0 -0
  117. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/optimization/solver/interior_point.cpp +0 -0
  118. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/optimization/solver/newton.cpp +0 -0
  119. {sleipnirgroup_jormungandr-0.5.1.dev6 → sleipnirgroup_jormungandr-0.5.1.dev7}/src/optimization/solver/sqp.cpp +0 -0
  120. {sleipnirgroup_jormungandr-0.5.1.dev6 → 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.dev6
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,10 +336,22 @@ 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
 
@@ -395,25 +399,41 @@ class Problem {
395
399
  }
396
400
 
397
401
  VariableMatrix<Scalar> c_e_ad{m_equality_constraints};
398
-
399
- // Set up Lagrangian
400
402
  VariableMatrix<Scalar> y_ad(num_equality_constraints);
401
- Variable L = f - y_ad.T() * c_e_ad;
402
403
 
403
- // Set up Lagrangian Hessian autodiff
404
- ad_setup_profilers.emplace_back("↳ ∇²ₓₓL").start();
405
- Hessian<Scalar, Eigen::Lower> H{L, x_ad};
406
- 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();
407
425
 
408
426
  // Set up constraint part of Lagrangian Hessian autodiff
409
- ad_setup_profilers.emplace_back("↳ ∇²ₓₓL_c").start();
427
+ ad_setup_profilers[4].start();
410
428
  Hessian<Scalar, Eigen::Lower> H_c{-y_ad.T() * c_e_ad, x_ad};
411
- ad_setup_profilers.back().stop();
429
+ ad_setup_profilers[4].stop();
430
+
431
+ ad_setup_profilers[2].stop();
412
432
 
413
433
  // Set up equality constraint Jacobian autodiff
414
- ad_setup_profilers.emplace_back("↳ ∂cₑ/∂x").start();
434
+ ad_setup_profilers[5].start();
415
435
  Jacobian A_e{c_e_ad, x_ad};
416
- ad_setup_profilers.back().stop();
436
+ ad_setup_profilers[5].stop();
417
437
 
418
438
  ad_setup_profilers[0].stop();
419
439
 
@@ -457,7 +477,7 @@ class Problem {
457
477
  [&](const DenseVector& x, const DenseVector& y) -> SparseMatrix {
458
478
  x_ad.set_value(x);
459
479
  y_ad.set_value(y);
460
- return H.value();
480
+ return H_f.value() + H_c.value();
461
481
  },
462
482
  [&](const DenseVector& x, const DenseVector& y) -> SparseMatrix {
463
483
  x_ad.set_value(x);
@@ -482,32 +502,49 @@ class Problem {
482
502
 
483
503
  VariableMatrix<Scalar> c_e_ad{m_equality_constraints};
484
504
  VariableMatrix<Scalar> c_i_ad{m_inequality_constraints};
485
-
486
- // Set up Lagrangian
487
505
  VariableMatrix<Scalar> y_ad(num_equality_constraints);
488
506
  VariableMatrix<Scalar> z_ad(num_inequality_constraints);
489
- Variable L = f - y_ad.T() * c_e_ad - z_ad.T() * c_i_ad;
490
507
 
491
- // Set up Lagrangian Hessian autodiff
492
- ad_setup_profilers.emplace_back("↳ ∇²ₓₓL").start();
493
- Hessian<Scalar, Eigen::Lower> H{L, x_ad};
494
- 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();
495
530
 
496
531
  // Set up constraint part of Lagrangian Hessian autodiff
497
- ad_setup_profilers.emplace_back("↳ ∇²ₓₓL_c").start();
532
+ ad_setup_profilers[4].start();
498
533
  Hessian<Scalar, Eigen::Lower> H_c{-y_ad.T() * c_e_ad - z_ad.T() * c_i_ad,
499
534
  x_ad};
500
- ad_setup_profilers.back().stop();
535
+ ad_setup_profilers[4].stop();
536
+
537
+ ad_setup_profilers[2].stop();
501
538
 
502
539
  // Set up equality constraint Jacobian autodiff
503
- ad_setup_profilers.emplace_back("↳ ∂cₑ/∂x").start();
540
+ ad_setup_profilers[5].start();
504
541
  Jacobian A_e{c_e_ad, x_ad};
505
- ad_setup_profilers.back().stop();
542
+ ad_setup_profilers[5].stop();
506
543
 
507
544
  // Set up inequality constraint Jacobian autodiff
508
- ad_setup_profilers.emplace_back("↳ ∂cᵢ/∂x").start();
545
+ ad_setup_profilers[6].start();
509
546
  Jacobian A_i{c_i_ad, x_ad};
510
- ad_setup_profilers.back().stop();
547
+ ad_setup_profilers[6].stop();
511
548
 
512
549
  ad_setup_profilers[0].stop();
513
550
 
@@ -575,7 +612,7 @@ class Problem {
575
612
  x_ad.set_value(x);
576
613
  y_ad.set_value(y);
577
614
  z_ad.set_value(z);
578
- return H.value();
615
+ return H_f.value() + H_c.value();
579
616
  },
580
617
  [&](const DenseVector& x, const DenseVector& y,
581
618
  const DenseVector& z) -> SparseMatrix {
@@ -2,4 +2,4 @@
2
2
 
3
3
  from ._sleipnir import *
4
4
 
5
- __version__ = "0.5.1.dev6"
5
+ __version__ = "0.5.1.dev7"