sleipnirgroup-jormungandr 0.6.5.dev3__tar.gz → 0.6.5.dev5__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 (123) hide show
  1. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/PKG-INFO +1 -1
  2. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/solver/interior_point.hpp +18 -6
  3. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/solver/newton.hpp +2 -1
  4. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/solver/sqp.hpp +5 -3
  5. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/solver/util/filter.hpp +5 -16
  6. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/src/sleipnir/__init__.py +1 -1
  7. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/CMakeLists.txt +0 -0
  8. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/LICENSE.txt +0 -0
  9. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/README.md +0 -0
  10. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/SleipnirConfig.cmake.in +0 -0
  11. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/cmake/BuildTypes.cmake +0 -0
  12. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/cmake/CompilerFlags.cmake +0 -0
  13. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/cmake/Pybind11Mkdoc.cmake +0 -0
  14. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/cmake/SubdirList.cmake +0 -0
  15. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/cmake/arm-none-eabi.cmake +0 -0
  16. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/autodiff/expression.hpp +0 -0
  17. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/autodiff/expression_graph.hpp +0 -0
  18. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/autodiff/expression_type.hpp +0 -0
  19. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/autodiff/gradient.hpp +0 -0
  20. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/autodiff/hessian.hpp +0 -0
  21. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/autodiff/jacobian.hpp +0 -0
  22. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/autodiff/sleipnir_base.hpp +0 -0
  23. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/autodiff/slice.hpp +0 -0
  24. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/autodiff/variable.hpp +0 -0
  25. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/autodiff/variable_block.hpp +0 -0
  26. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/autodiff/variable_matrix.hpp +0 -0
  27. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/multistart.hpp +0 -0
  28. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/ocp/dynamics_type.hpp +0 -0
  29. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/ocp/timestep_method.hpp +0 -0
  30. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/ocp/transcription_method.hpp +0 -0
  31. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/ocp.hpp +0 -0
  32. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/problem.hpp +0 -0
  33. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/solver/exit_status.hpp +0 -0
  34. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/solver/interior_point_matrix_callbacks.hpp +0 -0
  35. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/solver/iteration_info.hpp +0 -0
  36. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/solver/newton_matrix_callbacks.hpp +0 -0
  37. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/solver/options.hpp +0 -0
  38. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/solver/sqp_matrix_callbacks.hpp +0 -0
  39. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/solver/util/all_finite.hpp +0 -0
  40. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/solver/util/append_as_triplets.hpp +0 -0
  41. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/solver/util/bounds.hpp +0 -0
  42. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/solver/util/dense_regularized_ldlt.hpp +0 -0
  43. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/solver/util/feasibility_restoration.hpp +0 -0
  44. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/solver/util/fraction_to_the_boundary_rule.hpp +0 -0
  45. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/solver/util/inertia.hpp +0 -0
  46. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/solver/util/is_locally_infeasible.hpp +0 -0
  47. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/solver/util/kkt_error.hpp +0 -0
  48. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/solver/util/lagrange_multiplier_estimate.hpp +0 -0
  49. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/solver/util/problem_scaling.hpp +0 -0
  50. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/solver/util/regularized_ldlt.hpp +0 -0
  51. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/solver/util/sparse_inf_norms.hpp +0 -0
  52. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/optimization/solver/util/sparse_regularized_ldlt.hpp +0 -0
  53. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/util/assert.hpp +0 -0
  54. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/util/concepts.hpp +0 -0
  55. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/util/empty.hpp +0 -0
  56. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/util/function_ref.hpp +0 -0
  57. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/util/intrusive_shared_ptr.hpp +0 -0
  58. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/util/pool.hpp +0 -0
  59. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/util/print.hpp +0 -0
  60. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/util/print_diagnostics.hpp +0 -0
  61. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/util/profiler.hpp +0 -0
  62. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/util/scope_exit.hpp +0 -0
  63. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/util/spy.hpp +0 -0
  64. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/include/sleipnir/util/symbol_exports.hpp +0 -0
  65. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/pyproject.toml +0 -0
  66. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/cpp/autodiff/bind_expression_type.cpp +0 -0
  67. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/cpp/autodiff/bind_gradient.cpp +0 -0
  68. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/cpp/autodiff/bind_hessian.cpp +0 -0
  69. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/cpp/autodiff/bind_jacobian.cpp +0 -0
  70. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/cpp/autodiff/bind_variable.cpp +0 -0
  71. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/cpp/autodiff/bind_variable_block.cpp +0 -0
  72. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/cpp/autodiff/bind_variable_matrix.cpp +0 -0
  73. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/cpp/binders.hpp +0 -0
  74. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/cpp/docstrings.hpp +0 -0
  75. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/cpp/for_each_type.hpp +0 -0
  76. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/cpp/main.cpp +0 -0
  77. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/cpp/optimization/bind_equality_constraints.cpp +0 -0
  78. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/cpp/optimization/bind_inequality_constraints.cpp +0 -0
  79. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/cpp/optimization/bind_ocp.cpp +0 -0
  80. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/cpp/optimization/bind_problem.cpp +0 -0
  81. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/cpp/optimization/ocp/bind_dynamics_type.cpp +0 -0
  82. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/cpp/optimization/ocp/bind_timestep_method.cpp +0 -0
  83. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/cpp/optimization/ocp/bind_transcription_method.cpp +0 -0
  84. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/cpp/optimization/solver/bind_exit_status.cpp +0 -0
  85. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/cpp/optimization/solver/bind_iteration_info.cpp +0 -0
  86. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/cpp/try_cast.hpp +0 -0
  87. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/src/sleipnir/autodiff/__init__.py +0 -0
  88. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/src/sleipnir/optimization/__init__.py +0 -0
  89. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/test/autodiff/gradient_test.py +0 -0
  90. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/test/autodiff/hessian_test.py +0 -0
  91. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/test/autodiff/jacobian_test.py +0 -0
  92. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/test/autodiff/variable_matrix_test.py +0 -0
  93. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/test/autodiff/variable_test.py +0 -0
  94. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/test/optimization/arm_on_elevator_problem_test.py +0 -0
  95. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/test/optimization/cart_pole_ocp_test.py +0 -0
  96. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/test/optimization/cart_pole_problem_test.py +0 -0
  97. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/test/optimization/cart_pole_util.py +0 -0
  98. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/test/optimization/constraints_test.py +0 -0
  99. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/test/optimization/decision_variable_test.py +0 -0
  100. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/test/optimization/differential_drive_ocp_test.py +0 -0
  101. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/test/optimization/differential_drive_problem_test.py +0 -0
  102. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/test/optimization/differential_drive_util.py +0 -0
  103. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/test/optimization/double_integrator_problem_test.py +0 -0
  104. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/test/optimization/flywheel_ocp_test.py +0 -0
  105. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/test/optimization/flywheel_problem_test.py +0 -0
  106. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/test/optimization/linear_problem_test.py +0 -0
  107. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/test/optimization/multistart_test.py +0 -0
  108. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/test/optimization/nonlinear_problem_test.py +0 -0
  109. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/test/optimization/problem_spy_test.py +0 -0
  110. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/test/optimization/quadratic_problem_test.py +0 -0
  111. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/test/optimization/rk4.py +0 -0
  112. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/test/optimization/solver/exit_status_test.py +0 -0
  113. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/python/test/optimization/trivial_problem_test.py +0 -0
  114. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/src/autodiff/gradient.cpp +0 -0
  115. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/src/autodiff/hessian.cpp +0 -0
  116. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/src/autodiff/jacobian.cpp +0 -0
  117. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/src/autodiff/variable_matrix.cpp +0 -0
  118. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/src/optimization/ocp.cpp +0 -0
  119. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/src/optimization/problem.cpp +0 -0
  120. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/src/optimization/solver/interior_point.cpp +0 -0
  121. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/src/optimization/solver/newton.cpp +0 -0
  122. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/src/optimization/solver/sqp.cpp +0 -0
  123. {sleipnirgroup_jormungandr-0.6.5.dev3 → sleipnirgroup_jormungandr-0.6.5.dev5}/src/util/pool.cpp +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sleipnirgroup-jormungandr
3
- Version: 0.6.5.dev3
3
+ Version: 0.6.5.dev5
4
4
  Summary: Reverse mode autodiff library and NLP solver DSL
5
5
  License-Expression: BSD-3-Clause
6
6
  License-File: LICENSE.txt
@@ -498,6 +498,16 @@ ExitStatus interior_point(
498
498
 
499
499
  const FilterEntry<Scalar> current_entry{f, s, c_e, c_i, μ};
500
500
 
501
+ // Compute the directional derivative of the log-barrier function along the
502
+ // search direction.
503
+ //
504
+ // ϕ_μ(x, s) = f(x) − μ∑ᵢ ln(sᵢ)
505
+ //
506
+ // D_ϕ = ∇ϕ_μ(x, s)ᵀ[pˣ pˢ]
507
+ // = ∇f(x)ᵀpˣ − μ∑ᵢ pᵢˢ/sᵢ
508
+ const Scalar D_ϕ =
509
+ g.transpose() * step.p_x - μ * s.cwiseInverse().dot(step.p_s);
510
+
501
511
  // Loop until a step is accepted
502
512
  while (1) {
503
513
  trial_x = x + α * step.p_x;
@@ -533,7 +543,7 @@ ExitStatus interior_point(
533
543
 
534
544
  // Check whether filter accepts trial iterate
535
545
  FilterEntry trial_entry{trial_f, trial_s, trial_c_e, trial_c_i, μ};
536
- if (filter.try_add(current_entry, trial_entry, step.p_x, g, α)) {
546
+ if (filter.try_add(current_entry, trial_entry, D_ϕ, α)) {
537
547
  // Accept step
538
548
  break;
539
549
  }
@@ -595,9 +605,9 @@ ExitStatus interior_point(
595
605
  //
596
606
  // where
597
607
  //
598
- // cₑˢᵒᶜ = αˢᵒᶜcₑ(xₖ) + cₑ(xₖ + αˢᵒᶜpˣˢᵒᶜ)
599
- // (cᵢ − s)ˢᵒᶜ = αˢᵒᶜ(cᵢ(xₖ) − sₖ) + cᵢ(xₖ + αˢᵒᶜpˣˢᵒᶜ)
600
- // − (sₖ + αˢᵒᶜpˢˢᵒᶜ).
608
+ // cₑˢᵒᶜ = αˢᵒᶜcₑ(xₖ) + cₑ(xₖ + αˢᵒᶜpˣˢᵒᶜ)
609
+ // (cᵢ − s)ˢᵒᶜ =
610
+ // αˢᵒᶜ(cᵢ(xₖ) − sₖ) + cᵢ(xₖ + αˢᵒᶜpˣˢᵒᶜ) − (sₖ + αˢᵒᶜpˢˢᵒᶜ)
601
611
  c_e_soc = α_soc * c_e_soc + trial_c_e;
602
612
  c_i_minus_s_soc = α_soc * c_i_minus_s_soc + trial_c_i - trial_s;
603
613
  rhs.segment(0, x.rows()) =
@@ -624,7 +634,7 @@ ExitStatus interior_point(
624
634
 
625
635
  // Check whether filter accepts trial iterate
626
636
  FilterEntry trial_entry{trial_f, trial_s, trial_c_e, trial_c_i, μ};
627
- if (filter.try_add(current_entry, trial_entry, step.p_x, g, α)) {
637
+ if (filter.try_add(current_entry, trial_entry, D_ϕ, α)) {
628
638
  step = soc_step;
629
639
  α = α_soc;
630
640
  α_z = α_z_soc;
@@ -738,9 +748,11 @@ ExitStatus interior_point(
738
748
  // is accepted by the normal filter, stop feasibility restoration
739
749
  FilterEntry trial_entry{matrices.f(trial_x), trial_s, trial_c_e,
740
750
  trial_c_i, μ};
751
+ const Scalar D_ϕ_restoration = g.transpose() * (trial_x - x) -
752
+ μ * s.cwiseInverse().dot(trial_s - s);
741
753
  return trial_entry.constraint_violation <
742
754
  Scalar(0.9) * initial_entry.constraint_violation &&
743
- filter.try_add(initial_entry, trial_entry, trial_x - x, g, α);
755
+ filter.try_add(initial_entry, trial_entry, D_ϕ_restoration, α);
744
756
  });
745
757
  auto status =
746
758
  feasibility_restoration<Scalar>(matrices, callbacks, options,
@@ -195,6 +195,7 @@ ExitStatus newton(
195
195
 
196
196
  constexpr Scalar α_max(1);
197
197
  Scalar α = α_max;
198
+ const Scalar D_ϕ = g.transpose() * p_x;
198
199
 
199
200
  // Loop until a step is accepted. If a step becomes acceptable, the loop
200
201
  // will exit early.
@@ -215,7 +216,7 @@ ExitStatus newton(
215
216
  }
216
217
 
217
218
  // Check whether filter accepts trial iterate
218
- if (filter.try_add(FilterEntry{f}, FilterEntry{trial_f}, p_x, g, α)) {
219
+ if (filter.try_add(FilterEntry{f}, FilterEntry{trial_f}, D_ϕ, α)) {
219
220
  // Accept step
220
221
  break;
221
222
  }
@@ -339,6 +339,7 @@ ExitStatus sqp(const SQPMatrixCallbacks<Scalar>& matrix_callbacks,
339
339
  α = α_max;
340
340
 
341
341
  const FilterEntry<Scalar> current_entry{f, c_e};
342
+ const Scalar D_ϕ = g.transpose() * step.p_x;
342
343
 
343
344
  // Loop until a step is accepted
344
345
  while (1) {
@@ -363,7 +364,7 @@ ExitStatus sqp(const SQPMatrixCallbacks<Scalar>& matrix_callbacks,
363
364
 
364
365
  // Check whether filter accepts trial iterate
365
366
  FilterEntry trial_entry{trial_f, trial_c_e};
366
- if (filter.try_add(current_entry, trial_entry, step.p_x, g, α)) {
367
+ if (filter.try_add(current_entry, trial_entry, D_ϕ, α)) {
367
368
  // Accept step
368
369
  break;
369
370
  }
@@ -428,7 +429,7 @@ ExitStatus sqp(const SQPMatrixCallbacks<Scalar>& matrix_callbacks,
428
429
 
429
430
  // Check whether the filter accepts trial iterate
430
431
  FilterEntry trial_entry{trial_f, trial_c_e};
431
- if (filter.try_add(current_entry, trial_entry, step.p_x, g, α)) {
432
+ if (filter.try_add(current_entry, trial_entry, D_ϕ, α)) {
432
433
  step = soc_step;
433
434
  α = α_soc;
434
435
  step_acceptable = true;
@@ -524,12 +525,13 @@ ExitStatus sqp(const SQPMatrixCallbacks<Scalar>& matrix_callbacks,
524
525
  DenseVector trial_c_e = matrices.c_e(trial_x);
525
526
 
526
527
  FilterEntry trial_entry{matrices.f(trial_x), trial_c_e};
528
+ const Scalar D_ϕ_restoration = g.transpose() * (trial_x - x);
527
529
 
528
530
  // If the current iterate sufficiently reduces constraint violation and
529
531
  // is accepted by the normal filter, stop feasibility restoration
530
532
  return trial_entry.constraint_violation <
531
533
  Scalar(0.9) * initial_entry.constraint_violation &&
532
- filter.try_add(initial_entry, trial_entry, trial_x - x, g, α);
534
+ filter.try_add(initial_entry, trial_entry, D_ϕ_restoration, α);
533
535
  });
534
536
  auto status = feasibility_restoration<Scalar>(matrices, callbacks,
535
537
  options, x, y, iterations);
@@ -6,7 +6,6 @@
6
6
  #include <cmath>
7
7
 
8
8
  #include <Eigen/Core>
9
- #include <Eigen/SparseCore>
10
9
  #include <gch/small_vector.hpp>
11
10
 
12
11
  // See docs/algorithms.md#Works_cited for citation definitions.
@@ -75,12 +74,6 @@ struct FilterEntry {
75
74
  template <typename Scalar>
76
75
  class Filter {
77
76
  public:
78
- /// Type alias for dense vector.
79
- using DenseVector = Eigen::Vector<Scalar, Eigen::Dynamic>;
80
-
81
- /// Type alias for sparse vector.
82
- using SparseVector = Eigen::SparseVector<Scalar>;
83
-
84
77
  /// The minimum constraint violation
85
78
  Scalar min_constraint_violation;
86
79
 
@@ -110,13 +103,11 @@ class Filter {
110
103
  ///
111
104
  /// @param current_entry The entry corresponding to the current iterate.
112
105
  /// @param trial_entry The entry corresponding to the trial iterate.
113
- /// @param p_x Decision variable primal step.
114
- /// @param g Cost function gradient.
106
+ /// @param D_ϕ Cost directional derivative along the search direction.
115
107
  /// @param α The step size (0, 1].
116
108
  /// @return True if the given entry is acceptable to the filter.
117
109
  bool try_add(const FilterEntry<Scalar>& current_entry,
118
- const FilterEntry<Scalar>& trial_entry, const DenseVector& p_x,
119
- const SparseVector& g, Scalar α) {
110
+ const FilterEntry<Scalar>& trial_entry, Scalar D_ϕ, Scalar α) {
120
111
  using std::isfinite;
121
112
  using std::pow;
122
113
 
@@ -126,19 +117,17 @@ class Filter {
126
117
  return false;
127
118
  }
128
119
 
129
- Scalar g_p_x = g.transpose() * p_x;
130
-
131
120
  // Switching condition
132
121
  constexpr Scalar s_ϕ(2.3);
133
122
  constexpr Scalar s_θ(1.1);
134
123
  bool switching_condition =
135
- g_p_x < Scalar(0) &&
136
- α * pow(-g_p_x, s_ϕ) > pow(current_entry.constraint_violation, s_θ);
124
+ D_ϕ < Scalar(0) &&
125
+ α * pow(-D_ϕ, s_ϕ) > pow(current_entry.constraint_violation, s_θ);
137
126
 
138
127
  // Armijo condition
139
128
  constexpr Scalar η_ϕ(1e-8);
140
129
  bool armijo_condition =
141
- trial_entry.cost <= current_entry.cost + η_ϕ * α * g_p_x;
130
+ trial_entry.cost <= current_entry.cost + η_ϕ * α * D_ϕ;
142
131
 
143
132
  // Sufficient decrease condition
144
133
  //
@@ -2,4 +2,4 @@
2
2
 
3
3
  from ._sleipnir import *
4
4
 
5
- __version__ = "0.6.5.dev3"
5
+ __version__ = "0.6.5.dev5"