sleipnirgroup-jormungandr 0.0.1.dev462__tar.gz → 0.0.1.dev464__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.
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/PKG-INFO +1 -1
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/sleipnir/optimization/problem.hpp +2 -2
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/sleipnir/optimization/solver/interior_point.hpp +2 -1
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/sleipnir/optimization/solver/newton.hpp +2 -1
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/sleipnir/optimization/solver/sqp.hpp +2 -1
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/cpp/docstrings.hpp +7 -5
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/pyproject.toml +1 -1
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/src/optimization/problem.cpp +15 -44
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/CMakeLists.txt +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/LICENSE.txt +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/README.md +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/SleipnirConfig.cmake.in +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/cmake/modules/BuildTypes.cmake +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/cmake/modules/CompilerFlags.cmake +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/cmake/modules/Pybind11Mkdoc.cmake +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/cmake/modules/SubdirList.cmake +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/.styleguide +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/sleipnir/autodiff/adjoint_expression_graph.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/sleipnir/autodiff/expression.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/sleipnir/autodiff/expression_graph.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/sleipnir/autodiff/expression_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/sleipnir/autodiff/gradient.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/sleipnir/autodiff/hessian.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/sleipnir/autodiff/jacobian.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/sleipnir/autodiff/slice.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/sleipnir/autodiff/variable.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/sleipnir/autodiff/variable_block.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/sleipnir/autodiff/variable_matrix.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/sleipnir/control/ocp.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/sleipnir/optimization/multistart.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/sleipnir/optimization/solver/exit_status.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/sleipnir/optimization/solver/iteration_info.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/sleipnir/optimization/solver/options.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/sleipnir/util/assert.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/sleipnir/util/concepts.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/sleipnir/util/function_ref.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/sleipnir/util/intrusive_shared_ptr.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/sleipnir/util/pool.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/sleipnir/util/print.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/sleipnir/util/small_vector.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/sleipnir/util/spy.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/include/sleipnir/util/symbol_exports.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/__init__.py +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/autodiff/__init__.py +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/control/__init__.py +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/cpp/autodiff/bind_expression_type.cpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/cpp/autodiff/bind_gradient.cpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/cpp/autodiff/bind_hessian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/cpp/autodiff/bind_jacobian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/cpp/autodiff/bind_variable.cpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/cpp/autodiff/bind_variable_block.cpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/cpp/autodiff/bind_variable_matrix.cpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/cpp/binders.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/cpp/control/bind_ocp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/cpp/main.cpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/cpp/optimization/bind_equality_constraints.cpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/cpp/optimization/bind_inequality_constraints.cpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/cpp/optimization/bind_problem.cpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/cpp/optimization/solver/bind_exit_status.cpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/cpp/optimization/solver/bind_iteration_info.cpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/cpp/try_cast.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/optimization/__init__.py +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/test/autodiff/gradient_test.py +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/test/autodiff/hessian_test.py +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/test/autodiff/jacobian_test.py +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/test/autodiff/variable_matrix_test.py +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/test/autodiff/variable_test.py +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/test/cart_pole_util.py +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/test/control/cart_pole_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/test/control/differential_drive_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/test/control/flywheel_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/test/differential_drive_util.py +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/test/optimization/arm_on_elevator_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/test/optimization/cart_pole_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/test/optimization/constraints_test.py +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/test/optimization/decision_variable_test.py +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/test/optimization/differential_drive_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/test/optimization/double_integrator_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/test/optimization/exit_status_test.py +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/test/optimization/flywheel_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/test/optimization/linear_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/test/optimization/multistart_test.py +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/test/optimization/nonlinear_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/test/optimization/quadratic_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/test/optimization/trivial_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/jormungandr/test/rk4.py +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/src/.styleguide +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/src/autodiff/variable_matrix.cpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/src/optimization/inertia.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/src/optimization/regularized_ldlt.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/src/optimization/solver/interior_point.cpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/src/optimization/solver/newton.cpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/src/optimization/solver/sqp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/src/optimization/solver/util/error_estimate.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/src/optimization/solver/util/filter.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/src/optimization/solver/util/fraction_to_the_boundary_rule.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/src/optimization/solver/util/is_locally_infeasible.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/src/optimization/solver/util/kkt_error.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/src/util/pool.cpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/src/util/print_diagnostics.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/src/util/scope_exit.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/src/util/scoped_profiler.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/src/util/setup_profiler.hpp +0 -0
- {sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/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.
|
3
|
+
Version: 0.0.1.dev464
|
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
|
|
@@ -278,7 +278,7 @@ class SLEIPNIR_DLLEXPORT Problem {
|
|
278
278
|
[[maybe_unused]] bool spy = false);
|
279
279
|
|
280
280
|
/**
|
281
|
-
* Adds a callback to be called at each solver iteration.
|
281
|
+
* Adds a callback to be called at the beginning of each solver iteration.
|
282
282
|
*
|
283
283
|
* The callback for this overload should return void.
|
284
284
|
*
|
@@ -297,7 +297,7 @@ class SLEIPNIR_DLLEXPORT Problem {
|
|
297
297
|
}
|
298
298
|
|
299
299
|
/**
|
300
|
-
* Adds a callback to be called at each solver iteration.
|
300
|
+
* Adds a callback to be called at the beginning of each solver iteration.
|
301
301
|
*
|
302
302
|
* The callback for this overload should return bool.
|
303
303
|
*
|
@@ -212,7 +212,8 @@ where f(x) is the cost function, cₑ(x) are the equality constraints, and cᵢ(
|
|
212
212
|
are the inequality constraints.
|
213
213
|
|
214
214
|
@param[in] matrix_callbacks Matrix callbacks.
|
215
|
-
@param[in] iteration_callbacks The list of
|
215
|
+
@param[in] iteration_callbacks The list of callbacks to call at the beginning of
|
216
|
+
each iteration.
|
216
217
|
@param[in] options Solver options.
|
217
218
|
@param[in,out] x The initial guess and output location for the decision
|
218
219
|
variables.
|
@@ -97,7 +97,8 @@ A nonlinear program has the form:
|
|
97
97
|
where f(x) is the cost function.
|
98
98
|
|
99
99
|
@param[in] matrix_callbacks Matrix callbacks.
|
100
|
-
@param[in] iteration_callbacks The list of
|
100
|
+
@param[in] iteration_callbacks The list of callbacks to call at the beginning of
|
101
|
+
each iteration.
|
101
102
|
@param[in] options Solver options.
|
102
103
|
@param[in,out] x The initial guess and output location for the decision
|
103
104
|
variables.
|
@@ -155,7 +155,8 @@ subject to cₑ(x) = 0
|
|
155
155
|
where f(x) is the cost function and cₑ(x) are the equality constraints.
|
156
156
|
|
157
157
|
@param[in] matrix_callbacks Matrix callbacks.
|
158
|
-
@param[in] iteration_callbacks The list of
|
158
|
+
@param[in] iteration_callbacks The list of callbacks to call at the beginning of
|
159
|
+
each iteration.
|
159
160
|
@param[in] options Solver options.
|
160
161
|
@param[in,out] x The initial guess and output location for the decision
|
161
162
|
variables.
|
@@ -693,7 +693,8 @@ mathematical form and it'll be converted for them.)doc";
|
|
693
693
|
static const char *__doc_slp_Problem_Problem = R"doc(Construct the optimization problem.)doc";
|
694
694
|
|
695
695
|
static const char *__doc_slp_Problem_add_callback =
|
696
|
-
R"doc(Adds a callback to be called at each solver
|
696
|
+
R"doc(Adds a callback to be called at the beginning of each solver
|
697
|
+
iteration.
|
697
698
|
|
698
699
|
The callback for this overload should return void.
|
699
700
|
|
@@ -701,7 +702,8 @@ Parameter ``callback``:
|
|
701
702
|
The callback.)doc";
|
702
703
|
|
703
704
|
static const char *__doc_slp_Problem_add_callback_2 =
|
704
|
-
R"doc(Adds a callback to be called at each solver
|
705
|
+
R"doc(Adds a callback to be called at the beginning of each solver
|
706
|
+
iteration.
|
705
707
|
|
706
708
|
The callback for this overload should return bool.
|
707
709
|
|
@@ -3098,7 +3100,7 @@ Parameter ``matrix_callbacks``:
|
|
3098
3100
|
Matrix callbacks.
|
3099
3101
|
|
3100
3102
|
Parameter ``iteration_callbacks``:
|
3101
|
-
The list of iteration
|
3103
|
+
The list of callbacks to call at the beginning of each iteration.
|
3102
3104
|
|
3103
3105
|
Parameter ``options``:
|
3104
3106
|
Solver options.
|
@@ -3149,7 +3151,7 @@ Parameter ``matrix_callbacks``:
|
|
3149
3151
|
Matrix callbacks.
|
3150
3152
|
|
3151
3153
|
Parameter ``iteration_callbacks``:
|
3152
|
-
The list of iteration
|
3154
|
+
The list of callbacks to call at the beginning of each iteration.
|
3153
3155
|
|
3154
3156
|
Parameter ``options``:
|
3155
3157
|
Solver options.
|
@@ -3285,7 +3287,7 @@ Parameter ``matrix_callbacks``:
|
|
3285
3287
|
Matrix callbacks.
|
3286
3288
|
|
3287
3289
|
Parameter ``iteration_callbacks``:
|
3288
|
-
The list of iteration
|
3290
|
+
The list of callbacks to call at the beginning of each iteration.
|
3289
3291
|
|
3290
3292
|
Parameter ``options``:
|
3291
3293
|
Solver options.
|
{sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/pyproject.toml
RENAMED
@@ -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.
|
4
|
+
version = "0.0.1.dev464"
|
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
|
-
|
130
|
+
slp::println("\nInvoking SQP solver\n");
|
137
131
|
}
|
138
|
-
|
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
|
-
|
200
|
+
slp::println("\nInvoking IPM solver...\n");
|
217
201
|
}
|
218
|
-
|
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
|
-
|
313
|
-
|
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
|
{sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/CMakeLists.txt
RENAMED
File without changes
|
{sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/LICENSE.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/src/.styleguide
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sleipnirgroup_jormungandr-0.0.1.dev462 → sleipnirgroup_jormungandr-0.0.1.dev464}/src/util/pool.cpp
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|