sleipnirgroup-jormungandr 0.6.7.dev13__tar.gz → 0.6.7.dev15__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.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/CMakeLists.txt +3 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/PKG-INFO +1 -1
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/autodiff/expression.hpp +177 -75
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/autodiff/variable.hpp +26 -1
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/cpp/docstrings.hpp +19 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/src/sleipnir/__init__.py +1 -1
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/LICENSE.txt +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/README.md +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/SleipnirConfig.cmake.in +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/cmake/BuildTypes.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/cmake/CompilerFlags.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/cmake/Pybind11Mkdoc.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/cmake/SubdirList.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/cmake/arm-none-eabi.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/autodiff/expression_graph.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/autodiff/expression_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/autodiff/gradient.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/autodiff/hessian.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/autodiff/jacobian.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/autodiff/sleipnir_base.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/autodiff/slice.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/autodiff/variable_block.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/autodiff/variable_matrix.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/optimization/multistart.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/optimization/ocp/dynamics_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/optimization/ocp/timestep_method.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/optimization/ocp/transcription_method.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/optimization/ocp.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/optimization/problem.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/optimization/solver/exit_status.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/optimization/solver/ipm.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/optimization/solver/ipm_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/optimization/solver/iteration_info.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/optimization/solver/newton.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/optimization/solver/newton_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/optimization/solver/options.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/optimization/solver/sqp.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/optimization/solver/sqp_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/optimization/solver/util/all_finite.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/optimization/solver/util/append_as_triplets.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/optimization/solver/util/bounds.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/optimization/solver/util/dense_kkt_solver.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/optimization/solver/util/feasibility_restoration.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/optimization/solver/util/filter.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/optimization/solver/util/fraction_to_the_boundary_rule.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/optimization/solver/util/inertia.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/optimization/solver/util/kkt_error.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/optimization/solver/util/kkt_solver.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/optimization/solver/util/lagrange_multiplier_estimate.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/optimization/solver/util/problem_scaling.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/optimization/solver/util/sparse_inf_norms.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/optimization/solver/util/sparse_kkt_solver.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/util/assert.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/util/concepts.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/util/empty.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/util/function_ref.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/util/intrusive_shared_ptr.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/util/pool.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/util/print.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/util/print_diagnostics.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/util/profiler.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/util/scope_exit.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/util/spy.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/include/sleipnir/util/symbol_exports.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/pyproject.toml +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/cpp/autodiff/bind_expression_type.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/cpp/autodiff/bind_gradient.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/cpp/autodiff/bind_hessian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/cpp/autodiff/bind_jacobian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/cpp/autodiff/bind_variable.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/cpp/autodiff/bind_variable_block.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/cpp/autodiff/bind_variable_matrix.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/cpp/binders.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/cpp/for_each_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/cpp/main.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/cpp/optimization/bind_equality_constraints.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/cpp/optimization/bind_inequality_constraints.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/cpp/optimization/bind_ocp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/cpp/optimization/bind_problem.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/cpp/optimization/ocp/bind_dynamics_type.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/cpp/optimization/ocp/bind_timestep_method.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/cpp/optimization/ocp/bind_transcription_method.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/cpp/optimization/solver/bind_exit_status.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/cpp/optimization/solver/bind_iteration_info.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/cpp/try_cast.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/src/sleipnir/autodiff/__init__.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/src/sleipnir/optimization/__init__.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/test/autodiff/gradient_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/test/autodiff/hessian_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/test/autodiff/jacobian_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/test/autodiff/variable_matrix_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/test/autodiff/variable_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/test/optimization/arm_on_elevator_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/test/optimization/cart_pole_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/test/optimization/cart_pole_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/test/optimization/cart_pole_util.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/test/optimization/constraints_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/test/optimization/decision_variable_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/test/optimization/differential_drive_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/test/optimization/differential_drive_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/test/optimization/differential_drive_util.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/test/optimization/double_integrator_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/test/optimization/flywheel_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/test/optimization/flywheel_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/test/optimization/linear_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/test/optimization/multistart_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/test/optimization/nonlinear_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/test/optimization/problem_spy_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/test/optimization/quadratic_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/test/optimization/rk4.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/test/optimization/solver/exit_status_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/python/test/optimization/trivial_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/src/autodiff/gradient.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/src/autodiff/hessian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/src/autodiff/jacobian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/src/autodiff/variable_matrix.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/src/optimization/ocp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/src/optimization/problem.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/src/optimization/solver/ipm.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/src/optimization/solver/newton.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/src/optimization/solver/sqp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/src/util/pool.cpp +0 -0
{sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/CMakeLists.txt
RENAMED
|
@@ -111,6 +111,9 @@ if(PROJECT_IS_TOP_LEVEL AND BUILD_TESTING AND NOT CMAKE_CROSSCOMPILING)
|
|
|
111
111
|
SYSTEM
|
|
112
112
|
)
|
|
113
113
|
FetchContent_MakeAvailable(Catch2)
|
|
114
|
+
|
|
115
|
+
# Enable StringMaker<std::string_view>
|
|
116
|
+
target_compile_features(Catch2 PRIVATE cxx_std_23)
|
|
114
117
|
endif()
|
|
115
118
|
|
|
116
119
|
install(
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
#include <memory>
|
|
10
10
|
#include <numbers>
|
|
11
11
|
#include <string_view>
|
|
12
|
+
#include <type_traits>
|
|
12
13
|
#include <utility>
|
|
13
14
|
|
|
14
15
|
#include <gch/small_vector.hpp>
|
|
@@ -1396,11 +1397,11 @@ template <typename Scalar>
|
|
|
1396
1397
|
ExpressionPtr<Scalar> hypot(const ExpressionPtr<Scalar>& x,
|
|
1397
1398
|
const ExpressionPtr<Scalar>& y);
|
|
1398
1399
|
|
|
1399
|
-
/// Derived expression type for hypot().
|
|
1400
|
+
/// Derived expression type for hypot() with two arguments.
|
|
1400
1401
|
///
|
|
1401
1402
|
/// @tparam Scalar Scalar type.
|
|
1402
1403
|
template <typename Scalar>
|
|
1403
|
-
struct
|
|
1404
|
+
struct Hypot2Expression final : Expression<Scalar> {
|
|
1404
1405
|
/// Binary operator's left operand.
|
|
1405
1406
|
ExpressionPtr<Scalar> x;
|
|
1406
1407
|
|
|
@@ -1411,7 +1412,7 @@ struct HypotExpression final : Expression<Scalar> {
|
|
|
1411
1412
|
///
|
|
1412
1413
|
/// @param x Binary operator's left operand.
|
|
1413
1414
|
/// @param y Binary operator's right operand.
|
|
1414
|
-
constexpr
|
|
1415
|
+
constexpr Hypot2Expression(ExpressionPtr<Scalar> x, ExpressionPtr<Scalar> y)
|
|
1415
1416
|
: x{std::move(x)}, y{std::move(y)} {}
|
|
1416
1417
|
|
|
1417
1418
|
void visit_args(
|
|
@@ -1430,32 +1431,16 @@ struct HypotExpression final : Expression<Scalar> {
|
|
|
1430
1431
|
std::string_view name() const override { return "hypot"; }
|
|
1431
1432
|
|
|
1432
1433
|
void accumulate_adjoints() const override {
|
|
1433
|
-
x->adj += grad_l();
|
|
1434
|
-
y->adj += grad_r();
|
|
1435
|
-
}
|
|
1436
|
-
|
|
1437
|
-
void accumulate_adjoints_expr() const override {
|
|
1438
|
-
x->adj_expr += grad_expr_l();
|
|
1439
|
-
y->adj_expr += grad_expr_r();
|
|
1440
|
-
}
|
|
1441
|
-
|
|
1442
|
-
private:
|
|
1443
|
-
Scalar grad_l() const {
|
|
1444
|
-
using std::hypot;
|
|
1445
|
-
return this->adj * x->val / hypot(x->val, y->val);
|
|
1446
|
-
}
|
|
1447
|
-
|
|
1448
|
-
Scalar grad_r() const {
|
|
1449
1434
|
using std::hypot;
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
ExpressionPtr<Scalar> grad_expr_l() const {
|
|
1454
|
-
return this->adj_expr * x / hypot(x, y);
|
|
1435
|
+
Scalar norm = hypot(x->val, y->val);
|
|
1436
|
+
x->adj += this->adj * x->val / norm;
|
|
1437
|
+
y->adj += this->adj * y->val / norm;
|
|
1455
1438
|
}
|
|
1456
1439
|
|
|
1457
|
-
|
|
1458
|
-
|
|
1440
|
+
void accumulate_adjoints_expr() const override {
|
|
1441
|
+
auto norm = hypot(x, y);
|
|
1442
|
+
x->adj_expr += this->adj_expr * x / norm;
|
|
1443
|
+
y->adj_expr += this->adj_expr * y / norm;
|
|
1459
1444
|
}
|
|
1460
1445
|
};
|
|
1461
1446
|
|
|
@@ -1482,89 +1467,210 @@ ExpressionPtr<Scalar> hypot(const ExpressionPtr<Scalar>& x,
|
|
|
1482
1467
|
return constant_ptr(hypot(x->val, y->val));
|
|
1483
1468
|
}
|
|
1484
1469
|
|
|
1485
|
-
return make_expression_ptr<
|
|
1470
|
+
return make_expression_ptr<Hypot2Expression<Scalar>>(x, y);
|
|
1486
1471
|
}
|
|
1487
1472
|
|
|
1488
|
-
|
|
1473
|
+
template <typename Scalar>
|
|
1474
|
+
ExpressionPtr<Scalar> hypot(const ExpressionPtr<Scalar>& x,
|
|
1475
|
+
const ExpressionPtr<Scalar>& y,
|
|
1476
|
+
const ExpressionPtr<Scalar>& z);
|
|
1477
|
+
|
|
1478
|
+
/// Derived expression type for hypot() with three arguments.
|
|
1489
1479
|
///
|
|
1490
1480
|
/// @tparam Scalar Scalar type.
|
|
1491
1481
|
template <typename Scalar>
|
|
1492
|
-
struct
|
|
1493
|
-
///
|
|
1482
|
+
struct Hypot3Expression final : Expression<Scalar> {
|
|
1483
|
+
/// Ternary operator's first operand.
|
|
1494
1484
|
ExpressionPtr<Scalar> x;
|
|
1495
1485
|
|
|
1496
|
-
///
|
|
1486
|
+
/// Ternary operator's second operand.
|
|
1487
|
+
ExpressionPtr<Scalar> y;
|
|
1488
|
+
|
|
1489
|
+
/// Ternary operator's third operand.
|
|
1490
|
+
ExpressionPtr<Scalar> z;
|
|
1491
|
+
|
|
1492
|
+
/// Constructs a ternary expression (an operator with three arguments).
|
|
1497
1493
|
///
|
|
1498
|
-
/// @param x
|
|
1499
|
-
|
|
1500
|
-
|
|
1494
|
+
/// @param x Ternary operator's first operand.
|
|
1495
|
+
/// @param y Ternary operator's second operand.
|
|
1496
|
+
/// @param z Ternary operator's third operand.
|
|
1497
|
+
constexpr Hypot3Expression(ExpressionPtr<Scalar> x, ExpressionPtr<Scalar> y,
|
|
1498
|
+
ExpressionPtr<Scalar> z)
|
|
1499
|
+
: x{std::move(x)}, y{std::move(y)}, z{std::move(z)} {}
|
|
1501
1500
|
|
|
1502
1501
|
void visit_args(
|
|
1503
1502
|
function_ref<void(Expression<Scalar>* arg)> func) const override {
|
|
1504
1503
|
func(x.get());
|
|
1504
|
+
func(y.get());
|
|
1505
|
+
func(z.get());
|
|
1505
1506
|
}
|
|
1506
1507
|
|
|
1507
1508
|
Scalar value() const override {
|
|
1508
|
-
|
|
1509
|
+
using std::hypot;
|
|
1510
|
+
return hypot(x->val, y->val, z->val);
|
|
1509
1511
|
}
|
|
1510
1512
|
|
|
1511
1513
|
ExpressionType type() const override { return ExpressionType::NONLINEAR; }
|
|
1512
1514
|
|
|
1513
|
-
std::string_view name() const override { return "
|
|
1515
|
+
std::string_view name() const override { return "hypot"; }
|
|
1516
|
+
|
|
1517
|
+
void accumulate_adjoints() const override {
|
|
1518
|
+
using std::hypot;
|
|
1519
|
+
Scalar norm = hypot(x->val, y->val, z->val);
|
|
1520
|
+
x->adj += this->adj * x->val / norm;
|
|
1521
|
+
y->adj += this->adj * y->val / norm;
|
|
1522
|
+
z->adj += this->adj * z->val / norm;
|
|
1523
|
+
}
|
|
1524
|
+
|
|
1525
|
+
void accumulate_adjoints_expr() const override {
|
|
1526
|
+
auto norm = hypot(x, y, z);
|
|
1527
|
+
x->adj_expr += this->adj_expr * x / norm;
|
|
1528
|
+
y->adj_expr += this->adj_expr * y / norm;
|
|
1529
|
+
z->adj_expr += this->adj_expr * z / norm;
|
|
1530
|
+
}
|
|
1514
1531
|
};
|
|
1515
1532
|
|
|
1516
|
-
///
|
|
1533
|
+
/// hypot() for Expressions.
|
|
1517
1534
|
///
|
|
1518
1535
|
/// @tparam Scalar Scalar type.
|
|
1519
|
-
/// @param x The argument.
|
|
1536
|
+
/// @param x The x argument.
|
|
1537
|
+
/// @param y The y argument.
|
|
1538
|
+
/// @param z The z argument.
|
|
1520
1539
|
template <typename Scalar>
|
|
1521
|
-
ExpressionPtr<Scalar>
|
|
1522
|
-
|
|
1523
|
-
|
|
1540
|
+
ExpressionPtr<Scalar> hypot(const ExpressionPtr<Scalar>& x,
|
|
1541
|
+
const ExpressionPtr<Scalar>& y,
|
|
1542
|
+
const ExpressionPtr<Scalar>& z) {
|
|
1543
|
+
using enum ExpressionType;
|
|
1544
|
+
using std::hypot;
|
|
1545
|
+
|
|
1546
|
+
// Prune expression
|
|
1547
|
+
if (x->is_constant(Scalar(0))) {
|
|
1548
|
+
return hypot(y, z);
|
|
1549
|
+
} else if (y->is_constant(Scalar(0))) {
|
|
1550
|
+
return hypot(x, z);
|
|
1551
|
+
} else if (z->is_constant(Scalar(0))) {
|
|
1552
|
+
return hypot(x, y);
|
|
1524
1553
|
}
|
|
1525
1554
|
|
|
1526
|
-
|
|
1555
|
+
// Evaluate constant
|
|
1556
|
+
if (x->type() == CONSTANT && y->type() == CONSTANT && z->type() == CONSTANT) {
|
|
1557
|
+
return constant_ptr(hypot(x->val, y->val, z->val));
|
|
1558
|
+
}
|
|
1559
|
+
|
|
1560
|
+
return make_expression_ptr<Hypot3Expression<Scalar>>(x, y, z);
|
|
1527
1561
|
}
|
|
1528
1562
|
|
|
1529
|
-
/// Derived expression type for
|
|
1563
|
+
/// Derived expression type for if_else().
|
|
1564
|
+
///
|
|
1565
|
+
/// Returns t if cond(a, b) is true, otherwise f.
|
|
1530
1566
|
///
|
|
1531
1567
|
/// @tparam Scalar Scalar type.
|
|
1532
1568
|
template <typename Scalar>
|
|
1533
|
-
struct
|
|
1534
|
-
///
|
|
1535
|
-
|
|
1569
|
+
struct IfElseExpression final : Expression<Scalar> {
|
|
1570
|
+
/// Condition evaluated on a and b.
|
|
1571
|
+
bool (*cond)(Scalar a, Scalar b);
|
|
1536
1572
|
|
|
1537
|
-
///
|
|
1573
|
+
/// The condition's first argument.
|
|
1574
|
+
ExpressionPtr<Scalar> a;
|
|
1575
|
+
|
|
1576
|
+
/// The condition's second argument.
|
|
1577
|
+
ExpressionPtr<Scalar> b;
|
|
1578
|
+
|
|
1579
|
+
/// Value selected when cond(a, b) is true.
|
|
1580
|
+
ExpressionPtr<Scalar> t;
|
|
1581
|
+
|
|
1582
|
+
/// Value selected when cond(a, b) is false.
|
|
1583
|
+
ExpressionPtr<Scalar> f;
|
|
1584
|
+
|
|
1585
|
+
/// Constructs an if-else expression.
|
|
1538
1586
|
///
|
|
1539
|
-
/// @param
|
|
1540
|
-
|
|
1541
|
-
|
|
1587
|
+
/// @param cond Condition evaluated on a and b.
|
|
1588
|
+
/// @param a The condition's first argument.
|
|
1589
|
+
/// @param b The condition's second argument.
|
|
1590
|
+
/// @param t Value selected when cond(a, b) is true.
|
|
1591
|
+
/// @param f Value selected when cond(a, b) is false.
|
|
1592
|
+
constexpr IfElseExpression(bool (*cond)(Scalar a, Scalar b),
|
|
1593
|
+
ExpressionPtr<Scalar> a, ExpressionPtr<Scalar> b,
|
|
1594
|
+
ExpressionPtr<Scalar> t, ExpressionPtr<Scalar> f)
|
|
1595
|
+
: cond{cond},
|
|
1596
|
+
a{std::move(a)},
|
|
1597
|
+
b{std::move(b)},
|
|
1598
|
+
t{std::move(t)},
|
|
1599
|
+
f{std::move(f)} {}
|
|
1542
1600
|
|
|
1543
1601
|
void visit_args(
|
|
1544
1602
|
function_ref<void(Expression<Scalar>* arg)> func) const override {
|
|
1545
|
-
func(
|
|
1603
|
+
func(a.get());
|
|
1604
|
+
func(b.get());
|
|
1605
|
+
func(t.get());
|
|
1606
|
+
func(f.get());
|
|
1546
1607
|
}
|
|
1547
1608
|
|
|
1548
1609
|
Scalar value() const override {
|
|
1549
|
-
return
|
|
1610
|
+
return cond(a->val, b->val) ? t->val : f->val;
|
|
1550
1611
|
}
|
|
1551
1612
|
|
|
1552
1613
|
ExpressionType type() const override { return ExpressionType::NONLINEAR; }
|
|
1553
1614
|
|
|
1554
|
-
std::string_view name() const override { return "
|
|
1615
|
+
std::string_view name() const override { return "if-else"; }
|
|
1616
|
+
|
|
1617
|
+
// a and b have zero gradient, so only t and f accumulate adjoints
|
|
1618
|
+
void accumulate_adjoints() const override {
|
|
1619
|
+
if (cond(a->val, b->val)) {
|
|
1620
|
+
t->adj += this->adj;
|
|
1621
|
+
} else {
|
|
1622
|
+
f->adj += this->adj;
|
|
1623
|
+
}
|
|
1624
|
+
}
|
|
1625
|
+
|
|
1626
|
+
void accumulate_adjoints_expr() const override {
|
|
1627
|
+
t->adj_expr += grad_expr_t();
|
|
1628
|
+
f->adj_expr += grad_expr_f();
|
|
1629
|
+
}
|
|
1630
|
+
|
|
1631
|
+
private:
|
|
1632
|
+
ExpressionPtr<Scalar> grad_expr_t() const {
|
|
1633
|
+
// adjoint if cond(a, b), otherwise 0
|
|
1634
|
+
return if_else(cond, a, b, this->adj_expr, constant_ptr(Scalar(0)));
|
|
1635
|
+
}
|
|
1636
|
+
|
|
1637
|
+
ExpressionPtr<Scalar> grad_expr_f() const {
|
|
1638
|
+
// 0 if cond(a, b), otherwise adjoint
|
|
1639
|
+
return if_else(cond, a, b, constant_ptr(Scalar(0)), this->adj_expr);
|
|
1640
|
+
}
|
|
1555
1641
|
};
|
|
1556
1642
|
|
|
1557
|
-
/// Returns
|
|
1643
|
+
/// Returns t if cond(a, b) is true, otherwise f.
|
|
1558
1644
|
///
|
|
1559
1645
|
/// @tparam Scalar Scalar type.
|
|
1560
|
-
/// @param
|
|
1646
|
+
/// @param cond Condition evaluated on a and b.
|
|
1647
|
+
/// @param a The condition's first argument.
|
|
1648
|
+
/// @param b The condition's second argument.
|
|
1649
|
+
/// @param t Value selected when cond(a, b) is true.
|
|
1650
|
+
/// @param f Value selected when cond(a, b) is false.
|
|
1561
1651
|
template <typename Scalar>
|
|
1562
|
-
ExpressionPtr<Scalar>
|
|
1563
|
-
|
|
1564
|
-
|
|
1652
|
+
ExpressionPtr<Scalar> if_else(
|
|
1653
|
+
std::type_identity_t<bool (*)(Scalar a, Scalar b)> cond,
|
|
1654
|
+
const ExpressionPtr<Scalar>& a, const ExpressionPtr<Scalar>& b,
|
|
1655
|
+
const ExpressionPtr<Scalar>& t, const ExpressionPtr<Scalar>& f) {
|
|
1656
|
+
using enum ExpressionType;
|
|
1657
|
+
|
|
1658
|
+
// Prune expression
|
|
1659
|
+
if (t == f) {
|
|
1660
|
+
// Return t, which both branches currently are
|
|
1661
|
+
return t;
|
|
1662
|
+
} else if (t->type() == CONSTANT && f->type() == CONSTANT &&
|
|
1663
|
+
t->val == f->val) {
|
|
1664
|
+
// Return t, which both branches currently equal
|
|
1665
|
+
return t;
|
|
1666
|
+
}
|
|
1667
|
+
|
|
1668
|
+
// Evaluate constant condition
|
|
1669
|
+
if (a->type() == CONSTANT && b->type() == CONSTANT) {
|
|
1670
|
+
return cond(a->val, b->val) ? t : f;
|
|
1565
1671
|
}
|
|
1566
1672
|
|
|
1567
|
-
return make_expression_ptr<
|
|
1673
|
+
return make_expression_ptr<IfElseExpression<Scalar>>(cond, a, b, t, f);
|
|
1568
1674
|
}
|
|
1569
1675
|
|
|
1570
1676
|
/// Derived expression type for log().
|
|
@@ -1747,17 +1853,15 @@ struct MaxExpression final : Expression<Scalar> {
|
|
|
1747
1853
|
Scalar grad_r() const { return a->val >= b->val ? Scalar(0) : this->adj; }
|
|
1748
1854
|
|
|
1749
1855
|
ExpressionPtr<Scalar> grad_expr_l() const {
|
|
1750
|
-
// adjoint
|
|
1751
|
-
|
|
1752
|
-
|
|
1856
|
+
// adjoint if a >= b, otherwise 0
|
|
1857
|
+
return if_else([](Scalar a, Scalar b) { return a >= b; }, a, b,
|
|
1858
|
+
this->adj_expr, constant_ptr(Scalar(0)));
|
|
1753
1859
|
}
|
|
1754
1860
|
|
|
1755
1861
|
ExpressionPtr<Scalar> grad_expr_r() const {
|
|
1756
|
-
//
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
// adjoint * (b - a > 0)
|
|
1760
|
-
return this->adj_expr * is_positive(b - a);
|
|
1862
|
+
// 0 if a >= b, otherwise adjoint
|
|
1863
|
+
return if_else([](Scalar a, Scalar b) { return a >= b; }, a, b,
|
|
1864
|
+
constant_ptr(Scalar(0)), this->adj_expr);
|
|
1761
1865
|
}
|
|
1762
1866
|
};
|
|
1763
1867
|
|
|
@@ -1831,17 +1935,15 @@ struct MinExpression final : Expression<Scalar> {
|
|
|
1831
1935
|
Scalar grad_r() const { return a->val <= b->val ? Scalar(0) : this->adj; }
|
|
1832
1936
|
|
|
1833
1937
|
ExpressionPtr<Scalar> grad_expr_l() const {
|
|
1834
|
-
// adjoint
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
return this->adj_expr * is_nonnegative(b - a);
|
|
1938
|
+
// adjoint if a <= b, otherwise 0
|
|
1939
|
+
return if_else([](Scalar a, Scalar b) { return a <= b; }, a, b,
|
|
1940
|
+
this->adj_expr, constant_ptr(Scalar(0)));
|
|
1838
1941
|
}
|
|
1839
1942
|
|
|
1840
1943
|
ExpressionPtr<Scalar> grad_expr_r() const {
|
|
1841
|
-
//
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
return this->adj_expr * is_positive(a - b);
|
|
1944
|
+
// 0 if a <= b, otherwise adjoint
|
|
1945
|
+
return if_else([](Scalar a, Scalar b) { return a <= b; }, a, b,
|
|
1946
|
+
constant_ptr(Scalar(0)), this->adj_expr);
|
|
1845
1947
|
}
|
|
1846
1948
|
};
|
|
1847
1949
|
|
|
@@ -313,6 +313,11 @@ class Variable : public SleipnirBase {
|
|
|
313
313
|
friend Variable<Scalar> hypot(const Variable<Scalar>& x,
|
|
314
314
|
const Variable<Scalar>& y);
|
|
315
315
|
template <typename Scalar>
|
|
316
|
+
friend Variable<Scalar> if_else(
|
|
317
|
+
std::type_identity_t<bool (*)(Scalar a, Scalar b)> cond,
|
|
318
|
+
const Variable<Scalar>& a, const Variable<Scalar>& b,
|
|
319
|
+
const Variable<Scalar>& t, const Variable<Scalar>& f);
|
|
320
|
+
template <typename Scalar>
|
|
316
321
|
friend Variable<Scalar> log(const Variable<Scalar>& x);
|
|
317
322
|
template <typename Scalar>
|
|
318
323
|
friend Variable<Scalar> log10(const Variable<Scalar>& x);
|
|
@@ -522,6 +527,26 @@ Variable<Scalar> hypot(const Variable<Scalar>& x, const Variable<Scalar>& y) {
|
|
|
522
527
|
return Variable{detail::hypot(x.expr, y.expr)};
|
|
523
528
|
}
|
|
524
529
|
|
|
530
|
+
/// if_else() for Variables.
|
|
531
|
+
///
|
|
532
|
+
/// Returns t if cond(a, b) is true, otherwise f. The condition is evaluated on
|
|
533
|
+
/// the values of a and b each time the result is evaluated, and the gradient
|
|
534
|
+
/// only flows through the selected branch.
|
|
535
|
+
///
|
|
536
|
+
/// @tparam Scalar Scalar type.
|
|
537
|
+
/// @param cond Condition evaluated on a and b.
|
|
538
|
+
/// @param a The condition's first argument.
|
|
539
|
+
/// @param b The condition's second argument.
|
|
540
|
+
/// @param t Value selected when cond(a, b) is true.
|
|
541
|
+
/// @param f Value selected when cond(a, b) is false.
|
|
542
|
+
template <typename Scalar>
|
|
543
|
+
Variable<Scalar> if_else(
|
|
544
|
+
std::type_identity_t<bool (*)(Scalar a, Scalar b)> cond,
|
|
545
|
+
const Variable<Scalar>& a, const Variable<Scalar>& b,
|
|
546
|
+
const Variable<Scalar>& t, const Variable<Scalar>& f) {
|
|
547
|
+
return Variable{detail::if_else(cond, a.expr, b.expr, t.expr, f.expr)};
|
|
548
|
+
}
|
|
549
|
+
|
|
525
550
|
/// log() for Variables.
|
|
526
551
|
///
|
|
527
552
|
/// @tparam Scalar Scalar type.
|
|
@@ -708,7 +733,7 @@ Variable<Scalar> tanh(const Variable<Scalar>& x) {
|
|
|
708
733
|
template <typename Scalar>
|
|
709
734
|
Variable<Scalar> hypot(const Variable<Scalar>& x, const Variable<Scalar>& y,
|
|
710
735
|
const Variable<Scalar>& z) {
|
|
711
|
-
return Variable{
|
|
736
|
+
return Variable{detail::hypot(x.expr, y.expr, z.expr)};
|
|
712
737
|
}
|
|
713
738
|
|
|
714
739
|
// The standard form for equality constraints is c(x) = 0, and the standard form
|
|
@@ -2811,6 +2811,25 @@ Template Args:
|
|
|
2811
2811
|
|
|
2812
2812
|
)doc";
|
|
2813
2813
|
|
|
2814
|
+
static const char *mkd_doc_slp_if_else =
|
|
2815
|
+
R"doc(if_else() for Variables.
|
|
2816
|
+
|
|
2817
|
+
Returns t if cond(a, b) is true, otherwise f. The condition is
|
|
2818
|
+
evaluated on the values of a and b each time the result is evaluated,
|
|
2819
|
+
and the gradient only flows through the selected branch.
|
|
2820
|
+
|
|
2821
|
+
Args:
|
|
2822
|
+
cond: Condition evaluated on a and b.
|
|
2823
|
+
a: The condition's first argument.
|
|
2824
|
+
b: The condition's second argument.
|
|
2825
|
+
t: Value selected when cond(a, b) is true.
|
|
2826
|
+
f: Value selected when cond(a, b) is false.
|
|
2827
|
+
|
|
2828
|
+
Template Args:
|
|
2829
|
+
Scalar: Scalar type.
|
|
2830
|
+
|
|
2831
|
+
)doc";
|
|
2832
|
+
|
|
2814
2833
|
static const char *mkd_doc_slp_log =
|
|
2815
2834
|
R"doc(log() for Variables.
|
|
2816
2835
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/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
|
{sleipnirgroup_jormungandr-0.6.7.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/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.dev13 → sleipnirgroup_jormungandr-0.6.7.dev15}/src/util/pool.cpp
RENAMED
|
File without changes
|