sleipnirgroup-jormungandr 0.6.7.dev23__tar.gz → 0.6.7.dev24__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.
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/PKG-INFO +1 -1
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/optimization/solver/util/bounds.hpp +28 -24
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/src/sleipnir/__init__.py +1 -1
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/CMakeLists.txt +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/LICENSE.txt +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/README.md +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/SleipnirConfig.cmake.in +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/cmake/BuildTypes.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/cmake/CompilerFlags.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/cmake/Pybind11Mkdoc.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/cmake/SubdirList.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/cmake/arm-none-eabi.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/autodiff/expression.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/autodiff/expression_graph.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/autodiff/expression_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/autodiff/gradient.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/autodiff/hessian.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/autodiff/jacobian.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/autodiff/sleipnir_base.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/autodiff/slice.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/autodiff/variable.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/autodiff/variable_block.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/autodiff/variable_matrix.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/optimization/multistart.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/optimization/ocp/dynamics_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/optimization/ocp/timestep_method.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/optimization/ocp/transcription_method.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/optimization/ocp.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/optimization/problem.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/optimization/solver/exit_status.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/optimization/solver/ipm.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/optimization/solver/ipm_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/optimization/solver/iteration_info.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/optimization/solver/newton.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/optimization/solver/newton_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/optimization/solver/options.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/optimization/solver/sqp.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/optimization/solver/sqp_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/optimization/solver/util/all_finite.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/optimization/solver/util/append_as_triplets.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/optimization/solver/util/dense_kkt_solver.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/optimization/solver/util/feasibility_restoration.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/optimization/solver/util/filter.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/optimization/solver/util/fraction_to_the_boundary_rule.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/optimization/solver/util/inertia.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/optimization/solver/util/kkt_error.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/optimization/solver/util/kkt_solver.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/optimization/solver/util/lagrange_multiplier_estimate.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/optimization/solver/util/problem_scaling.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/optimization/solver/util/sparse_inf_norms.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/optimization/solver/util/sparse_kkt_solver.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/util/assert.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/util/concepts.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/util/empty.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/util/function_ref.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/util/intrusive_shared_ptr.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/util/pool.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/util/print.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/util/print_diagnostics.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/util/profiler.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/util/scope_exit.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/util/spy.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/include/sleipnir/util/symbol_exports.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/pyproject.toml +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/cpp/autodiff/bind_expression_type.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/cpp/autodiff/bind_gradient.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/cpp/autodiff/bind_hessian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/cpp/autodiff/bind_jacobian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/cpp/autodiff/bind_variable.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/cpp/autodiff/bind_variable_block.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/cpp/autodiff/bind_variable_matrix.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/cpp/binders.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/cpp/docstrings.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/cpp/for_each_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/cpp/main.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/cpp/optimization/bind_equality_constraints.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/cpp/optimization/bind_inequality_constraints.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/cpp/optimization/bind_ocp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/cpp/optimization/bind_problem.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/cpp/optimization/ocp/bind_dynamics_type.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/cpp/optimization/ocp/bind_timestep_method.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/cpp/optimization/ocp/bind_transcription_method.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/cpp/optimization/solver/bind_exit_status.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/cpp/optimization/solver/bind_iteration_info.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/cpp/try_cast.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/src/sleipnir/autodiff/__init__.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/src/sleipnir/optimization/__init__.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/test/autodiff/gradient_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/test/autodiff/hessian_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/test/autodiff/jacobian_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/test/autodiff/variable_matrix_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/test/autodiff/variable_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/test/optimization/arm_on_elevator_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/test/optimization/cart_pole_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/test/optimization/cart_pole_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/test/optimization/cart_pole_util.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/test/optimization/constraints_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/test/optimization/decision_variable_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/test/optimization/differential_drive_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/test/optimization/differential_drive_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/test/optimization/differential_drive_util.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/test/optimization/double_integrator_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/test/optimization/flywheel_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/test/optimization/flywheel_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/test/optimization/linear_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/test/optimization/multistart_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/test/optimization/near.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/test/optimization/nonlinear_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/test/optimization/problem_spy_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/test/optimization/quadratic_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/test/optimization/rk4.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/test/optimization/solver/exit_status_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/test/optimization/trivial_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/src/autodiff/gradient.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/src/autodiff/hessian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/src/autodiff/jacobian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/src/autodiff/variable_matrix.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/src/optimization/ocp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/src/optimization/problem.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/src/optimization/solver/ipm.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/src/optimization/solver/newton.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/src/optimization/solver/sqp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/src/util/pool.cpp +0 -0
|
@@ -48,27 +48,35 @@ struct Bounds {
|
|
|
48
48
|
/// @param inequality_constraints Variables representing the left-hand side of
|
|
49
49
|
/// cᵢ(decision_variables) ≥ 0.
|
|
50
50
|
/// @param A_i The Jacobian of inequality_constraints wrt decision_variables,
|
|
51
|
-
/// evaluated anywhere
|
|
52
|
-
/// typically store Jacobians column-major, the user of this function must
|
|
53
|
-
/// perform a transpose.
|
|
51
|
+
/// evaluated anywhere.
|
|
54
52
|
template <typename Scalar>
|
|
55
|
-
Bounds<Scalar> get_bounds(
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
const Eigen::SparseMatrix<Scalar, Eigen::RowMajor>& A_i) {
|
|
59
|
-
// TODO: A blocked, out-of-place transpose should be much faster than
|
|
60
|
-
// traversing row major on a column major matrix unless we have few linear
|
|
61
|
-
// constraints (using a heuristic to choose between this and staying column
|
|
62
|
-
// major based on the number of constraints would be an easy performance
|
|
63
|
-
// improvement.)
|
|
64
|
-
|
|
53
|
+
Bounds<Scalar> get_bounds(std::span<Variable<Scalar>> decision_variables,
|
|
54
|
+
std::span<Variable<Scalar>> inequality_constraints,
|
|
55
|
+
const Eigen::SparseMatrix<Scalar>& A_i) {
|
|
65
56
|
// NB: Casting to long is unspecified if the size of decision_variable.size()
|
|
66
57
|
// is greater than the max long value, but then we wouldn't be able to fill
|
|
67
58
|
// A_i correctly anyway.
|
|
68
59
|
slp_assert(static_cast<Eigen::Index>(decision_variables.size()) ==
|
|
69
|
-
A_i.
|
|
60
|
+
A_i.cols());
|
|
70
61
|
slp_assert(static_cast<Eigen::Index>(inequality_constraints.size()) ==
|
|
71
|
-
A_i.
|
|
62
|
+
A_i.rows());
|
|
63
|
+
|
|
64
|
+
// For each row of A_i, count its structural nonzeros and record the column
|
|
65
|
+
// and value of its most recently visited nonzero. If the count is 1, that's
|
|
66
|
+
// the row's only nonzero; otherwise, the recorded column and value are
|
|
67
|
+
// meaningless, but those rows aren't bound constraints, so they're never
|
|
68
|
+
// read.
|
|
69
|
+
gch::small_vector<int> row_num_nonzeros(A_i.rows(), 0);
|
|
70
|
+
gch::small_vector<int> row_nonzero_col(A_i.rows());
|
|
71
|
+
gch::small_vector<Scalar> row_nonzero_value(A_i.rows());
|
|
72
|
+
for (int col = 0; col < A_i.outerSize(); ++col) {
|
|
73
|
+
for (typename Eigen::SparseMatrix<Scalar>::InnerIterator it{A_i, col}; it;
|
|
74
|
+
++it) {
|
|
75
|
+
++row_num_nonzeros[it.row()];
|
|
76
|
+
row_nonzero_col[it.row()] = it.col();
|
|
77
|
+
row_nonzero_value[it.row()] = it.value();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
72
80
|
|
|
73
81
|
// Maps each decision variable's index to the indices of its upper and lower
|
|
74
82
|
// bounds if they exist, or NO_BOUND if they do not; used only for bookkeeping
|
|
@@ -102,10 +110,7 @@ Bounds<Scalar> get_bounds(
|
|
|
102
110
|
ExpressionType::LINEAR) {
|
|
103
111
|
continue;
|
|
104
112
|
}
|
|
105
|
-
|
|
106
|
-
A_i.innerVector(constraint_index);
|
|
107
|
-
const auto non_zeros = row_A_i.nonZeros();
|
|
108
|
-
if (non_zeros != 1) {
|
|
113
|
+
if (row_num_nonzeros[constraint_index] != 1) {
|
|
109
114
|
// Constraint is not a bound because either:
|
|
110
115
|
//
|
|
111
116
|
// 1. It's in more than one variable
|
|
@@ -122,10 +127,9 @@ Bounds<Scalar> get_bounds(
|
|
|
122
127
|
// and a ≠ 0. The gradient of c is then aeᵢ (where eᵢ denotes the i-th basis
|
|
123
128
|
// element), and c(0) = b. If c(x) ≥ 0, then since either a < 0 or a > 0, we
|
|
124
129
|
// have either x ≤ -b/a or x ≥ -b/a, respectively. ∎
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
.value(); // The nonzero value of the j-th constraint's gradient.
|
|
130
|
+
//
|
|
131
|
+
// The nonzero value of the j-th constraint's gradient.
|
|
132
|
+
const auto constraint_coefficient = row_nonzero_value[constraint_index];
|
|
129
133
|
|
|
130
134
|
// The Jacobian's sparsity pattern is structural, so the single stored value
|
|
131
135
|
// can be zero if the constraint's terms cancel (e.g., x − x + 1 ≥ 0). The
|
|
@@ -134,7 +138,7 @@ Bounds<Scalar> get_bounds(
|
|
|
134
138
|
continue;
|
|
135
139
|
}
|
|
136
140
|
|
|
137
|
-
const auto decision_variable_index =
|
|
141
|
+
const auto decision_variable_index = row_nonzero_col[constraint_index];
|
|
138
142
|
const auto decision_variable_value =
|
|
139
143
|
decision_variables[decision_variable_index].value();
|
|
140
144
|
Scalar constraint_constant;
|
{sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/CMakeLists.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
|
{sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/pyproject.toml
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
|
{sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/python/cpp/main.cpp
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
|
{sleipnirgroup_jormungandr-0.6.7.dev23 → sleipnirgroup_jormungandr-0.6.7.dev24}/src/util/pool.cpp
RENAMED
|
File without changes
|