sleipnirgroup-jormungandr 0.6.7.dev19__tar.gz → 0.6.7.dev21__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.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/PKG-INFO +1 -1
  2. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/optimization/solver/util/bounds.hpp +20 -14
  3. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/src/sleipnir/__init__.py +1 -1
  4. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/test/optimization/flywheel_ocp_test.py +1 -4
  5. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/test/optimization/flywheel_problem_test.py +1 -4
  6. sleipnirgroup_jormungandr-0.6.7.dev21/python/test/optimization/near.py +2 -0
  7. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/CMakeLists.txt +0 -0
  8. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/LICENSE.txt +0 -0
  9. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/README.md +0 -0
  10. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/SleipnirConfig.cmake.in +0 -0
  11. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/cmake/BuildTypes.cmake +0 -0
  12. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/cmake/CompilerFlags.cmake +0 -0
  13. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/cmake/Pybind11Mkdoc.cmake +0 -0
  14. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/cmake/SubdirList.cmake +0 -0
  15. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/cmake/arm-none-eabi.cmake +0 -0
  16. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/autodiff/expression.hpp +0 -0
  17. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/autodiff/expression_graph.hpp +0 -0
  18. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/autodiff/expression_type.hpp +0 -0
  19. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/autodiff/gradient.hpp +0 -0
  20. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/autodiff/hessian.hpp +0 -0
  21. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/autodiff/jacobian.hpp +0 -0
  22. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/autodiff/sleipnir_base.hpp +0 -0
  23. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/autodiff/slice.hpp +0 -0
  24. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/autodiff/variable.hpp +0 -0
  25. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/autodiff/variable_block.hpp +0 -0
  26. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/autodiff/variable_matrix.hpp +0 -0
  27. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/optimization/multistart.hpp +0 -0
  28. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/optimization/ocp/dynamics_type.hpp +0 -0
  29. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/optimization/ocp/timestep_method.hpp +0 -0
  30. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/optimization/ocp/transcription_method.hpp +0 -0
  31. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/optimization/ocp.hpp +0 -0
  32. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/optimization/problem.hpp +0 -0
  33. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/optimization/solver/exit_status.hpp +0 -0
  34. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/optimization/solver/ipm.hpp +0 -0
  35. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/optimization/solver/ipm_matrix_callbacks.hpp +0 -0
  36. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/optimization/solver/iteration_info.hpp +0 -0
  37. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/optimization/solver/newton.hpp +0 -0
  38. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/optimization/solver/newton_matrix_callbacks.hpp +0 -0
  39. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/optimization/solver/options.hpp +0 -0
  40. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/optimization/solver/sqp.hpp +0 -0
  41. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/optimization/solver/sqp_matrix_callbacks.hpp +0 -0
  42. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/optimization/solver/util/all_finite.hpp +0 -0
  43. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/optimization/solver/util/append_as_triplets.hpp +0 -0
  44. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/optimization/solver/util/dense_kkt_solver.hpp +0 -0
  45. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/optimization/solver/util/feasibility_restoration.hpp +0 -0
  46. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/optimization/solver/util/filter.hpp +0 -0
  47. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/optimization/solver/util/fraction_to_the_boundary_rule.hpp +0 -0
  48. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/optimization/solver/util/inertia.hpp +0 -0
  49. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/optimization/solver/util/kkt_error.hpp +0 -0
  50. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/optimization/solver/util/kkt_solver.hpp +0 -0
  51. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/optimization/solver/util/lagrange_multiplier_estimate.hpp +0 -0
  52. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/optimization/solver/util/problem_scaling.hpp +0 -0
  53. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/optimization/solver/util/sparse_inf_norms.hpp +0 -0
  54. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/optimization/solver/util/sparse_kkt_solver.hpp +0 -0
  55. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/util/assert.hpp +0 -0
  56. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/util/concepts.hpp +0 -0
  57. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/util/empty.hpp +0 -0
  58. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/util/function_ref.hpp +0 -0
  59. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/util/intrusive_shared_ptr.hpp +0 -0
  60. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/util/pool.hpp +0 -0
  61. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/util/print.hpp +0 -0
  62. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/util/print_diagnostics.hpp +0 -0
  63. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/util/profiler.hpp +0 -0
  64. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/util/scope_exit.hpp +0 -0
  65. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/util/spy.hpp +0 -0
  66. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/include/sleipnir/util/symbol_exports.hpp +0 -0
  67. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/pyproject.toml +0 -0
  68. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/cpp/autodiff/bind_expression_type.cpp +0 -0
  69. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/cpp/autodiff/bind_gradient.cpp +0 -0
  70. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/cpp/autodiff/bind_hessian.cpp +0 -0
  71. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/cpp/autodiff/bind_jacobian.cpp +0 -0
  72. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/cpp/autodiff/bind_variable.cpp +0 -0
  73. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/cpp/autodiff/bind_variable_block.cpp +0 -0
  74. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/cpp/autodiff/bind_variable_matrix.cpp +0 -0
  75. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/cpp/binders.hpp +0 -0
  76. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/cpp/docstrings.hpp +0 -0
  77. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/cpp/for_each_type.hpp +0 -0
  78. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/cpp/main.cpp +0 -0
  79. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/cpp/optimization/bind_equality_constraints.cpp +0 -0
  80. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/cpp/optimization/bind_inequality_constraints.cpp +0 -0
  81. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/cpp/optimization/bind_ocp.cpp +0 -0
  82. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/cpp/optimization/bind_problem.cpp +0 -0
  83. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/cpp/optimization/ocp/bind_dynamics_type.cpp +0 -0
  84. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/cpp/optimization/ocp/bind_timestep_method.cpp +0 -0
  85. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/cpp/optimization/ocp/bind_transcription_method.cpp +0 -0
  86. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/cpp/optimization/solver/bind_exit_status.cpp +0 -0
  87. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/cpp/optimization/solver/bind_iteration_info.cpp +0 -0
  88. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/cpp/try_cast.hpp +0 -0
  89. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/src/sleipnir/autodiff/__init__.py +0 -0
  90. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/src/sleipnir/optimization/__init__.py +0 -0
  91. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/test/autodiff/gradient_test.py +0 -0
  92. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/test/autodiff/hessian_test.py +0 -0
  93. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/test/autodiff/jacobian_test.py +0 -0
  94. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/test/autodiff/variable_matrix_test.py +0 -0
  95. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/test/autodiff/variable_test.py +0 -0
  96. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/test/optimization/arm_on_elevator_problem_test.py +0 -0
  97. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/test/optimization/cart_pole_ocp_test.py +0 -0
  98. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/test/optimization/cart_pole_problem_test.py +0 -0
  99. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/test/optimization/cart_pole_util.py +0 -0
  100. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/test/optimization/constraints_test.py +0 -0
  101. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/test/optimization/decision_variable_test.py +0 -0
  102. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/test/optimization/differential_drive_ocp_test.py +0 -0
  103. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/test/optimization/differential_drive_problem_test.py +0 -0
  104. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/test/optimization/differential_drive_util.py +0 -0
  105. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/test/optimization/double_integrator_problem_test.py +0 -0
  106. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/test/optimization/linear_problem_test.py +0 -0
  107. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/test/optimization/multistart_test.py +0 -0
  108. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/test/optimization/nonlinear_problem_test.py +0 -0
  109. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/test/optimization/problem_spy_test.py +0 -0
  110. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/test/optimization/quadratic_problem_test.py +0 -0
  111. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/test/optimization/rk4.py +0 -0
  112. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/test/optimization/solver/exit_status_test.py +0 -0
  113. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/python/test/optimization/trivial_problem_test.py +0 -0
  114. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/src/autodiff/gradient.cpp +0 -0
  115. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/src/autodiff/hessian.cpp +0 -0
  116. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/src/autodiff/jacobian.cpp +0 -0
  117. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/src/autodiff/variable_matrix.cpp +0 -0
  118. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/src/optimization/ocp.cpp +0 -0
  119. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/src/optimization/problem.cpp +0 -0
  120. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/src/optimization/solver/ipm.cpp +0 -0
  121. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/src/optimization/solver/newton.cpp +0 -0
  122. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/src/optimization/solver/sqp.cpp +0 -0
  123. {sleipnirgroup_jormungandr-0.6.7.dev19 → sleipnirgroup_jormungandr-0.6.7.dev21}/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.7.dev19
3
+ Version: 0.6.7.dev21
4
4
  Summary: Reverse mode autodiff library and NLP solver DSL
5
5
  License-Expression: BSD-3-Clause
6
6
  License-File: LICENSE.txt
@@ -105,9 +105,12 @@ Bounds<Scalar> get_bounds(
105
105
  const Eigen::SparseVector<Scalar>& row_A_i =
106
106
  A_i.innerVector(constraint_index);
107
107
  const auto non_zeros = row_A_i.nonZeros();
108
- slp_assert(non_zeros != 0);
109
- if (non_zeros > 1) {
110
- // Constraint is in more than one variable and therefore not a bound.
108
+ if (non_zeros != 1) {
109
+ // Constraint is not a bound because either:
110
+ //
111
+ // 1. It's in more than one variable
112
+ // 2. It's in no decision variables (e.g., it only depends on variables
113
+ // that aren't decision variables of this problem)
111
114
  continue;
112
115
  }
113
116
 
@@ -123,6 +126,14 @@ Bounds<Scalar> get_bounds(
123
126
  const auto constraint_coefficient =
124
127
  row_iter
125
128
  .value(); // The nonzero value of the j-th constraint's gradient.
129
+
130
+ // The Jacobian's sparsity pattern is structural, so the single stored value
131
+ // can be zero if the constraint's terms cancel (e.g., x − x + 1 ≥ 0). The
132
+ // constraint is then constant and not a bound.
133
+ if (constraint_coefficient == Scalar(0)) {
134
+ continue;
135
+ }
136
+
126
137
  const auto decision_variable_index = row_iter.index();
127
138
  const auto decision_variable_value =
128
139
  decision_variables[decision_variable_index].value();
@@ -137,19 +148,14 @@ Bounds<Scalar> get_bounds(
137
148
  constraint_constant = inequality_constraints[constraint_index].value();
138
149
  }
139
150
 
140
- // Shouldn't happen since the constraint is supposed to be linear and not a
141
- // constant.
142
- slp_assert(constraint_coefficient != Scalar(0));
143
-
144
151
  using std::isfinite;
145
152
 
146
- // We should always get a finite value when evaluating the constraint at
147
- // x = 0 since the constraint is linear.
148
- slp_assert(isfinite(constraint_constant));
149
-
150
- // This is possible if the user has provided a starting point at which their
151
- // problem is ill-defined.
152
- slp_assert(isfinite(constraint_coefficient));
153
+ // The constraint's constant or coefficient can be nonfinite if the user
154
+ // wrote a constraint like x ≥ −∞ or ∞x ≥ 1. Note that this constraint will
155
+ // cause the solver to report a nonfinite initial guess later.
156
+ if (!isfinite(constraint_constant) || !isfinite(constraint_coefficient)) {
157
+ continue;
158
+ }
153
159
 
154
160
  // Update bounds; we assume constraints of the form c(x) ≥ 0.
155
161
  auto& [lower_bound, upper_bound] =
@@ -2,4 +2,4 @@
2
2
 
3
3
  from ._sleipnir import *
4
4
 
5
- __version__ = "0.6.7.dev19"
5
+ __version__ = "0.6.7.dev21"
@@ -3,6 +3,7 @@ from collections.abc import Callable
3
3
 
4
4
  import numpy as np
5
5
  import pytest
6
+ from near import near
6
7
  from sleipnir.autodiff import ExpressionType, VariableMatrix
7
8
  from sleipnir.optimization import (
8
9
  OCP,
@@ -13,10 +14,6 @@ from sleipnir.optimization import (
13
14
  )
14
15
 
15
16
 
16
- def near(expected, actual, tolerance):
17
- return abs(expected - actual) < tolerance
18
-
19
-
20
17
  def flywheel_test(
21
18
  test_name: str,
22
19
  A: float,
@@ -2,14 +2,11 @@ import math
2
2
 
3
3
  import numpy as np
4
4
  import pytest
5
+ from near import near
5
6
  from sleipnir.autodiff import ExpressionType
6
7
  from sleipnir.optimization import ExitStatus, Problem, bounds
7
8
 
8
9
 
9
- def near(expected, actual, tolerance):
10
- return abs(expected - actual) < tolerance
11
-
12
-
13
10
  def test_flywheel_problem():
14
11
  TOTAL_TIME = 5.0
15
12
  dt = 0.005
@@ -0,0 +1,2 @@
1
+ def near(expected, actual, tolerance):
2
+ return abs(expected - actual) < tolerance