sleipnirgroup-jormungandr 0.6.7.dev12__tar.gz → 0.6.7.dev14__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.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/PKG-INFO +1 -1
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/autodiff/expression.hpp +102 -49
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/autodiff/variable.hpp +1 -1
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/src/sleipnir/__init__.py +1 -1
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/CMakeLists.txt +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/LICENSE.txt +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/README.md +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/SleipnirConfig.cmake.in +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/cmake/BuildTypes.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/cmake/CompilerFlags.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/cmake/Pybind11Mkdoc.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/cmake/SubdirList.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/cmake/arm-none-eabi.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/autodiff/expression_graph.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/autodiff/expression_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/autodiff/gradient.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/autodiff/hessian.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/autodiff/jacobian.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/autodiff/sleipnir_base.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/autodiff/slice.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/autodiff/variable_block.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/autodiff/variable_matrix.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/optimization/multistart.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/optimization/ocp/dynamics_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/optimization/ocp/timestep_method.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/optimization/ocp/transcription_method.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/optimization/ocp.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/optimization/problem.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/optimization/solver/exit_status.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/optimization/solver/ipm.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/optimization/solver/ipm_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/optimization/solver/iteration_info.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/optimization/solver/newton.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/optimization/solver/newton_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/optimization/solver/options.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/optimization/solver/sqp.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/optimization/solver/sqp_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/optimization/solver/util/all_finite.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/optimization/solver/util/append_as_triplets.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/optimization/solver/util/bounds.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/optimization/solver/util/dense_kkt_solver.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/optimization/solver/util/feasibility_restoration.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/optimization/solver/util/filter.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/optimization/solver/util/fraction_to_the_boundary_rule.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/optimization/solver/util/inertia.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/optimization/solver/util/kkt_error.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/optimization/solver/util/kkt_solver.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/optimization/solver/util/lagrange_multiplier_estimate.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/optimization/solver/util/problem_scaling.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/optimization/solver/util/sparse_inf_norms.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/optimization/solver/util/sparse_kkt_solver.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/util/assert.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/util/concepts.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/util/empty.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/util/function_ref.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/util/intrusive_shared_ptr.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/util/pool.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/util/print.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/util/print_diagnostics.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/util/profiler.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/util/scope_exit.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/util/spy.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/include/sleipnir/util/symbol_exports.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/pyproject.toml +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/cpp/autodiff/bind_expression_type.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/cpp/autodiff/bind_gradient.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/cpp/autodiff/bind_hessian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/cpp/autodiff/bind_jacobian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/cpp/autodiff/bind_variable.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/cpp/autodiff/bind_variable_block.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/cpp/autodiff/bind_variable_matrix.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/cpp/binders.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/cpp/docstrings.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/cpp/for_each_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/cpp/main.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/cpp/optimization/bind_equality_constraints.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/cpp/optimization/bind_inequality_constraints.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/cpp/optimization/bind_ocp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/cpp/optimization/bind_problem.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/cpp/optimization/ocp/bind_dynamics_type.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/cpp/optimization/ocp/bind_timestep_method.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/cpp/optimization/ocp/bind_transcription_method.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/cpp/optimization/solver/bind_exit_status.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/cpp/optimization/solver/bind_iteration_info.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/cpp/try_cast.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/src/sleipnir/autodiff/__init__.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/src/sleipnir/optimization/__init__.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/test/autodiff/gradient_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/test/autodiff/hessian_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/test/autodiff/jacobian_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/test/autodiff/variable_matrix_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/test/autodiff/variable_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/test/optimization/arm_on_elevator_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/test/optimization/cart_pole_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/test/optimization/cart_pole_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/test/optimization/cart_pole_util.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/test/optimization/constraints_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/test/optimization/decision_variable_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/test/optimization/differential_drive_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/test/optimization/differential_drive_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/test/optimization/differential_drive_util.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/test/optimization/double_integrator_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/test/optimization/flywheel_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/test/optimization/flywheel_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/test/optimization/linear_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/test/optimization/multistart_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/test/optimization/nonlinear_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/test/optimization/problem_spy_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/test/optimization/quadratic_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/test/optimization/rk4.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/test/optimization/solver/exit_status_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/python/test/optimization/trivial_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/src/autodiff/gradient.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/src/autodiff/hessian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/src/autodiff/jacobian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/src/autodiff/variable_matrix.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/src/optimization/ocp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/src/optimization/problem.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/src/optimization/solver/ipm.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/src/optimization/solver/newton.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/src/optimization/solver/sqp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/src/util/pool.cpp +0 -0
|
@@ -31,11 +31,6 @@ inline constexpr bool USE_POOL_ALLOCATOR = true;
|
|
|
31
31
|
template <typename Scalar>
|
|
32
32
|
struct Expression;
|
|
33
33
|
|
|
34
|
-
template <typename Scalar>
|
|
35
|
-
constexpr void inc_ref_count(Expression<Scalar>* expr);
|
|
36
|
-
template <typename Scalar>
|
|
37
|
-
constexpr void dec_ref_count(Expression<Scalar>* expr);
|
|
38
|
-
|
|
39
34
|
/// Typedef for intrusive shared pointer to Expression.
|
|
40
35
|
///
|
|
41
36
|
/// @tparam Scalar Scalar type.
|
|
@@ -63,9 +58,6 @@ struct BinaryMinusExpression;
|
|
|
63
58
|
template <typename Scalar, ExpressionType T>
|
|
64
59
|
struct BinaryPlusExpression;
|
|
65
60
|
|
|
66
|
-
template <typename Scalar>
|
|
67
|
-
struct ConstantExpression;
|
|
68
|
-
|
|
69
61
|
template <typename Scalar, ExpressionType T>
|
|
70
62
|
struct DivExpression;
|
|
71
63
|
|
|
@@ -377,24 +369,6 @@ struct Expression {
|
|
|
377
369
|
virtual void accumulate_adjoints_expr() const {}
|
|
378
370
|
};
|
|
379
371
|
|
|
380
|
-
template <typename Scalar>
|
|
381
|
-
ExpressionPtr<Scalar> constant_ptr(Scalar value) {
|
|
382
|
-
return make_expression_ptr<ConstantExpression<Scalar>>(value);
|
|
383
|
-
}
|
|
384
|
-
|
|
385
|
-
template <typename Scalar>
|
|
386
|
-
ExpressionPtr<Scalar> cbrt(const ExpressionPtr<Scalar>& x);
|
|
387
|
-
template <typename Scalar>
|
|
388
|
-
ExpressionPtr<Scalar> exp(const ExpressionPtr<Scalar>& x);
|
|
389
|
-
template <typename Scalar>
|
|
390
|
-
ExpressionPtr<Scalar> sign(const ExpressionPtr<Scalar>& x);
|
|
391
|
-
template <typename Scalar>
|
|
392
|
-
ExpressionPtr<Scalar> sin(const ExpressionPtr<Scalar>& x);
|
|
393
|
-
template <typename Scalar>
|
|
394
|
-
ExpressionPtr<Scalar> sinh(const ExpressionPtr<Scalar>& x);
|
|
395
|
-
template <typename Scalar>
|
|
396
|
-
ExpressionPtr<Scalar> sqrt(const ExpressionPtr<Scalar>& x);
|
|
397
|
-
|
|
398
372
|
/// Derived expression type for binary minus operator.
|
|
399
373
|
///
|
|
400
374
|
/// @tparam Scalar Scalar type.
|
|
@@ -589,6 +563,11 @@ struct ConstantExpression final : Expression<Scalar> {
|
|
|
589
563
|
std::string_view name() const override { return "constant"; }
|
|
590
564
|
};
|
|
591
565
|
|
|
566
|
+
template <typename Scalar>
|
|
567
|
+
ExpressionPtr<Scalar> constant_ptr(Scalar value) {
|
|
568
|
+
return make_expression_ptr<ConstantExpression<Scalar>>(value);
|
|
569
|
+
}
|
|
570
|
+
|
|
592
571
|
/// Derived expression type for decision variable.
|
|
593
572
|
///
|
|
594
573
|
/// @tparam Scalar Scalar type.
|
|
@@ -1417,11 +1396,11 @@ template <typename Scalar>
|
|
|
1417
1396
|
ExpressionPtr<Scalar> hypot(const ExpressionPtr<Scalar>& x,
|
|
1418
1397
|
const ExpressionPtr<Scalar>& y);
|
|
1419
1398
|
|
|
1420
|
-
/// Derived expression type for hypot().
|
|
1399
|
+
/// Derived expression type for hypot() with two arguments.
|
|
1421
1400
|
///
|
|
1422
1401
|
/// @tparam Scalar Scalar type.
|
|
1423
1402
|
template <typename Scalar>
|
|
1424
|
-
struct
|
|
1403
|
+
struct Hypot2Expression final : Expression<Scalar> {
|
|
1425
1404
|
/// Binary operator's left operand.
|
|
1426
1405
|
ExpressionPtr<Scalar> x;
|
|
1427
1406
|
|
|
@@ -1432,7 +1411,7 @@ struct HypotExpression final : Expression<Scalar> {
|
|
|
1432
1411
|
///
|
|
1433
1412
|
/// @param x Binary operator's left operand.
|
|
1434
1413
|
/// @param y Binary operator's right operand.
|
|
1435
|
-
constexpr
|
|
1414
|
+
constexpr Hypot2Expression(ExpressionPtr<Scalar> x, ExpressionPtr<Scalar> y)
|
|
1436
1415
|
: x{std::move(x)}, y{std::move(y)} {}
|
|
1437
1416
|
|
|
1438
1417
|
void visit_args(
|
|
@@ -1451,32 +1430,102 @@ struct HypotExpression final : Expression<Scalar> {
|
|
|
1451
1430
|
std::string_view name() const override { return "hypot"; }
|
|
1452
1431
|
|
|
1453
1432
|
void accumulate_adjoints() const override {
|
|
1454
|
-
|
|
1455
|
-
|
|
1433
|
+
using std::hypot;
|
|
1434
|
+
Scalar norm = hypot(x->val, y->val);
|
|
1435
|
+
x->adj += this->adj * x->val / norm;
|
|
1436
|
+
y->adj += this->adj * y->val / norm;
|
|
1456
1437
|
}
|
|
1457
1438
|
|
|
1458
1439
|
void accumulate_adjoints_expr() const override {
|
|
1459
|
-
|
|
1460
|
-
|
|
1440
|
+
auto norm = hypot(x, y);
|
|
1441
|
+
x->adj_expr += this->adj_expr * x / norm;
|
|
1442
|
+
y->adj_expr += this->adj_expr * y / norm;
|
|
1461
1443
|
}
|
|
1444
|
+
};
|
|
1462
1445
|
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1446
|
+
/// hypot() for Expressions.
|
|
1447
|
+
///
|
|
1448
|
+
/// @tparam Scalar Scalar type.
|
|
1449
|
+
/// @param x The x argument.
|
|
1450
|
+
/// @param y The y argument.
|
|
1451
|
+
template <typename Scalar>
|
|
1452
|
+
ExpressionPtr<Scalar> hypot(const ExpressionPtr<Scalar>& x,
|
|
1453
|
+
const ExpressionPtr<Scalar>& y) {
|
|
1454
|
+
using enum ExpressionType;
|
|
1455
|
+
using std::hypot;
|
|
1456
|
+
|
|
1457
|
+
// Prune expression
|
|
1458
|
+
if (x->is_constant(Scalar(0))) {
|
|
1459
|
+
return abs(y);
|
|
1460
|
+
} else if (y->is_constant(Scalar(0))) {
|
|
1461
|
+
return abs(x);
|
|
1467
1462
|
}
|
|
1468
1463
|
|
|
1469
|
-
|
|
1464
|
+
// Evaluate constant
|
|
1465
|
+
if (x->type() == CONSTANT && y->type() == CONSTANT) {
|
|
1466
|
+
return constant_ptr(hypot(x->val, y->val));
|
|
1467
|
+
}
|
|
1468
|
+
|
|
1469
|
+
return make_expression_ptr<Hypot2Expression<Scalar>>(x, y);
|
|
1470
|
+
}
|
|
1471
|
+
|
|
1472
|
+
template <typename Scalar>
|
|
1473
|
+
ExpressionPtr<Scalar> hypot(const ExpressionPtr<Scalar>& x,
|
|
1474
|
+
const ExpressionPtr<Scalar>& y,
|
|
1475
|
+
const ExpressionPtr<Scalar>& z);
|
|
1476
|
+
|
|
1477
|
+
/// Derived expression type for hypot() with three arguments.
|
|
1478
|
+
///
|
|
1479
|
+
/// @tparam Scalar Scalar type.
|
|
1480
|
+
template <typename Scalar>
|
|
1481
|
+
struct Hypot3Expression final : Expression<Scalar> {
|
|
1482
|
+
/// Ternary operator's first operand.
|
|
1483
|
+
ExpressionPtr<Scalar> x;
|
|
1484
|
+
|
|
1485
|
+
/// Ternary operator's second operand.
|
|
1486
|
+
ExpressionPtr<Scalar> y;
|
|
1487
|
+
|
|
1488
|
+
/// Ternary operator's third operand.
|
|
1489
|
+
ExpressionPtr<Scalar> z;
|
|
1490
|
+
|
|
1491
|
+
/// Constructs a ternary expression (an operator with three arguments).
|
|
1492
|
+
///
|
|
1493
|
+
/// @param x Ternary operator's first operand.
|
|
1494
|
+
/// @param y Ternary operator's second operand.
|
|
1495
|
+
/// @param z Ternary operator's third operand.
|
|
1496
|
+
constexpr Hypot3Expression(ExpressionPtr<Scalar> x, ExpressionPtr<Scalar> y,
|
|
1497
|
+
ExpressionPtr<Scalar> z)
|
|
1498
|
+
: x{std::move(x)}, y{std::move(y)}, z{std::move(z)} {}
|
|
1499
|
+
|
|
1500
|
+
void visit_args(
|
|
1501
|
+
function_ref<void(Expression<Scalar>* arg)> func) const override {
|
|
1502
|
+
func(x.get());
|
|
1503
|
+
func(y.get());
|
|
1504
|
+
func(z.get());
|
|
1505
|
+
}
|
|
1506
|
+
|
|
1507
|
+
Scalar value() const override {
|
|
1470
1508
|
using std::hypot;
|
|
1471
|
-
return
|
|
1509
|
+
return hypot(x->val, y->val, z->val);
|
|
1472
1510
|
}
|
|
1473
1511
|
|
|
1474
|
-
|
|
1475
|
-
|
|
1512
|
+
ExpressionType type() const override { return ExpressionType::NONLINEAR; }
|
|
1513
|
+
|
|
1514
|
+
std::string_view name() const override { return "hypot"; }
|
|
1515
|
+
|
|
1516
|
+
void accumulate_adjoints() const override {
|
|
1517
|
+
using std::hypot;
|
|
1518
|
+
Scalar norm = hypot(x->val, y->val, z->val);
|
|
1519
|
+
x->adj += this->adj * x->val / norm;
|
|
1520
|
+
y->adj += this->adj * y->val / norm;
|
|
1521
|
+
z->adj += this->adj * z->val / norm;
|
|
1476
1522
|
}
|
|
1477
1523
|
|
|
1478
|
-
|
|
1479
|
-
|
|
1524
|
+
void accumulate_adjoints_expr() const override {
|
|
1525
|
+
auto norm = hypot(x, y, z);
|
|
1526
|
+
x->adj_expr += this->adj_expr * x / norm;
|
|
1527
|
+
y->adj_expr += this->adj_expr * y / norm;
|
|
1528
|
+
z->adj_expr += this->adj_expr * z / norm;
|
|
1480
1529
|
}
|
|
1481
1530
|
};
|
|
1482
1531
|
|
|
@@ -1485,25 +1534,29 @@ struct HypotExpression final : Expression<Scalar> {
|
|
|
1485
1534
|
/// @tparam Scalar Scalar type.
|
|
1486
1535
|
/// @param x The x argument.
|
|
1487
1536
|
/// @param y The y argument.
|
|
1537
|
+
/// @param z The z argument.
|
|
1488
1538
|
template <typename Scalar>
|
|
1489
1539
|
ExpressionPtr<Scalar> hypot(const ExpressionPtr<Scalar>& x,
|
|
1490
|
-
const ExpressionPtr<Scalar>& y
|
|
1540
|
+
const ExpressionPtr<Scalar>& y,
|
|
1541
|
+
const ExpressionPtr<Scalar>& z) {
|
|
1491
1542
|
using enum ExpressionType;
|
|
1492
1543
|
using std::hypot;
|
|
1493
1544
|
|
|
1494
1545
|
// Prune expression
|
|
1495
1546
|
if (x->is_constant(Scalar(0))) {
|
|
1496
|
-
return
|
|
1547
|
+
return hypot(y, z);
|
|
1497
1548
|
} else if (y->is_constant(Scalar(0))) {
|
|
1498
|
-
return
|
|
1549
|
+
return hypot(x, z);
|
|
1550
|
+
} else if (z->is_constant(Scalar(0))) {
|
|
1551
|
+
return hypot(x, y);
|
|
1499
1552
|
}
|
|
1500
1553
|
|
|
1501
1554
|
// Evaluate constant
|
|
1502
|
-
if (x->type() == CONSTANT && y->type() == CONSTANT) {
|
|
1503
|
-
return constant_ptr(hypot(x->val, y->val));
|
|
1555
|
+
if (x->type() == CONSTANT && y->type() == CONSTANT && z->type() == CONSTANT) {
|
|
1556
|
+
return constant_ptr(hypot(x->val, y->val, z->val));
|
|
1504
1557
|
}
|
|
1505
1558
|
|
|
1506
|
-
return make_expression_ptr<
|
|
1559
|
+
return make_expression_ptr<Hypot3Expression<Scalar>>(x, y, z);
|
|
1507
1560
|
}
|
|
1508
1561
|
|
|
1509
1562
|
/// Derived expression type for is_nonnegative().
|
|
@@ -708,7 +708,7 @@ Variable<Scalar> tanh(const Variable<Scalar>& x) {
|
|
|
708
708
|
template <typename Scalar>
|
|
709
709
|
Variable<Scalar> hypot(const Variable<Scalar>& x, const Variable<Scalar>& y,
|
|
710
710
|
const Variable<Scalar>& z) {
|
|
711
|
-
return Variable{
|
|
711
|
+
return Variable{detail::hypot(x.expr, y.expr, z.expr)};
|
|
712
712
|
}
|
|
713
713
|
|
|
714
714
|
// The standard form for equality constraints is c(x) = 0, and the standard form
|
{sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/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
|
{sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/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.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/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
|
{sleipnirgroup_jormungandr-0.6.7.dev12 → sleipnirgroup_jormungandr-0.6.7.dev14}/src/util/pool.cpp
RENAMED
|
File without changes
|