sleipnirgroup-jormungandr 0.5.6.dev22__tar.gz → 0.5.6.dev23__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.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/PKG-INFO +1 -1
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/autodiff/expression.hpp +28 -19
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/src/sleipnir/__init__.py +1 -1
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/CMakeLists.txt +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/LICENSE.txt +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/README.md +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/SleipnirConfig.cmake.in +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/cmake/BuildTypes.cmake +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/cmake/CompilerFlags.cmake +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/cmake/Pybind11Mkdoc.cmake +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/cmake/SubdirList.cmake +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/cmake/arm-none-eabi.cmake +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/autodiff/expression_graph.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/autodiff/expression_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/autodiff/gradient.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/autodiff/gradient_expression_graph.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/autodiff/hessian.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/autodiff/jacobian.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/autodiff/sleipnir_base.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/autodiff/slice.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/autodiff/variable.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/autodiff/variable_block.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/autodiff/variable_matrix.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/multistart.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/ocp/dynamics_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/ocp/timestep_method.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/ocp/transcription_method.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/ocp.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/problem.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/solver/exit_status.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/solver/interior_point.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/solver/interior_point_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/solver/iteration_info.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/solver/newton.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/solver/newton_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/solver/options.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/solver/sqp.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/solver/sqp_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/solver/util/all_finite.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/solver/util/append_as_triplets.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/solver/util/bounds.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/solver/util/dense_regularized_ldlt.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/solver/util/feasibility_restoration.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/solver/util/filter.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/solver/util/fraction_to_the_boundary_rule.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/solver/util/inertia.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/solver/util/is_locally_infeasible.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/solver/util/kkt_error.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/solver/util/lagrange_multiplier_estimate.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/solver/util/problem_scaling.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/solver/util/regularized_ldlt.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/solver/util/sparse_inf_norms.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/optimization/solver/util/sparse_regularized_ldlt.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/util/assert.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/util/concepts.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/util/empty.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/util/function_ref.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/util/intrusive_shared_ptr.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/util/pool.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/util/print.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/util/print_diagnostics.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/util/profiler.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/util/scope_exit.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/util/spy.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/include/sleipnir/util/symbol_exports.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/pyproject.toml +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/cpp/autodiff/bind_expression_type.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/cpp/autodiff/bind_gradient.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/cpp/autodiff/bind_hessian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/cpp/autodiff/bind_jacobian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/cpp/autodiff/bind_variable.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/cpp/autodiff/bind_variable_block.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/cpp/autodiff/bind_variable_matrix.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/cpp/binders.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/cpp/docstrings.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/cpp/for_each_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/cpp/main.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/cpp/optimization/bind_equality_constraints.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/cpp/optimization/bind_inequality_constraints.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/cpp/optimization/bind_ocp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/cpp/optimization/bind_problem.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/cpp/optimization/ocp/bind_dynamics_type.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/cpp/optimization/ocp/bind_timestep_method.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/cpp/optimization/ocp/bind_transcription_method.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/cpp/optimization/solver/bind_exit_status.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/cpp/optimization/solver/bind_iteration_info.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/cpp/try_cast.hpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/src/sleipnir/autodiff/__init__.py +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/src/sleipnir/optimization/__init__.py +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/test/autodiff/gradient_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/test/autodiff/hessian_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/test/autodiff/jacobian_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/test/autodiff/variable_matrix_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/test/autodiff/variable_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/test/optimization/arm_on_elevator_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/test/optimization/cart_pole_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/test/optimization/cart_pole_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/test/optimization/cart_pole_util.py +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/test/optimization/constraints_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/test/optimization/decision_variable_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/test/optimization/differential_drive_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/test/optimization/differential_drive_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/test/optimization/differential_drive_util.py +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/test/optimization/double_integrator_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/test/optimization/flywheel_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/test/optimization/flywheel_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/test/optimization/linear_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/test/optimization/multistart_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/test/optimization/nonlinear_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/test/optimization/problem_spy_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/test/optimization/quadratic_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/test/optimization/rk4.py +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/test/optimization/solver/exit_status_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/python/test/optimization/trivial_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/src/autodiff/gradient.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/src/autodiff/hessian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/src/autodiff/jacobian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/src/autodiff/variable_matrix.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/src/optimization/ocp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/src/optimization/problem.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/src/optimization/solver/interior_point.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/src/optimization/solver/newton.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/src/optimization/solver/sqp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/src/util/pool.cpp +0 -0
|
@@ -153,14 +153,16 @@ struct Expression {
|
|
|
153
153
|
|
|
154
154
|
// Prune expression
|
|
155
155
|
if (lhs->is_constant(Scalar(0))) {
|
|
156
|
-
// Return zero
|
|
156
|
+
// Return zero, which lhs currently is
|
|
157
157
|
return lhs;
|
|
158
158
|
} else if (rhs->is_constant(Scalar(0))) {
|
|
159
|
-
// Return zero
|
|
159
|
+
// Return zero, which rhs currently is
|
|
160
160
|
return rhs;
|
|
161
161
|
} else if (lhs->is_constant(Scalar(1))) {
|
|
162
|
+
// Return rhs unmodified
|
|
162
163
|
return rhs;
|
|
163
164
|
} else if (rhs->is_constant(Scalar(1))) {
|
|
165
|
+
// Return lhs unmodified
|
|
164
166
|
return lhs;
|
|
165
167
|
}
|
|
166
168
|
|
|
@@ -203,9 +205,10 @@ struct Expression {
|
|
|
203
205
|
|
|
204
206
|
// Prune expression
|
|
205
207
|
if (lhs->is_constant(Scalar(0))) {
|
|
206
|
-
// Return zero
|
|
208
|
+
// Return zero, which lhs currently is
|
|
207
209
|
return lhs;
|
|
208
210
|
} else if (rhs->is_constant(Scalar(1))) {
|
|
211
|
+
// Return lhs unmodified
|
|
209
212
|
return lhs;
|
|
210
213
|
}
|
|
211
214
|
|
|
@@ -236,10 +239,13 @@ struct Expression {
|
|
|
236
239
|
const ExpressionPtr<Scalar>& rhs) {
|
|
237
240
|
using enum ExpressionType;
|
|
238
241
|
|
|
239
|
-
// Prune expression
|
|
242
|
+
// Prune expression. We check for nullptr because operator+ is used in
|
|
243
|
+
// adjoint accumulation, and child nodes can be null.
|
|
240
244
|
if (lhs == nullptr || lhs->is_constant(Scalar(0))) {
|
|
245
|
+
// Return rhs unmodified
|
|
241
246
|
return rhs;
|
|
242
247
|
} else if (rhs == nullptr || rhs->is_constant(Scalar(0))) {
|
|
248
|
+
// Return lhs unmodified
|
|
243
249
|
return lhs;
|
|
244
250
|
}
|
|
245
251
|
|
|
@@ -281,12 +287,14 @@ struct Expression {
|
|
|
281
287
|
// Prune expression
|
|
282
288
|
if (lhs->is_constant(Scalar(0))) {
|
|
283
289
|
if (rhs->is_constant(Scalar(0))) {
|
|
284
|
-
// Return zero
|
|
290
|
+
// Return zero, which rhs currently is
|
|
285
291
|
return rhs;
|
|
286
292
|
} else {
|
|
293
|
+
// Return rhs negated
|
|
287
294
|
return -rhs;
|
|
288
295
|
}
|
|
289
296
|
} else if (rhs->is_constant(Scalar(0))) {
|
|
297
|
+
// Return lhs unmodified
|
|
290
298
|
return lhs;
|
|
291
299
|
}
|
|
292
300
|
|
|
@@ -316,7 +324,7 @@ struct Expression {
|
|
|
316
324
|
|
|
317
325
|
// Prune expression
|
|
318
326
|
if (lhs->is_constant(Scalar(0))) {
|
|
319
|
-
// Return zero
|
|
327
|
+
// Return zero, which lhs currently is
|
|
320
328
|
return lhs;
|
|
321
329
|
}
|
|
322
330
|
|
|
@@ -825,7 +833,7 @@ ExpressionPtr<Scalar> abs(const ExpressionPtr<Scalar>& x) {
|
|
|
825
833
|
|
|
826
834
|
// Prune expression
|
|
827
835
|
if (x->is_constant(Scalar(0))) {
|
|
828
|
-
// Return zero
|
|
836
|
+
// Return zero, which x currently is
|
|
829
837
|
return x;
|
|
830
838
|
}
|
|
831
839
|
|
|
@@ -934,7 +942,7 @@ ExpressionPtr<Scalar> asin(const ExpressionPtr<Scalar>& x) {
|
|
|
934
942
|
|
|
935
943
|
// Prune expression
|
|
936
944
|
if (x->is_constant(Scalar(0))) {
|
|
937
|
-
// Return zero
|
|
945
|
+
// Return zero, which x currently is
|
|
938
946
|
return x;
|
|
939
947
|
}
|
|
940
948
|
|
|
@@ -988,7 +996,7 @@ ExpressionPtr<Scalar> atan(const ExpressionPtr<Scalar>& x) {
|
|
|
988
996
|
|
|
989
997
|
// Prune expression
|
|
990
998
|
if (x->is_constant(Scalar(0))) {
|
|
991
|
-
// Return zero
|
|
999
|
+
// Return zero, which x currently is
|
|
992
1000
|
return x;
|
|
993
1001
|
}
|
|
994
1002
|
|
|
@@ -1056,7 +1064,7 @@ ExpressionPtr<Scalar> atan2(const ExpressionPtr<Scalar>& y,
|
|
|
1056
1064
|
|
|
1057
1065
|
// Prune expression
|
|
1058
1066
|
if (y->is_constant(Scalar(0))) {
|
|
1059
|
-
// Return zero
|
|
1067
|
+
// Return zero, which y currently is
|
|
1060
1068
|
return y;
|
|
1061
1069
|
} else if (x->is_constant(Scalar(0))) {
|
|
1062
1070
|
return constant_ptr(Scalar(std::numbers::pi) / Scalar(2));
|
|
@@ -1223,7 +1231,7 @@ ExpressionPtr<Scalar> erf(const ExpressionPtr<Scalar>& x) {
|
|
|
1223
1231
|
|
|
1224
1232
|
// Prune expression
|
|
1225
1233
|
if (x->is_constant(Scalar(0))) {
|
|
1226
|
-
// Return zero
|
|
1234
|
+
// Return zero, which x currently is
|
|
1227
1235
|
return x;
|
|
1228
1236
|
}
|
|
1229
1237
|
|
|
@@ -1406,7 +1414,7 @@ ExpressionPtr<Scalar> log(const ExpressionPtr<Scalar>& x) {
|
|
|
1406
1414
|
|
|
1407
1415
|
// Prune expression
|
|
1408
1416
|
if (x->is_constant(Scalar(0))) {
|
|
1409
|
-
// Return zero
|
|
1417
|
+
// Return zero, which x currently is
|
|
1410
1418
|
return x;
|
|
1411
1419
|
}
|
|
1412
1420
|
|
|
@@ -1460,7 +1468,7 @@ ExpressionPtr<Scalar> log10(const ExpressionPtr<Scalar>& x) {
|
|
|
1460
1468
|
|
|
1461
1469
|
// Prune expression
|
|
1462
1470
|
if (x->is_constant(Scalar(0))) {
|
|
1463
|
-
// Return zero
|
|
1471
|
+
// Return zero, which x currently is
|
|
1464
1472
|
return x;
|
|
1465
1473
|
}
|
|
1466
1474
|
|
|
@@ -1708,15 +1716,16 @@ ExpressionPtr<Scalar> pow(const ExpressionPtr<Scalar>& base,
|
|
|
1708
1716
|
|
|
1709
1717
|
// Prune expression
|
|
1710
1718
|
if (base->is_constant(Scalar(0))) {
|
|
1711
|
-
// Return zero
|
|
1719
|
+
// Return zero, which base currently is
|
|
1712
1720
|
return base;
|
|
1713
1721
|
} else if (base->is_constant(Scalar(1))) {
|
|
1714
|
-
// Return one
|
|
1722
|
+
// Return one, which base currently is
|
|
1715
1723
|
return base;
|
|
1716
1724
|
}
|
|
1717
1725
|
if (power->is_constant(Scalar(0))) {
|
|
1718
1726
|
return constant_ptr(Scalar(1));
|
|
1719
1727
|
} else if (power->is_constant(Scalar(1))) {
|
|
1728
|
+
// Return base unmodified
|
|
1720
1729
|
return base;
|
|
1721
1730
|
}
|
|
1722
1731
|
|
|
@@ -1828,7 +1837,7 @@ ExpressionPtr<Scalar> sin(const ExpressionPtr<Scalar>& x) {
|
|
|
1828
1837
|
|
|
1829
1838
|
// Prune expression
|
|
1830
1839
|
if (x->is_constant(Scalar(0))) {
|
|
1831
|
-
// Return zero
|
|
1840
|
+
// Return zero, which x currently is
|
|
1832
1841
|
return x;
|
|
1833
1842
|
}
|
|
1834
1843
|
|
|
@@ -1883,7 +1892,7 @@ ExpressionPtr<Scalar> sinh(const ExpressionPtr<Scalar>& x) {
|
|
|
1883
1892
|
|
|
1884
1893
|
// Prune expression
|
|
1885
1894
|
if (x->is_constant(Scalar(0))) {
|
|
1886
|
-
// Return zero
|
|
1895
|
+
// Return zero, which x currently is
|
|
1887
1896
|
return x;
|
|
1888
1897
|
}
|
|
1889
1898
|
|
|
@@ -1997,7 +2006,7 @@ ExpressionPtr<Scalar> tan(const ExpressionPtr<Scalar>& x) {
|
|
|
1997
2006
|
|
|
1998
2007
|
// Prune expression
|
|
1999
2008
|
if (x->is_constant(Scalar(0))) {
|
|
2000
|
-
// Return zero
|
|
2009
|
+
// Return zero, which x currently is
|
|
2001
2010
|
return x;
|
|
2002
2011
|
}
|
|
2003
2012
|
|
|
@@ -2055,7 +2064,7 @@ ExpressionPtr<Scalar> tanh(const ExpressionPtr<Scalar>& x) {
|
|
|
2055
2064
|
|
|
2056
2065
|
// Prune expression
|
|
2057
2066
|
if (x->is_constant(Scalar(0))) {
|
|
2058
|
-
// Return zero
|
|
2067
|
+
// Return zero, which x currently is
|
|
2059
2068
|
return x;
|
|
2060
2069
|
}
|
|
2061
2070
|
|
{sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/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
|
|
File without changes
|
|
File without changes
|
{sleipnirgroup_jormungandr-0.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/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.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/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.5.6.dev22 → sleipnirgroup_jormungandr-0.5.6.dev23}/src/util/pool.cpp
RENAMED
|
File without changes
|