sleipnirgroup-jormungandr 0.1.1.dev111__tar.gz → 0.1.1.dev113__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 (111) hide show
  1. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/PKG-INFO +1 -1
  2. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/test/autodiff/hessian_test.py +1 -4
  3. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/test/optimization/arm_on_elevator_problem_test.py +7 -6
  4. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/test/optimization/cart_pole_ocp_test.py +1 -4
  5. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/test/optimization/cart_pole_problem_test.py +1 -4
  6. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/test/optimization/differential_drive_problem_test.py +6 -4
  7. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/test/optimization/double_integrator_problem_test.py +1 -4
  8. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/test/optimization/flywheel_problem_test.py +3 -4
  9. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/pyproject.toml +1 -1
  10. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/CMakeLists.txt +0 -0
  11. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/LICENSE.txt +0 -0
  12. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/README.md +0 -0
  13. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/SleipnirConfig.cmake.in +0 -0
  14. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/autodiff/adjoint_expression_graph.hpp +0 -0
  15. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/autodiff/expression.hpp +0 -0
  16. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/autodiff/expression_graph.hpp +0 -0
  17. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/autodiff/expression_type.hpp +0 -0
  18. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/autodiff/gradient.hpp +0 -0
  19. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/autodiff/hessian.hpp +0 -0
  20. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/autodiff/jacobian.hpp +0 -0
  21. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/autodiff/sleipnir_base.hpp +0 -0
  22. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/autodiff/slice.hpp +0 -0
  23. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/autodiff/variable.hpp +0 -0
  24. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/autodiff/variable_block.hpp +0 -0
  25. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/autodiff/variable_matrix.hpp +0 -0
  26. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/optimization/multistart.hpp +0 -0
  27. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/optimization/ocp/dynamics_type.hpp +0 -0
  28. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/optimization/ocp/timestep_method.hpp +0 -0
  29. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/optimization/ocp/transcription_method.hpp +0 -0
  30. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/optimization/ocp.hpp +0 -0
  31. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/optimization/problem.hpp +0 -0
  32. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/optimization/solver/exit_status.hpp +0 -0
  33. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/optimization/solver/interior_point.hpp +0 -0
  34. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/optimization/solver/interior_point_matrix_callbacks.hpp +0 -0
  35. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/optimization/solver/iteration_info.hpp +0 -0
  36. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/optimization/solver/newton.hpp +0 -0
  37. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/optimization/solver/newton_matrix_callbacks.hpp +0 -0
  38. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/optimization/solver/options.hpp +0 -0
  39. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/optimization/solver/sqp.hpp +0 -0
  40. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/optimization/solver/sqp_matrix_callbacks.hpp +0 -0
  41. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/optimization/solver/util/bounds.hpp +0 -0
  42. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/optimization/solver/util/error_estimate.hpp +0 -0
  43. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/optimization/solver/util/filter.hpp +0 -0
  44. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/optimization/solver/util/fraction_to_the_boundary_rule.hpp +0 -0
  45. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/optimization/solver/util/inertia.hpp +0 -0
  46. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/optimization/solver/util/is_locally_infeasible.hpp +0 -0
  47. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/optimization/solver/util/kkt_error.hpp +0 -0
  48. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/optimization/solver/util/regularized_ldlt.hpp +0 -0
  49. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/util/assert.hpp +0 -0
  50. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/util/concepts.hpp +0 -0
  51. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/util/empty.hpp +0 -0
  52. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/util/function_ref.hpp +0 -0
  53. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/util/intrusive_shared_ptr.hpp +0 -0
  54. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/util/pool.hpp +0 -0
  55. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/util/print.hpp +0 -0
  56. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/util/print_diagnostics.hpp +0 -0
  57. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/util/scope_exit.hpp +0 -0
  58. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/util/scoped_profiler.hpp +0 -0
  59. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/util/setup_profiler.hpp +0 -0
  60. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/util/solve_profiler.hpp +0 -0
  61. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/util/spy.hpp +0 -0
  62. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/include/sleipnir/util/symbol_exports.hpp +0 -0
  63. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/__init__.py +0 -0
  64. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/autodiff/__init__.py +0 -0
  65. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/cpp/autodiff/bind_expression_type.cpp +0 -0
  66. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/cpp/autodiff/bind_gradient.cpp +0 -0
  67. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/cpp/autodiff/bind_hessian.cpp +0 -0
  68. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/cpp/autodiff/bind_jacobian.cpp +0 -0
  69. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/cpp/autodiff/bind_variable.cpp +0 -0
  70. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/cpp/autodiff/bind_variable_block.cpp +0 -0
  71. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/cpp/autodiff/bind_variable_matrix.cpp +0 -0
  72. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/cpp/binders.hpp +0 -0
  73. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/cpp/docstrings.hpp +0 -0
  74. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/cpp/main.cpp +0 -0
  75. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/cpp/optimization/bind_equality_constraints.cpp +0 -0
  76. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/cpp/optimization/bind_inequality_constraints.cpp +0 -0
  77. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/cpp/optimization/bind_ocp.cpp +0 -0
  78. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/cpp/optimization/bind_problem.cpp +0 -0
  79. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/cpp/optimization/ocp/bind_dynamics_type.cpp +0 -0
  80. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/cpp/optimization/ocp/bind_timestep_method.cpp +0 -0
  81. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/cpp/optimization/ocp/bind_transcription_method.cpp +0 -0
  82. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/cpp/optimization/solver/bind_exit_status.cpp +0 -0
  83. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/cpp/optimization/solver/bind_iteration_info.cpp +0 -0
  84. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/cpp/try_cast.hpp +0 -0
  85. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/optimization/__init__.py +0 -0
  86. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/test/autodiff/gradient_test.py +0 -0
  87. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/test/autodiff/jacobian_test.py +0 -0
  88. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/test/autodiff/variable_matrix_test.py +0 -0
  89. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/test/autodiff/variable_test.py +0 -0
  90. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/test/cart_pole_util.py +0 -0
  91. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/test/differential_drive_util.py +0 -0
  92. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/test/optimization/constraints_test.py +0 -0
  93. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/test/optimization/decision_variable_test.py +0 -0
  94. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/test/optimization/differential_drive_ocp_test.py +0 -0
  95. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/test/optimization/exit_status_test.py +0 -0
  96. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/test/optimization/flywheel_ocp_test.py +0 -0
  97. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/test/optimization/linear_problem_test.py +0 -0
  98. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/test/optimization/multistart_test.py +0 -0
  99. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/test/optimization/nonlinear_problem_test.py +0 -0
  100. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/test/optimization/quadratic_problem_test.py +0 -0
  101. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/test/optimization/trivial_problem_test.py +0 -0
  102. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/jormungandr/test/rk4.py +0 -0
  103. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/src/autodiff/gradient.cpp +0 -0
  104. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/src/autodiff/jacobian.cpp +0 -0
  105. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/src/autodiff/variable_matrix.cpp +0 -0
  106. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/src/optimization/ocp.cpp +0 -0
  107. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/src/optimization/problem.cpp +0 -0
  108. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/src/optimization/solver/interior_point.cpp +0 -0
  109. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/src/optimization/solver/newton.cpp +0 -0
  110. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/src/optimization/solver/sqp.cpp +0 -0
  111. {sleipnirgroup_jormungandr-0.1.1.dev111 → sleipnirgroup_jormungandr-0.1.1.dev113}/src/util/pool.cpp +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sleipnirgroup-jormungandr
3
- Version: 0.1.1.dev111
3
+ Version: 0.1.1.dev113
4
4
  Summary: A linearity-exploiting sparse nonlinear constrained optimization problem solver that uses the interior-point method.
5
5
  License: Copyright (c) Sleipnir contributors
6
6
 
@@ -187,10 +187,7 @@ def test_sum_of_squares():
187
187
  for i in range(4):
188
188
  x[i].set_value(0.0)
189
189
 
190
- J = 0.0
191
- for i in range(4):
192
- J += (r[i] - x[i]) * (r[i] - x[i])
193
-
190
+ J = sum((r[i] - x[i]) * (r[i] - x[i]) for i in range(4))
194
191
  H = Hessian(J, x)
195
192
 
196
193
  expected_H = np.diag([2.0] * 4)
@@ -84,12 +84,13 @@ def test_arm_on_elevator_problem():
84
84
  problem.subject_to(heights <= END_EFFECTOR_MAX_HEIGHT)
85
85
 
86
86
  # Cost function
87
- J = 0.0
88
- for k in range(N + 1):
89
- J += (ELEVATOR_END_HEIGHT - elevator[0, k]) ** 2 + (
90
- ARM_END_ANGLE - arm[0, k]
91
- ) ** 2
92
- problem.minimize(J)
87
+ problem.minimize(
88
+ sum(
89
+ (ELEVATOR_END_HEIGHT - elevator[0, k]) ** 2
90
+ + (ARM_END_ANGLE - arm[0, k]) ** 2
91
+ for k in range(N + 1)
92
+ )
93
+ )
93
94
 
94
95
  assert problem.cost_function_type() == ExpressionType.QUADRATIC
95
96
  assert problem.equality_constraint_type() == ExpressionType.LINEAR
@@ -73,10 +73,7 @@ def test_cart_pole_ocp():
73
73
  U = problem.U()
74
74
 
75
75
  # Minimize sum squared inputs
76
- J = 0.0
77
- for k in range(N):
78
- J += U[:, k : k + 1].T @ U[:, k : k + 1]
79
- problem.minimize(J)
76
+ problem.minimize(sum(U[:, k : k + 1].T @ U[:, k : k + 1] for k in range(N)))
80
77
 
81
78
  assert problem.cost_function_type() == ExpressionType.QUADRATIC
82
79
  assert problem.equality_constraint_type() == ExpressionType.NONLINEAR
@@ -62,10 +62,7 @@ def test_cart_pole_problem():
62
62
  )
63
63
 
64
64
  # Minimize sum squared inputs
65
- J = 0.0
66
- for k in range(N):
67
- J += U[:, k : k + 1].T @ U[:, k : k + 1]
68
- problem.minimize(J)
65
+ problem.minimize(sum(U[:, k : k + 1].T @ U[:, k : k + 1] for k in range(N)))
69
66
 
70
67
  assert problem.cost_function_type() == ExpressionType.QUADRATIC
71
68
  assert problem.equality_constraint_type() == ExpressionType.NONLINEAR
@@ -60,10 +60,12 @@ def test_differential_drive_problem():
60
60
  )
61
61
 
62
62
  # Minimize sum squared states and inputs
63
- J = 0.0
64
- for k in range(N):
65
- J += X[:, k : k + 1].T @ X[:, k : k + 1] + U[:, k : k + 1].T @ U[:, k : k + 1]
66
- problem.minimize(J)
63
+ problem.minimize(
64
+ sum(
65
+ X[:, k : k + 1].T @ X[:, k : k + 1] + U[:, k : k + 1].T @ U[:, k : k + 1]
66
+ for k in range(N)
67
+ )
68
+ )
67
69
 
68
70
  assert problem.cost_function_type() == ExpressionType.QUADRATIC
69
71
  assert problem.equality_constraint_type() == ExpressionType.NONLINEAR
@@ -48,10 +48,7 @@ def test_double_integrator_problem():
48
48
  problem.subject_to(U <= 1)
49
49
 
50
50
  # Cost function - minimize position error
51
- J = 0.0
52
- for k in range(N + 1):
53
- J += (r - X[0, k]) ** 2
54
- problem.minimize(J)
51
+ problem.minimize(sum((r - X[0, k]) ** 2 for k in range(N + 1)))
55
52
 
56
53
  assert problem.cost_function_type() == ExpressionType.QUADRATIC
57
54
  assert problem.equality_constraint_type() == ExpressionType.LINEAR
@@ -39,10 +39,9 @@ def test_flywheel_problem():
39
39
 
40
40
  # Cost function - minimize error
41
41
  r = np.array([[10.0]])
42
- J = 0.0
43
- for k in range(N + 1):
44
- J += (r - X[:, k : k + 1]).T @ (r - X[:, k : k + 1])
45
- problem.minimize(J)
42
+ problem.minimize(
43
+ sum((r - X[:, k : k + 1]).T @ (r - X[:, k : k + 1]) for k in range(N + 1))
44
+ )
46
45
 
47
46
  assert problem.cost_function_type() == ExpressionType.QUADRATIC
48
47
  assert problem.equality_constraint_type() == ExpressionType.LINEAR
@@ -1,7 +1,7 @@
1
1
  [project]
2
2
  name = "sleipnirgroup-jormungandr"
3
3
  description = "A linearity-exploiting sparse nonlinear constrained optimization problem solver that uses the interior-point method."
4
- version = "0.1.1.dev111"
4
+ version = "0.1.1.dev113"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
7
7
  dependencies = [ "matplotlib", "numpy", "scipy" ]