sleipnirgroup-jormungandr 0.6.5.dev24__tar.gz → 0.6.5.dev26__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.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/PKG-INFO +1 -1
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/autodiff/variable_matrix.hpp +7 -2
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/src/sleipnir/__init__.py +1 -1
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/test/autodiff/variable_matrix_test.py +27 -4
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/CMakeLists.txt +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/LICENSE.txt +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/README.md +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/SleipnirConfig.cmake.in +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/cmake/BuildTypes.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/cmake/CompilerFlags.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/cmake/Pybind11Mkdoc.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/cmake/SubdirList.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/cmake/arm-none-eabi.cmake +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/autodiff/expression.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/autodiff/expression_graph.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/autodiff/expression_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/autodiff/gradient.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/autodiff/hessian.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/autodiff/jacobian.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/autodiff/sleipnir_base.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/autodiff/slice.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/autodiff/variable.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/autodiff/variable_block.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/multistart.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/ocp/dynamics_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/ocp/timestep_method.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/ocp/transcription_method.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/ocp.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/problem.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/solver/exit_status.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/solver/interior_point.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/solver/interior_point_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/solver/iteration_info.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/solver/newton.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/solver/newton_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/solver/options.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/solver/sqp.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/solver/sqp_matrix_callbacks.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/solver/util/all_finite.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/solver/util/append_as_triplets.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/solver/util/bounds.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/solver/util/dense_regularized_ldlt.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/solver/util/feasibility_restoration.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/solver/util/filter.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/solver/util/fraction_to_the_boundary_rule.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/solver/util/inertia.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/solver/util/is_locally_infeasible.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/solver/util/kkt_error.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/solver/util/lagrange_multiplier_estimate.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/solver/util/problem_scaling.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/solver/util/regularized_ldlt.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/solver/util/sparse_inf_norms.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/optimization/solver/util/sparse_regularized_ldlt.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/util/assert.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/util/concepts.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/util/empty.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/util/function_ref.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/util/intrusive_shared_ptr.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/util/pool.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/util/print.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/util/print_diagnostics.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/util/profiler.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/util/scope_exit.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/util/spy.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/include/sleipnir/util/symbol_exports.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/pyproject.toml +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/cpp/autodiff/bind_expression_type.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/cpp/autodiff/bind_gradient.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/cpp/autodiff/bind_hessian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/cpp/autodiff/bind_jacobian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/cpp/autodiff/bind_variable.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/cpp/autodiff/bind_variable_block.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/cpp/autodiff/bind_variable_matrix.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/cpp/binders.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/cpp/docstrings.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/cpp/for_each_type.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/cpp/main.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/cpp/optimization/bind_equality_constraints.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/cpp/optimization/bind_inequality_constraints.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/cpp/optimization/bind_ocp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/cpp/optimization/bind_problem.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/cpp/optimization/ocp/bind_dynamics_type.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/cpp/optimization/ocp/bind_timestep_method.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/cpp/optimization/ocp/bind_transcription_method.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/cpp/optimization/solver/bind_exit_status.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/cpp/optimization/solver/bind_iteration_info.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/cpp/try_cast.hpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/src/sleipnir/autodiff/__init__.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/src/sleipnir/optimization/__init__.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/test/autodiff/gradient_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/test/autodiff/hessian_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/test/autodiff/jacobian_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/test/autodiff/variable_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/test/optimization/arm_on_elevator_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/test/optimization/cart_pole_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/test/optimization/cart_pole_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/test/optimization/cart_pole_util.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/test/optimization/constraints_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/test/optimization/decision_variable_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/test/optimization/differential_drive_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/test/optimization/differential_drive_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/test/optimization/differential_drive_util.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/test/optimization/double_integrator_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/test/optimization/flywheel_ocp_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/test/optimization/flywheel_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/test/optimization/linear_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/test/optimization/multistart_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/test/optimization/nonlinear_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/test/optimization/problem_spy_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/test/optimization/quadratic_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/test/optimization/rk4.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/test/optimization/solver/exit_status_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/python/test/optimization/trivial_problem_test.py +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/src/autodiff/gradient.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/src/autodiff/hessian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/src/autodiff/jacobian.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/src/autodiff/variable_matrix.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/src/optimization/ocp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/src/optimization/problem.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/src/optimization/solver/interior_point.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/src/optimization/solver/newton.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/src/optimization/solver/sqp.cpp +0 -0
- {sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/src/util/pool.cpp +0 -0
|
@@ -1116,8 +1116,13 @@ class VariableMatrix : public SleipnirBase {
|
|
|
1116
1116
|
A_pow *= *this;
|
|
1117
1117
|
}
|
|
1118
1118
|
|
|
1119
|
-
//
|
|
1120
|
-
|
|
1119
|
+
// https://mpmath.org/doc/current/calculus/approximation.html#mpmath.pade
|
|
1120
|
+
// defines the Padé approximant as exp(A)Q ≈ P, so:
|
|
1121
|
+
//
|
|
1122
|
+
// exp(A) ≈ P / Q
|
|
1123
|
+
// exp(A) ≈ (Qᵀ \ Pᵀ)ᵀ
|
|
1124
|
+
return VariableMatrix<Scalar>{
|
|
1125
|
+
Q.T().to_eigen().lu().solve(P.T().to_eigen()).transpose()};
|
|
1121
1126
|
}
|
|
1122
1127
|
|
|
1123
1128
|
#ifndef DOXYGEN_SHOULD_SKIP_THIS
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import math
|
|
2
|
+
|
|
1
3
|
import numpy as np
|
|
2
4
|
from sleipnir import autodiff
|
|
3
5
|
from sleipnir.autodiff import VariableMatrix
|
|
@@ -405,11 +407,10 @@ def test_cwise_reduce():
|
|
|
405
407
|
|
|
406
408
|
|
|
407
409
|
def test_exp():
|
|
410
|
+
# Scalar
|
|
408
411
|
A1 = VariableMatrix([[4.0]])
|
|
409
|
-
np.testing.assert_allclose(A1.exp().value()
|
|
410
|
-
np.testing.assert_allclose(
|
|
411
|
-
A1[:, :].exp().value() @ (-A1[:, :]).exp().value(), np.identity(1)
|
|
412
|
-
)
|
|
412
|
+
np.testing.assert_allclose(A1.exp().value(), np.array([[math.exp(4.0)]]))
|
|
413
|
+
np.testing.assert_allclose(A1[:, :].exp().value(), np.array([[math.exp(4.0)]]))
|
|
413
414
|
|
|
414
415
|
A2 = VariableMatrix([[0.0, 1.0], [0.0, -0.5]])
|
|
415
416
|
np.testing.assert_allclose(
|
|
@@ -442,6 +443,28 @@ def test_exp():
|
|
|
442
443
|
A5[:, :].exp().value() @ (-A5[:, :]).exp().value(), np.identity(2), atol=1e-12
|
|
443
444
|
)
|
|
444
445
|
|
|
446
|
+
# Pascal matrix
|
|
447
|
+
#
|
|
448
|
+
# ([0 0 0 0 0 0 0]) [1 0 0 0 0 0 0]
|
|
449
|
+
# ([1 0 0 0 0 0 0]) [1 1 0 0 0 0 0]
|
|
450
|
+
# ([0 2 0 0 0 0 0]) [1 2 1 0 0 0 0]
|
|
451
|
+
# exp([0 0 3 0 0 0 0]) = [1 3 3 1 0 0 0]
|
|
452
|
+
# ([0 0 0 4 0 0 0]) [1 4 6 4 1 0 0]
|
|
453
|
+
# ([0 0 0 0 5 0 0]) [1 5 10 10 5 1 0]
|
|
454
|
+
# ([0 0 0 0 0 6 0]) [1 6 15 20 15 6 1]
|
|
455
|
+
pascal = VariableMatrix.zero(7, 7)
|
|
456
|
+
for col in range(6):
|
|
457
|
+
pascal[col + 1, col] = col + 1
|
|
458
|
+
expected_pascal = np.zeros((7, 7))
|
|
459
|
+
expected_pascal[:, 0] = 1.0
|
|
460
|
+
for col in range(1, 7):
|
|
461
|
+
for row in range(col, 7):
|
|
462
|
+
expected_pascal[row, col] = (
|
|
463
|
+
expected_pascal[row - 1, col - 1] + expected_pascal[row - 1, col]
|
|
464
|
+
)
|
|
465
|
+
np.testing.assert_allclose(pascal.exp().value(), expected_pascal, atol=1e-14)
|
|
466
|
+
np.testing.assert_allclose(pascal[:, :].exp().value(), expected_pascal, atol=1e-14)
|
|
467
|
+
|
|
445
468
|
|
|
446
469
|
def test_block_free_function():
|
|
447
470
|
A = VariableMatrix([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
|
{sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/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
|
{sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/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.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/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
|
{sleipnirgroup_jormungandr-0.6.5.dev24 → sleipnirgroup_jormungandr-0.6.5.dev26}/src/util/pool.cpp
RENAMED
|
File without changes
|