sleipnirgroup-jormungandr 0.5.6.dev21__tar.gz → 0.5.6.dev22__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 (124) hide show
  1. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/PKG-INFO +1 -1
  2. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/solver/util/dense_regularized_ldlt.hpp +20 -15
  3. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/solver/util/sparse_regularized_ldlt.hpp +20 -15
  4. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/src/sleipnir/__init__.py +1 -1
  5. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/CMakeLists.txt +0 -0
  6. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/LICENSE.txt +0 -0
  7. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/README.md +0 -0
  8. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/SleipnirConfig.cmake.in +0 -0
  9. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/cmake/BuildTypes.cmake +0 -0
  10. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/cmake/CompilerFlags.cmake +0 -0
  11. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/cmake/Pybind11Mkdoc.cmake +0 -0
  12. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/cmake/SubdirList.cmake +0 -0
  13. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/cmake/arm-none-eabi.cmake +0 -0
  14. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/autodiff/expression.hpp +0 -0
  15. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/autodiff/expression_graph.hpp +0 -0
  16. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/autodiff/expression_type.hpp +0 -0
  17. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/autodiff/gradient.hpp +0 -0
  18. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/autodiff/gradient_expression_graph.hpp +0 -0
  19. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/autodiff/hessian.hpp +0 -0
  20. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/autodiff/jacobian.hpp +0 -0
  21. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/autodiff/sleipnir_base.hpp +0 -0
  22. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/autodiff/slice.hpp +0 -0
  23. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/autodiff/variable.hpp +0 -0
  24. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/autodiff/variable_block.hpp +0 -0
  25. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/autodiff/variable_matrix.hpp +0 -0
  26. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/multistart.hpp +0 -0
  27. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/ocp/dynamics_type.hpp +0 -0
  28. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/ocp/timestep_method.hpp +0 -0
  29. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/ocp/transcription_method.hpp +0 -0
  30. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/ocp.hpp +0 -0
  31. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/problem.hpp +0 -0
  32. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/solver/exit_status.hpp +0 -0
  33. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/solver/interior_point.hpp +0 -0
  34. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/solver/interior_point_matrix_callbacks.hpp +0 -0
  35. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/solver/iteration_info.hpp +0 -0
  36. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/solver/newton.hpp +0 -0
  37. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/solver/newton_matrix_callbacks.hpp +0 -0
  38. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/solver/options.hpp +0 -0
  39. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/solver/sqp.hpp +0 -0
  40. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/solver/sqp_matrix_callbacks.hpp +0 -0
  41. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/solver/util/all_finite.hpp +0 -0
  42. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/solver/util/append_as_triplets.hpp +0 -0
  43. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/solver/util/bounds.hpp +0 -0
  44. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/solver/util/feasibility_restoration.hpp +0 -0
  45. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/solver/util/filter.hpp +0 -0
  46. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/solver/util/fraction_to_the_boundary_rule.hpp +0 -0
  47. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/solver/util/inertia.hpp +0 -0
  48. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/solver/util/is_locally_infeasible.hpp +0 -0
  49. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/solver/util/kkt_error.hpp +0 -0
  50. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/solver/util/lagrange_multiplier_estimate.hpp +0 -0
  51. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/solver/util/problem_scaling.hpp +0 -0
  52. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/solver/util/regularized_ldlt.hpp +0 -0
  53. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/optimization/solver/util/sparse_inf_norms.hpp +0 -0
  54. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/util/assert.hpp +0 -0
  55. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/util/concepts.hpp +0 -0
  56. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/util/empty.hpp +0 -0
  57. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/util/function_ref.hpp +0 -0
  58. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/util/intrusive_shared_ptr.hpp +0 -0
  59. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/util/pool.hpp +0 -0
  60. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/util/print.hpp +0 -0
  61. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/util/print_diagnostics.hpp +0 -0
  62. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/util/profiler.hpp +0 -0
  63. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/util/scope_exit.hpp +0 -0
  64. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/util/spy.hpp +0 -0
  65. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/include/sleipnir/util/symbol_exports.hpp +0 -0
  66. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/pyproject.toml +0 -0
  67. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/cpp/autodiff/bind_expression_type.cpp +0 -0
  68. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/cpp/autodiff/bind_gradient.cpp +0 -0
  69. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/cpp/autodiff/bind_hessian.cpp +0 -0
  70. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/cpp/autodiff/bind_jacobian.cpp +0 -0
  71. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/cpp/autodiff/bind_variable.cpp +0 -0
  72. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/cpp/autodiff/bind_variable_block.cpp +0 -0
  73. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/cpp/autodiff/bind_variable_matrix.cpp +0 -0
  74. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/cpp/binders.hpp +0 -0
  75. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/cpp/docstrings.hpp +0 -0
  76. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/cpp/for_each_type.hpp +0 -0
  77. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/cpp/main.cpp +0 -0
  78. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/cpp/optimization/bind_equality_constraints.cpp +0 -0
  79. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/cpp/optimization/bind_inequality_constraints.cpp +0 -0
  80. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/cpp/optimization/bind_ocp.cpp +0 -0
  81. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/cpp/optimization/bind_problem.cpp +0 -0
  82. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/cpp/optimization/ocp/bind_dynamics_type.cpp +0 -0
  83. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/cpp/optimization/ocp/bind_timestep_method.cpp +0 -0
  84. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/cpp/optimization/ocp/bind_transcription_method.cpp +0 -0
  85. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/cpp/optimization/solver/bind_exit_status.cpp +0 -0
  86. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/cpp/optimization/solver/bind_iteration_info.cpp +0 -0
  87. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/cpp/try_cast.hpp +0 -0
  88. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/src/sleipnir/autodiff/__init__.py +0 -0
  89. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/src/sleipnir/optimization/__init__.py +0 -0
  90. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/test/autodiff/gradient_test.py +0 -0
  91. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/test/autodiff/hessian_test.py +0 -0
  92. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/test/autodiff/jacobian_test.py +0 -0
  93. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/test/autodiff/variable_matrix_test.py +0 -0
  94. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/test/autodiff/variable_test.py +0 -0
  95. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/test/optimization/arm_on_elevator_problem_test.py +0 -0
  96. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/test/optimization/cart_pole_ocp_test.py +0 -0
  97. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/test/optimization/cart_pole_problem_test.py +0 -0
  98. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/test/optimization/cart_pole_util.py +0 -0
  99. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/test/optimization/constraints_test.py +0 -0
  100. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/test/optimization/decision_variable_test.py +0 -0
  101. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/test/optimization/differential_drive_ocp_test.py +0 -0
  102. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/test/optimization/differential_drive_problem_test.py +0 -0
  103. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/test/optimization/differential_drive_util.py +0 -0
  104. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/test/optimization/double_integrator_problem_test.py +0 -0
  105. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/test/optimization/flywheel_ocp_test.py +0 -0
  106. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/test/optimization/flywheel_problem_test.py +0 -0
  107. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/test/optimization/linear_problem_test.py +0 -0
  108. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/test/optimization/multistart_test.py +0 -0
  109. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/test/optimization/nonlinear_problem_test.py +0 -0
  110. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/test/optimization/problem_spy_test.py +0 -0
  111. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/test/optimization/quadratic_problem_test.py +0 -0
  112. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/test/optimization/rk4.py +0 -0
  113. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/test/optimization/solver/exit_status_test.py +0 -0
  114. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/python/test/optimization/trivial_problem_test.py +0 -0
  115. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/src/autodiff/gradient.cpp +0 -0
  116. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/src/autodiff/hessian.cpp +0 -0
  117. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/src/autodiff/jacobian.cpp +0 -0
  118. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/src/autodiff/variable_matrix.cpp +0 -0
  119. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/src/optimization/ocp.cpp +0 -0
  120. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/src/optimization/problem.cpp +0 -0
  121. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/src/optimization/solver/interior_point.cpp +0 -0
  122. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/src/optimization/solver/newton.cpp +0 -0
  123. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/src/optimization/solver/sqp.cpp +0 -0
  124. {sleipnirgroup_jormungandr-0.5.6.dev21 → sleipnirgroup_jormungandr-0.5.6.dev22}/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.6.dev21
3
+ Version: 0.5.6.dev22
4
4
  Summary: Reverse mode autodiff library and NLP solver DSL
5
5
  License-Expression: BSD-3-Clause
6
6
  License-File: LICENSE.txt
@@ -7,8 +7,6 @@
7
7
 
8
8
  #include "sleipnir/optimization/solver/util/inertia.hpp"
9
9
 
10
- // See docs/algorithms.md#Works_cited for citation definitions
11
-
12
10
  namespace slp {
13
11
 
14
12
  /// Solves dense systems of linear equations using a regularized LDLT
@@ -56,8 +54,6 @@ class DenseRegularizedLDLT {
56
54
  /// @param lhs Left-hand side of the system.
57
55
  /// @return The factorization.
58
56
  DenseRegularizedLDLT& compute(const DenseMatrix& lhs) {
59
- // The regularization procedure is based on algorithm B.1 of [1]
60
-
61
57
  m_info = m_solver.compute(lhs).info();
62
58
 
63
59
  if (m_info == Eigen::Success) {
@@ -73,11 +69,15 @@ class DenseRegularizedLDLT {
73
69
  }
74
70
  }
75
71
 
76
- // Also regularize the Hessian. If the Hessian wasn't regularized in a
77
- // previous run of compute(), start at small values of δ and γ. Otherwise,
78
- // attempt a δ and γ half as big as the previous run so δ and γ can trend
79
- // downwards over time.
72
+ // We'll give lhs the correct inertia by adding [δI, 0; 0, −γI] where δ and
73
+ // γ regularize the Hessian and equality constraint Jacobian respectively.
74
+
75
+ // If the previous δ was zero, attempt a small value. Otherwise, attempt a
76
+ // smaller value than the previous δ so δ trends downward.
80
77
  Scalar δ = m_prev_δ == Scalar(0) ? Scalar(1e-4) : m_prev_δ / Scalar(2);
78
+
79
+ // Start γ at the minimum to minimize equality constraint Jacobian
80
+ // distortion.
81
81
  Scalar γ = m_γ_min;
82
82
 
83
83
  while (true) {
@@ -93,28 +93,33 @@ class DenseRegularizedLDLT {
93
93
  return *this;
94
94
  } else if (inertia.zero > 0) {
95
95
  if (γ == Scalar(0)) {
96
- // If there's zero eigenvalues and γ = 0, increase γ
96
+ // If there's zero eigenvalues and γ = 0, increase γ to potentially
97
+ // compensate for a rank-deficient equality constraint Jacobian
97
98
  γ = Scalar(1e-10);
98
99
  } else {
99
- // If there's zero eigenvalues and γ > 0, increase δ and γ
100
+ // If there's zero eigenvalues and γ > 0, increase δ and γ to drive
101
+ // all eigenvalues away from zero
100
102
  δ *= Scalar(10);
101
103
  γ *= Scalar(10);
102
104
  }
103
105
  } else if (inertia.negative > ideal_inertia.negative) {
104
- // If there's too many negative eigenvalues, increase δ
106
+ // If there's too many negative eigenvalues, increase δ to add more
107
+ // positive eigenvalues
105
108
  δ *= Scalar(10);
106
109
  } else if (inertia.positive > ideal_inertia.positive) {
107
- // If there's too many positive eigenvalues, increase γ
110
+ // If there's too many positive eigenvalues, increase γ to add more
111
+ // negative eigenvalues
108
112
  γ = γ == Scalar(0) ? Scalar(1e-10) : γ * Scalar(10);
109
113
  }
110
114
  } else {
111
- // If the decomposition failed, increase δ and γ
115
+ // If the decomposition failed, increase δ and γ to drive all
116
+ // eigenvalues away from zero
112
117
  δ *= Scalar(10);
113
118
  γ = γ == Scalar(0) ? Scalar(1e-10) : γ * Scalar(10);
114
119
  }
115
120
 
116
- // If the Hessian perturbation is too high, report failure. This can be
117
- // caused by ill-conditioning.
121
+ // If the lhs perturbation is too high, report failure. This can be caused
122
+ // by ill-conditioning.
118
123
  if (δ > Scalar(1e20) || γ > Scalar(1e20)) {
119
124
  m_info = Eigen::NumericalIssue;
120
125
  m_prev_δ = δ;
@@ -8,8 +8,6 @@
8
8
 
9
9
  #include "sleipnir/optimization/solver/util/inertia.hpp"
10
10
 
11
- // See docs/algorithms.md#Works_cited for citation definitions
12
-
13
11
  namespace slp {
14
12
 
15
13
  /// Solves sparse systems of linear equations using a regularized LDLT
@@ -61,8 +59,6 @@ class SparseRegularizedLDLT {
61
59
  /// @param lhs Left-hand side of the system.
62
60
  /// @return The factorization.
63
61
  SparseRegularizedLDLT& compute(const SparseMatrix& lhs) {
64
- // The regularization procedure is based on algorithm B.1 of [1]
65
-
66
62
  // Regularization with zeros ensures the pattern analysis in the sparse
67
63
  // solver is reused by all factorizations
68
64
  SparseMatrix unregularized_lhs = lhs + regularization(Scalar(0), Scalar(0));
@@ -88,11 +84,15 @@ class SparseRegularizedLDLT {
88
84
  }
89
85
  }
90
86
 
91
- // Also regularize the Hessian. If the Hessian wasn't regularized in a
92
- // previous run of compute(), start at small values of δ and γ. Otherwise,
93
- // attempt a δ and γ half as big as the previous run so δ and γ can trend
94
- // downwards over time.
87
+ // We'll give lhs the correct inertia by adding [δI, 0; 0, −γI] where δ and
88
+ // γ regularize the Hessian and equality constraint Jacobian respectively.
89
+
90
+ // If the previous δ was zero, attempt a small value. Otherwise, attempt a
91
+ // smaller value than the previous δ so δ trends downward.
95
92
  Scalar δ = m_prev_δ == Scalar(0) ? Scalar(1e-4) : m_prev_δ / Scalar(2);
93
+
94
+ // Start γ at the minimum to minimize equality constraint Jacobian
95
+ // distortion.
96
96
  Scalar γ = m_γ_min;
97
97
 
98
98
  while (true) {
@@ -109,28 +109,33 @@ class SparseRegularizedLDLT {
109
109
  return *this;
110
110
  } else if (inertia.zero > 0) {
111
111
  if (γ == Scalar(0)) {
112
- // If there's zero eigenvalues and γ = 0, increase γ
112
+ // If there's zero eigenvalues and γ = 0, increase γ to potentially
113
+ // compensate for a rank-deficient equality constraint Jacobian
113
114
  γ = Scalar(1e-10);
114
115
  } else {
115
- // If there's zero eigenvalues and γ > 0, increase δ and γ
116
+ // If there's zero eigenvalues and γ > 0, increase δ and γ to drive
117
+ // all eigenvalues away from zero
116
118
  δ *= Scalar(10);
117
119
  γ *= Scalar(10);
118
120
  }
119
121
  } else if (inertia.negative > ideal_inertia.negative) {
120
- // If there's too many negative eigenvalues, increase δ
122
+ // If there's too many negative eigenvalues, increase δ to add more
123
+ // positive eigenvalues
121
124
  δ *= Scalar(10);
122
125
  } else if (inertia.positive > ideal_inertia.positive) {
123
- // If there's too many positive eigenvalues, increase γ
126
+ // If there's too many positive eigenvalues, increase γ to add more
127
+ // negative eigenvalues
124
128
  γ = γ == Scalar(0) ? Scalar(1e-10) : γ * Scalar(10);
125
129
  }
126
130
  } else {
127
- // If the decomposition failed, increase δ and γ
131
+ // If the decomposition failed, increase δ and γ to drive all
132
+ // eigenvalues away from zero
128
133
  δ *= Scalar(10);
129
134
  γ = γ == Scalar(0) ? Scalar(1e-10) : γ * Scalar(10);
130
135
  }
131
136
 
132
- // If the Hessian perturbation is too high, report failure. This can be
133
- // caused by ill-conditioning.
137
+ // If the lhs perturbation is too high, report failure. This can be caused
138
+ // by ill-conditioning.
134
139
  if (δ > Scalar(1e20) || γ > Scalar(1e20)) {
135
140
  m_info = Eigen::NumericalIssue;
136
141
  m_prev_δ = δ;
@@ -2,4 +2,4 @@
2
2
 
3
3
  from ._sleipnir import *
4
4
 
5
- __version__ = "0.5.6.dev21"
5
+ __version__ = "0.5.6.dev22"