sleipnirgroup-jormungandr 0.0.1.dev463__tar.gz → 0.0.1.dev465__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 (104) hide show
  1. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/PKG-INFO +1 -1
  2. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/pyproject.toml +1 -1
  3. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/src/optimization/problem.cpp +15 -44
  4. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/src/optimization/regularized_ldlt.hpp +0 -2
  5. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/CMakeLists.txt +0 -0
  6. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/LICENSE.txt +0 -0
  7. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/README.md +0 -0
  8. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/SleipnirConfig.cmake.in +0 -0
  9. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/cmake/modules/BuildTypes.cmake +0 -0
  10. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/cmake/modules/CompilerFlags.cmake +0 -0
  11. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/cmake/modules/Pybind11Mkdoc.cmake +0 -0
  12. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/cmake/modules/SubdirList.cmake +0 -0
  13. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/.styleguide +0 -0
  14. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/sleipnir/autodiff/adjoint_expression_graph.hpp +0 -0
  15. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/sleipnir/autodiff/expression.hpp +0 -0
  16. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/sleipnir/autodiff/expression_graph.hpp +0 -0
  17. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/sleipnir/autodiff/expression_type.hpp +0 -0
  18. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/sleipnir/autodiff/gradient.hpp +0 -0
  19. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/sleipnir/autodiff/hessian.hpp +0 -0
  20. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/sleipnir/autodiff/jacobian.hpp +0 -0
  21. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/sleipnir/autodiff/slice.hpp +0 -0
  22. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/sleipnir/autodiff/variable.hpp +0 -0
  23. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/sleipnir/autodiff/variable_block.hpp +0 -0
  24. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/sleipnir/autodiff/variable_matrix.hpp +0 -0
  25. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/sleipnir/control/ocp.hpp +0 -0
  26. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/sleipnir/optimization/multistart.hpp +0 -0
  27. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/sleipnir/optimization/problem.hpp +0 -0
  28. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/sleipnir/optimization/solver/exit_status.hpp +0 -0
  29. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/sleipnir/optimization/solver/interior_point.hpp +0 -0
  30. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/sleipnir/optimization/solver/iteration_info.hpp +0 -0
  31. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/sleipnir/optimization/solver/newton.hpp +0 -0
  32. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/sleipnir/optimization/solver/options.hpp +0 -0
  33. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/sleipnir/optimization/solver/sqp.hpp +0 -0
  34. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/sleipnir/util/assert.hpp +0 -0
  35. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/sleipnir/util/concepts.hpp +0 -0
  36. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/sleipnir/util/function_ref.hpp +0 -0
  37. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/sleipnir/util/intrusive_shared_ptr.hpp +0 -0
  38. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/sleipnir/util/pool.hpp +0 -0
  39. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/sleipnir/util/print.hpp +0 -0
  40. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/sleipnir/util/small_vector.hpp +0 -0
  41. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/sleipnir/util/spy.hpp +0 -0
  42. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/include/sleipnir/util/symbol_exports.hpp +0 -0
  43. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/__init__.py +0 -0
  44. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/autodiff/__init__.py +0 -0
  45. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/control/__init__.py +0 -0
  46. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/cpp/autodiff/bind_expression_type.cpp +0 -0
  47. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/cpp/autodiff/bind_gradient.cpp +0 -0
  48. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/cpp/autodiff/bind_hessian.cpp +0 -0
  49. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/cpp/autodiff/bind_jacobian.cpp +0 -0
  50. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/cpp/autodiff/bind_variable.cpp +0 -0
  51. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/cpp/autodiff/bind_variable_block.cpp +0 -0
  52. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/cpp/autodiff/bind_variable_matrix.cpp +0 -0
  53. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/cpp/binders.hpp +0 -0
  54. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/cpp/control/bind_ocp.cpp +0 -0
  55. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/cpp/docstrings.hpp +0 -0
  56. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/cpp/main.cpp +0 -0
  57. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/cpp/optimization/bind_equality_constraints.cpp +0 -0
  58. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/cpp/optimization/bind_inequality_constraints.cpp +0 -0
  59. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/cpp/optimization/bind_problem.cpp +0 -0
  60. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/cpp/optimization/solver/bind_exit_status.cpp +0 -0
  61. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/cpp/optimization/solver/bind_iteration_info.cpp +0 -0
  62. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/cpp/try_cast.hpp +0 -0
  63. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/optimization/__init__.py +0 -0
  64. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/test/autodiff/gradient_test.py +0 -0
  65. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/test/autodiff/hessian_test.py +0 -0
  66. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/test/autodiff/jacobian_test.py +0 -0
  67. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/test/autodiff/variable_matrix_test.py +0 -0
  68. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/test/autodiff/variable_test.py +0 -0
  69. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/test/cart_pole_util.py +0 -0
  70. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/test/control/cart_pole_ocp_test.py +0 -0
  71. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/test/control/differential_drive_ocp_test.py +0 -0
  72. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/test/control/flywheel_ocp_test.py +0 -0
  73. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/test/differential_drive_util.py +0 -0
  74. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/test/optimization/arm_on_elevator_problem_test.py +0 -0
  75. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/test/optimization/cart_pole_problem_test.py +0 -0
  76. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/test/optimization/constraints_test.py +0 -0
  77. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/test/optimization/decision_variable_test.py +0 -0
  78. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/test/optimization/differential_drive_problem_test.py +0 -0
  79. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/test/optimization/double_integrator_problem_test.py +0 -0
  80. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/test/optimization/exit_status_test.py +0 -0
  81. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/test/optimization/flywheel_problem_test.py +0 -0
  82. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/test/optimization/linear_problem_test.py +0 -0
  83. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/test/optimization/multistart_test.py +0 -0
  84. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/test/optimization/nonlinear_problem_test.py +0 -0
  85. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/test/optimization/quadratic_problem_test.py +0 -0
  86. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/test/optimization/trivial_problem_test.py +0 -0
  87. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/jormungandr/test/rk4.py +0 -0
  88. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/src/.styleguide +0 -0
  89. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/src/autodiff/variable_matrix.cpp +0 -0
  90. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/src/optimization/inertia.hpp +0 -0
  91. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/src/optimization/solver/interior_point.cpp +0 -0
  92. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/src/optimization/solver/newton.cpp +0 -0
  93. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/src/optimization/solver/sqp.cpp +0 -0
  94. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/src/optimization/solver/util/error_estimate.hpp +0 -0
  95. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/src/optimization/solver/util/filter.hpp +0 -0
  96. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/src/optimization/solver/util/fraction_to_the_boundary_rule.hpp +0 -0
  97. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/src/optimization/solver/util/is_locally_infeasible.hpp +0 -0
  98. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/src/optimization/solver/util/kkt_error.hpp +0 -0
  99. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/src/util/pool.cpp +0 -0
  100. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/src/util/print_diagnostics.hpp +0 -0
  101. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/src/util/scope_exit.hpp +0 -0
  102. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/src/util/scoped_profiler.hpp +0 -0
  103. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/src/util/setup_profiler.hpp +0 -0
  104. {sleipnirgroup_jormungandr-0.0.1.dev463 → sleipnirgroup_jormungandr-0.0.1.dev465}/src/util/solve_profiler.hpp +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sleipnirgroup-jormungandr
3
- Version: 0.0.1.dev463
3
+ Version: 0.0.1.dev465
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
 
@@ -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.0.1.dev463"
4
+ version = "0.0.1.dev465"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.9"
7
7
  dependencies = [ "matplotlib", "numpy", "scipy" ]
@@ -83,6 +83,10 @@ ExitStatus Problem::solve(const Options& options, [[maybe_unused]] bool spy) {
83
83
  // Solve the optimization problem
84
84
  ExitStatus status;
85
85
  if (m_equality_constraints.empty() && m_inequality_constraints.empty()) {
86
+ if (options.diagnostics) {
87
+ slp::println("\nInvoking Newton solver...\n");
88
+ }
89
+
86
90
  // Set up Lagrangian Hessian autodiff
87
91
  ad_setup_profilers.emplace_back(" ↳ ∇²ₓₓL").start();
88
92
  Hessian<Eigen::Lower> H{f, x_ad};
@@ -103,10 +107,6 @@ ExitStatus Problem::solve(const Options& options, [[maybe_unused]] bool spy) {
103
107
  return false;
104
108
  });
105
109
  }
106
-
107
- if (options.diagnostics) {
108
- slp::println("\nInvoking Newton solver...\n");
109
- }
110
110
  #endif
111
111
 
112
112
  // Invoke Newton solver
@@ -125,17 +125,11 @@ ExitStatus Problem::solve(const Options& options, [[maybe_unused]] bool spy) {
125
125
  return H.value();
126
126
  }},
127
127
  m_iteration_callbacks, options, x);
128
-
129
- #ifndef SLEIPNIR_DISABLE_DIAGNOSTICS
130
- if (spy) {
131
- m_iteration_callbacks.pop_back();
132
- }
133
- #endif
134
-
128
+ } else if (m_inequality_constraints.empty()) {
135
129
  if (options.diagnostics) {
136
- print_autodiff_diagnostics(ad_setup_profilers);
130
+ slp::println("\nInvoking SQP solver\n");
137
131
  }
138
- } else if (m_inequality_constraints.empty()) {
132
+
139
133
  VariableMatrix c_e_ad{m_equality_constraints};
140
134
 
141
135
  // Set up equality constraint Jacobian autodiff
@@ -173,10 +167,6 @@ ExitStatus Problem::solve(const Options& options, [[maybe_unused]] bool spy) {
173
167
  return false;
174
168
  });
175
169
  }
176
-
177
- if (options.diagnostics) {
178
- slp::println("\nInvoking SQP solver\n");
179
- }
180
170
  #endif
181
171
 
182
172
  // Invoke SQP solver
@@ -205,17 +195,11 @@ ExitStatus Problem::solve(const Options& options, [[maybe_unused]] bool spy) {
205
195
  return A_e.value();
206
196
  }},
207
197
  m_iteration_callbacks, options, x);
208
-
209
- #ifndef SLEIPNIR_DISABLE_DIAGNOSTICS
210
- if (spy) {
211
- m_iteration_callbacks.pop_back();
212
- }
213
- #endif
214
-
198
+ } else {
215
199
  if (options.diagnostics) {
216
- print_autodiff_diagnostics(ad_setup_profilers);
200
+ slp::println("\nInvoking IPM solver...\n");
217
201
  }
218
- } else {
202
+
219
203
  VariableMatrix c_e_ad{m_equality_constraints};
220
204
  VariableMatrix c_i_ad{m_inequality_constraints};
221
205
 
@@ -266,10 +250,6 @@ ExitStatus Problem::solve(const Options& options, [[maybe_unused]] bool spy) {
266
250
  return false;
267
251
  });
268
252
  }
269
-
270
- if (options.diagnostics) {
271
- slp::println("\nInvoking IPM solver...\n");
272
- }
273
253
  #endif
274
254
 
275
255
  // Invoke interior-point method solver
@@ -307,23 +287,18 @@ ExitStatus Problem::solve(const Options& options, [[maybe_unused]] bool spy) {
307
287
  return A_i.value();
308
288
  }},
309
289
  m_iteration_callbacks, options, x);
290
+ }
310
291
 
311
292
  #ifndef SLEIPNIR_DISABLE_DIAGNOSTICS
312
- if (spy) {
313
- m_iteration_callbacks.pop_back();
314
- }
315
- #endif
316
-
317
- if (options.diagnostics) {
318
- print_autodiff_diagnostics(ad_setup_profilers);
319
- }
293
+ if (spy) {
294
+ m_iteration_callbacks.pop_back();
320
295
  }
296
+ #endif
321
297
 
322
- #ifndef SLEIPNIR_DISABLE_DIAGNOSTICS
323
298
  if (options.diagnostics) {
299
+ print_autodiff_diagnostics(ad_setup_profilers);
324
300
  slp::println("\nExit: {}", to_message(status));
325
301
  }
326
- #endif
327
302
 
328
303
  // Assign the solution to the original Variable instances
329
304
  VariableMatrix{m_decision_variables}.set_value(x);
@@ -332,7 +307,6 @@ ExitStatus Problem::solve(const Options& options, [[maybe_unused]] bool spy) {
332
307
  }
333
308
 
334
309
  void Problem::print_exit_conditions([[maybe_unused]] const Options& options) {
335
- #ifndef SLEIPNIR_DISABLE_DIAGNOSTICS
336
310
  // Print possible exit conditions
337
311
  slp::println("User-configured exit conditions:");
338
312
  slp::println(" ↳ error below {}", options.tolerance);
@@ -345,11 +319,9 @@ void Problem::print_exit_conditions([[maybe_unused]] const Options& options) {
345
319
  if (std::isfinite(options.timeout.count())) {
346
320
  slp::println(" ↳ {} elapsed", options.timeout);
347
321
  }
348
- #endif
349
322
  }
350
323
 
351
324
  void Problem::print_problem_analysis() {
352
- #ifndef SLEIPNIR_DISABLE_DIAGNOSTICS
353
325
  constexpr std::array types{"no", "constant", "linear", "quadratic",
354
326
  "nonlinear"};
355
327
 
@@ -395,7 +367,6 @@ void Problem::print_problem_analysis() {
395
367
  slp::println("{} inequality constraints", m_inequality_constraints.size());
396
368
  }
397
369
  print_constraint_types(m_inequality_constraints);
398
- #endif
399
370
  }
400
371
 
401
372
  } // namespace slp
@@ -2,8 +2,6 @@
2
2
 
3
3
  #pragma once
4
4
 
5
- #include <cmath>
6
-
7
5
  #include <Eigen/Cholesky>
8
6
  #include <Eigen/Core>
9
7
  #include <Eigen/SparseCholesky>