Directory: | ./ |
---|---|
File: | include/pinocchio/multibody/data.hxx |
Date: | 2025-02-12 21:03:38 |
Exec | Total | Coverage | |
---|---|---|---|
Lines: | 233 | 233 | 100.0% |
Branches: | 426 | 840 | 50.7% |
Line | Branch | Exec | Source |
---|---|---|---|
1 | // | ||
2 | // Copyright (c) 2015-2024 CNRS INRIA | ||
3 | // Copyright (c) 2015 Wandercraft, 86 rue de Paris 91400 Orsay, France. | ||
4 | // | ||
5 | |||
6 | #ifndef __pinocchio_multibody_data_hxx__ | ||
7 | #define __pinocchio_multibody_data_hxx__ | ||
8 | |||
9 | #include "pinocchio/spatial/fwd.hpp" | ||
10 | #include "pinocchio/multibody/model.hpp" | ||
11 | #include "pinocchio/utils/string-generator.hpp" | ||
12 | #include "pinocchio/multibody/liegroup/liegroup-algo.hpp" | ||
13 | |||
14 | /// @cond DEV | ||
15 | |||
16 | namespace pinocchio | ||
17 | { | ||
18 | |||
19 | template<typename Scalar, int Options, template<typename, int> class JointCollectionTpl> | ||
20 | 861 | DataTpl<Scalar, Options, JointCollectionTpl>::DataTpl(const Model & model) | |
21 |
1/2✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
|
861 | : joints(0) |
22 |
2/4✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
|
861 | , a((std::size_t)model.njoints, Motion::Zero()) |
23 |
2/4✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
|
861 | , oa((std::size_t)model.njoints, Motion::Zero()) |
24 |
2/4✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
|
861 | , oa_drift((std::size_t)model.njoints, Motion::Zero()) |
25 |
2/4✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
|
861 | , oa_augmented((std::size_t)model.njoints, Motion::Zero()) |
26 |
2/4✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
|
861 | , a_gf((std::size_t)model.njoints, Motion::Zero()) |
27 |
2/4✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
|
861 | , oa_gf((std::size_t)model.njoints, Motion::Zero()) |
28 |
2/4✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
|
861 | , v((std::size_t)model.njoints, Motion::Zero()) |
29 |
2/4✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
|
861 | , ov((std::size_t)model.njoints, Motion::Zero()) |
30 |
2/4✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
|
861 | , f((std::size_t)model.njoints, Force::Zero()) |
31 |
2/4✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
|
861 | , of((std::size_t)model.njoints, Force::Zero()) |
32 |
2/4✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
|
861 | , of_augmented((std::size_t)model.njoints, Force::Zero()) |
33 |
2/4✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
|
861 | , h((std::size_t)model.njoints, Force::Zero()) |
34 |
2/4✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
|
861 | , oh((std::size_t)model.njoints, Force::Zero()) |
35 |
2/4✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
|
861 | , oMi((std::size_t)model.njoints, SE3::Identity()) |
36 |
2/4✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
|
861 | , liMi((std::size_t)model.njoints, SE3::Identity()) |
37 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , tau(VectorXs::Zero(model.nv)) |
38 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , nle(VectorXs::Zero(model.nv)) |
39 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , g(VectorXs::Zero(model.nv)) |
40 |
2/4✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
|
861 | , oMf((std::size_t)model.nframes, SE3::Identity()) |
41 |
2/4✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
|
861 | , Ycrb((std::size_t)model.njoints, Inertia::Zero()) |
42 |
3/6✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 861 times.
✗ Branch 9 not taken.
|
861 | , dYcrb((std::size_t)model.njoints, Inertia::Zero()) |
43 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , M(MatrixXs::Zero(model.nv, model.nv)) |
44 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , Minv(MatrixXs::Zero(model.nv, model.nv)) |
45 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , C(MatrixXs::Zero(model.nv, model.nv)) |
46 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , dHdq(Matrix6x::Zero(6, model.nv)) |
47 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , dFdq(Matrix6x::Zero(6, model.nv)) |
48 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , dFdv(Matrix6x::Zero(6, model.nv)) |
49 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , dFda(Matrix6x::Zero(6, model.nv)) |
50 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , SDinv(Matrix6x::Zero(6, model.nv)) |
51 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , UDinv(Matrix6x::Zero(6, model.nv)) |
52 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , IS(MatrixXs::Zero(6, model.nv)) |
53 |
3/6✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 861 times.
✗ Branch 9 not taken.
|
861 | , vxI((std::size_t)model.njoints, Inertia::Matrix6::Zero()) |
54 |
3/6✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 861 times.
✗ Branch 9 not taken.
|
861 | , Ivx((std::size_t)model.njoints, Inertia::Matrix6::Zero()) |
55 |
3/6✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 861 times.
✗ Branch 9 not taken.
|
861 | , B((std::size_t)model.njoints, Inertia::Matrix6::Zero()) |
56 |
2/4✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
|
861 | , oinertias((std::size_t)model.njoints, Inertia::Zero()) |
57 |
2/4✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
|
861 | , oYcrb((std::size_t)model.njoints, Inertia::Zero()) |
58 |
3/6✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 861 times.
✗ Branch 9 not taken.
|
861 | , doYcrb((std::size_t)model.njoints, Inertia::Matrix6::Zero()) |
59 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , ddq(VectorXs::Zero(model.nv)) |
60 |
3/6✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 861 times.
✗ Branch 9 not taken.
|
861 | , Yaba((std::size_t)model.njoints, Inertia::Matrix6::Zero()) |
61 |
3/6✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 861 times.
✗ Branch 9 not taken.
|
861 | , oYaba((std::size_t)model.njoints, Inertia::Matrix6::Zero()) |
62 |
3/6✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 861 times.
✗ Branch 9 not taken.
|
861 | , oL((std::size_t)model.njoints, Inertia::Matrix6::Zero()) |
63 |
3/6✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 861 times.
✗ Branch 9 not taken.
|
861 | , oK((std::size_t)model.njoints, Inertia::Matrix6::Zero()) |
64 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , u(VectorXs::Zero(model.nv)) |
65 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , Ag(Matrix6x::Zero(6, model.nv)) |
66 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , dAg(Matrix6x::Zero(6, model.nv)) |
67 |
1/2✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
|
861 | , hg(Force::Zero()) |
68 |
1/2✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
|
861 | , dhg(Force::Zero()) |
69 |
1/2✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
|
861 | , Ig(Inertia::Zero()) |
70 |
3/6✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 861 times.
✗ Branch 9 not taken.
|
861 | , Fcrb((std::size_t)model.njoints, Matrix6x::Zero(6, model.nv)) |
71 |
1/2✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
|
861 | , lastChild((std::size_t)model.njoints, -1) |
72 |
1/2✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
|
861 | , nvSubtree((std::size_t)model.njoints, -1) |
73 |
1/2✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
|
861 | , start_idx_v_fromRow((std::size_t)model.nv, -1) |
74 |
1/2✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
|
861 | , end_idx_v_fromRow((std::size_t)model.nv, -1) |
75 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , U(MatrixXs::Identity(model.nv, model.nv)) |
76 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , D(VectorXs::Zero(model.nv)) |
77 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , Dinv(VectorXs::Zero(model.nv)) |
78 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , tmp(VectorXs::Zero(model.nv)) |
79 |
1/2✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
|
861 | , parents_fromRow((std::size_t)model.nv, -1) |
80 |
1/2✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
|
861 | , supports_fromRow((std::size_t)model.nv) |
81 |
1/2✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
|
861 | , nvSubtree_fromRow((std::size_t)model.nv, -1) |
82 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , J(Matrix6x::Zero(6, model.nv)) |
83 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , dJ(Matrix6x::Zero(6, model.nv)) |
84 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , ddJ(Matrix6x::Zero(6, model.nv)) |
85 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , psid(Matrix6x::Zero(6, model.nv)) |
86 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , psidd(Matrix6x::Zero(6, model.nv)) |
87 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , dVdq(Matrix6x::Zero(6, model.nv)) |
88 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , dAdq(Matrix6x::Zero(6, model.nv)) |
89 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , dAdv(Matrix6x::Zero(6, model.nv)) |
90 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , dtau_dq(RowMatrixXs::Zero(model.nv, model.nv)) |
91 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , dtau_dv(RowMatrixXs::Zero(model.nv, model.nv)) |
92 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , ddq_dq(RowMatrixXs::Zero(model.nv, model.nv)) |
93 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , ddq_dv(RowMatrixXs::Zero(model.nv, model.nv)) |
94 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , ddq_dtau(RowMatrixXs::Zero(model.nv, model.nv)) |
95 |
2/4✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
|
861 | , iMf((std::size_t)model.njoints, SE3::Identity()) |
96 |
3/6✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 861 times.
✗ Branch 9 not taken.
|
861 | , com((std::size_t)model.njoints, Vector3::Zero()) |
97 |
3/6✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 861 times.
✗ Branch 9 not taken.
|
861 | , vcom((std::size_t)model.njoints, Vector3::Zero()) |
98 |
3/6✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 861 times.
✗ Branch 9 not taken.
|
861 | , acom((std::size_t)model.njoints, Vector3::Zero()) |
99 |
2/4✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 16 times.
✗ Branch 6 not taken.
|
861 | , mass((std::size_t)model.njoints, (Scalar)(-1)) |
100 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , Jcom(Matrix3x::Zero(3, model.nv)) |
101 |
1/2✓ Branch 1 taken 16 times.
✗ Branch 2 not taken.
|
861 | , kinetic_energy(Scalar(0)) |
102 |
1/2✓ Branch 1 taken 16 times.
✗ Branch 2 not taken.
|
861 | , potential_energy(Scalar(0)) |
103 |
1/2✓ Branch 1 taken 16 times.
✗ Branch 2 not taken.
|
861 | , mechanical_energy(Scalar(0)) |
104 |
1/2✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
|
861 | , JMinvJt() |
105 |
1/2✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
|
861 | , llt_JMinvJt() |
106 |
1/2✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
|
861 | , lambda_c() |
107 |
1/2✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
|
861 | , lambda_c_prox() |
108 |
1/2✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
|
861 | , diff_lambda_c() |
109 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , sDUiJt(MatrixXs::Zero(model.nv, model.nv)) |
110 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , torque_residual(VectorXs::Zero(model.nv)) |
111 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , dq_after(VectorXs::Zero(model.nv)) |
112 |
1/2✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
|
861 | , impulse_c() |
113 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , staticRegressor(Matrix3x::Zero(3, 4 * (model.njoints - 1))) |
114 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , bodyRegressor(BodyRegressorType::Zero()) |
115 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , jointTorqueRegressor(MatrixXs::Zero(model.nv, 10 * (model.njoints - 1))) |
116 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , kineticEnergyRegressor(RowVectorXs::Zero(10 * (model.njoints - 1))) |
117 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
|
861 | , potentialEnergyRegressor(RowVectorXs::Zero(10 * (model.njoints - 1))) |
118 |
3/6✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 861 times.
✗ Branch 9 not taken.
|
861 | , KA((std::size_t)model.njoints, Matrix6x::Zero(6, 0)) |
119 |
3/6✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 861 times.
✗ Branch 9 not taken.
|
861 | , LA((std::size_t)model.njoints, MatrixXs::Zero(0, 0)) |
120 |
3/6✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 861 times.
✗ Branch 9 not taken.
|
861 | , lA((std::size_t)model.njoints, VectorXs::Zero(0)) |
121 |
3/6✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 861 times.
✗ Branch 9 not taken.
|
861 | , lambdaA((std::size_t)model.njoints, VectorXs::Zero(0)) |
122 |
1/2✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
|
861 | , par_cons_ind((std::size_t)model.njoints, 0) |
123 |
2/4✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
|
861 | , a_bias((std::size_t)model.njoints, Motion::Zero()) |
124 |
3/6✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 861 times.
✗ Branch 9 not taken.
|
861 | , KAS((std::size_t)model.njoints, MatrixXs::Zero(0, 0)) |
125 | #if EIGEN_VERSION_AT_LEAST(3, 2, 90) && !EIGEN_VERSION_AT_LEAST(3, 2, 93) | ||
126 | , kinematic_hessians( | ||
127 | 6, | ||
128 | std::max(1, model.nv), | ||
129 | std::max(1, model.nv)) // the minimum size should be 1 for compatibility reasons | ||
130 | , d2tau_dqdq( | ||
131 | std::max(1, model.nv), | ||
132 | std::max(1, model.nv), | ||
133 | std::max(1, model.nv)) // the minimum size should be 1 for compatibility reasons | ||
134 | , d2tau_dvdv( | ||
135 | std::max(1, model.nv), | ||
136 | std::max(1, model.nv), | ||
137 | std::max(1, model.nv)) // the minimum size should be 1 for compatibility reasons | ||
138 | , d2tau_dqdv( | ||
139 | std::max(1, model.nv), | ||
140 | std::max(1, model.nv), | ||
141 | std::max(1, model.nv)) // the minimum size should be 1 for compatibility reasons | ||
142 | , d2tau_dadq( | ||
143 | std::max(1, model.nv), | ||
144 | std::max(1, model.nv), | ||
145 | std::max(1, model.nv)) // the minimum size should be 1 for compatibility reasons | ||
146 | #else | ||
147 |
1/2✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
|
861 | , kinematic_hessians(6, model.nv, model.nv) |
148 |
1/2✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
|
861 | , d2tau_dqdq(model.nv, model.nv, model.nv) |
149 |
1/2✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
|
861 | , d2tau_dvdv(model.nv, model.nv, model.nv) |
150 |
1/2✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
|
861 | , d2tau_dqdv(model.nv, model.nv, model.nv) |
151 |
1/2✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
|
861 | , d2tau_dadq(model.nv, model.nv, model.nv) |
152 | #endif | ||
153 |
3/6✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 861 times.
✗ Branch 9 not taken.
|
861 | , extended_motion_propagator((std::size_t)model.njoints, Matrix6::Zero()) |
154 |
3/6✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 861 times.
✗ Branch 9 not taken.
|
861 | , extended_motion_propagator2((std::size_t)model.njoints, Matrix6::Zero()) |
155 |
3/6✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 861 times.
✗ Branch 9 not taken.
|
861 | , spatial_inv_inertia((std::size_t)model.njoints, Matrix6::Zero()) |
156 |
1/2✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
|
861 | , accumulation_descendant((std::size_t)model.njoints, 0) |
157 |
1/2✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
|
861 | , accumulation_ancestor((std::size_t)model.njoints, 0) |
158 |
1/2✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
|
861 | , constraints_supported_dim((std::size_t)model.njoints, 0) |
159 |
1/2✓ Branch 2 taken 861 times.
✗ Branch 3 not taken.
|
861 | , constraints_supported((std::size_t)model.njoints) |
160 |
23/46✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 861 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 861 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 861 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 861 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 861 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 861 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 861 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 861 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 861 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 861 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 861 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 861 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 861 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 861 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 861 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 861 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 861 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 861 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 861 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 861 times.
✗ Branch 62 not taken.
✓ Branch 64 taken 861 times.
✗ Branch 65 not taken.
✓ Branch 68 taken 861 times.
✗ Branch 69 not taken.
|
5166 | , constraints_on_joint((std::size_t)model.njoints) |
161 | { | ||
162 | typedef typename Model::JointIndex JointIndex; | ||
163 | |||
164 | /* Create data structure associated to the joints */ | ||
165 |
2/2✓ Branch 0 taken 21896 times.
✓ Branch 1 taken 861 times.
|
22757 | for (JointIndex i = 0; i < (JointIndex)(model.njoints); ++i) |
166 |
2/4✓ Branch 2 taken 21896 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 21896 times.
✗ Branch 6 not taken.
|
21896 | joints.push_back(CreateJointData<Scalar, Options, JointCollectionTpl>::run(model.joints[i])); |
167 | |||
168 | /* Init for CRBA */ | ||
169 |
1/2✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
|
861 | M.setZero(); |
170 |
1/2✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
|
861 | Minv.setZero(); |
171 |
2/2✓ Branch 0 taken 21896 times.
✓ Branch 1 taken 861 times.
|
22757 | for (JointIndex i = 0; i < (JointIndex)(model.njoints); ++i) |
172 | { | ||
173 |
1/2✓ Branch 2 taken 21896 times.
✗ Branch 3 not taken.
|
21896 | Fcrb[i].resize(6, model.nv); |
174 | } | ||
175 | |||
176 |
1/2✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
|
861 | computeLastChild(model); |
177 | |||
178 | /* Init for Cholesky */ | ||
179 |
1/2✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
|
861 | computeParents_fromRow(model); |
180 |
1/2✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
|
861 | computeSupports_fromRow(model); |
181 | |||
182 | /* Init universe states relatively to itself */ | ||
183 |
2/4✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 861 times.
✗ Branch 6 not taken.
|
861 | a_gf[0] = -model.gravity; |
184 | |||
185 |
1/2✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
|
861 | kinematic_hessians.setZero(); |
186 |
1/2✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
|
861 | d2tau_dqdq.setZero(); |
187 |
1/2✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
|
861 | d2tau_dvdv.setZero(); |
188 |
1/2✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
|
861 | d2tau_dqdv.setZero(); |
189 |
1/2✓ Branch 1 taken 861 times.
✗ Branch 2 not taken.
|
861 | d2tau_dadq.setZero(); |
190 | 861 | } | |
191 | |||
192 | template<typename Scalar, int Options, template<typename, int> class JointCollectionTpl> | ||
193 | 861 | inline void DataTpl<Scalar, Options, JointCollectionTpl>::computeLastChild(const Model & model) | |
194 | { | ||
195 | typedef typename Model::Index Index; | ||
196 | |||
197 |
1/2✓ Branch 3 taken 861 times.
✗ Branch 4 not taken.
|
861 | std::fill(lastChild.begin(), lastChild.end(), -1); |
198 |
2/2✓ Branch 0 taken 21896 times.
✓ Branch 1 taken 861 times.
|
22757 | for (int i = model.njoints - 1; i >= 0; --i) |
199 | { | ||
200 |
2/2✓ Branch 1 taken 3186 times.
✓ Branch 2 taken 18710 times.
|
21896 | if (lastChild[(Index)i] == -1) |
201 | 3186 | lastChild[(Index)i] = i; | |
202 | 21896 | const Index & parent = model.parents[(Index)i]; | |
203 | 21896 | lastChild[parent] = std::max<int>(lastChild[(Index)i], lastChild[parent]); | |
204 | |||
205 | 43792 | nvSubtree[(Index)i] = model.joints[(Index)lastChild[(Index)i]].idx_v() | |
206 | 21896 | + model.joints[(Index)lastChild[(Index)i]].nv() | |
207 | 21896 | - model.joints[(Index)i].idx_v(); | |
208 | } | ||
209 | 861 | } | |
210 | |||
211 | template<typename Scalar, int Options, template<typename, int> class JointCollectionTpl> | ||
212 | inline void | ||
213 | 861 | DataTpl<Scalar, Options, JointCollectionTpl>::computeParents_fromRow(const Model & model) | |
214 | { | ||
215 | typedef typename Model::Index Index; | ||
216 | |||
217 |
2/2✓ Branch 0 taken 21035 times.
✓ Branch 1 taken 861 times.
|
21896 | for (Index joint = 1; joint < (Index)(model.njoints); joint++) |
218 | { | ||
219 | 21035 | const Index & parent = model.parents[joint]; | |
220 | 21035 | const int nvj = model.joints[joint].nv(); | |
221 | 21035 | const int idx_vj = model.joints[joint].idx_v(); | |
222 | |||
223 |
2/4✓ Branch 0 taken 21035 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 21035 times.
✗ Branch 3 not taken.
|
21035 | assert(idx_vj >= 0 && idx_vj < model.nv); |
224 |
2/2✓ Branch 0 taken 20186 times.
✓ Branch 1 taken 849 times.
|
21035 | if (parent > 0) |
225 | 20186 | parents_fromRow[(Index)idx_vj] = | |
226 | 20186 | model.joints[parent].idx_v() + model.joints[parent].nv() - 1; | |
227 | else | ||
228 | 849 | parents_fromRow[(Index)idx_vj] = -1; | |
229 | 21035 | nvSubtree_fromRow[(Index)idx_vj] = nvSubtree[joint]; | |
230 | |||
231 | 21035 | start_idx_v_fromRow[(size_t)idx_vj] = idx_vj; | |
232 | 21035 | end_idx_v_fromRow[(size_t)idx_vj] = idx_vj + nvj - 1; | |
233 |
2/2✓ Branch 0 taken 4036 times.
✓ Branch 1 taken 21035 times.
|
25071 | for (int row = 1; row < nvj; ++row) |
234 | { | ||
235 | 4036 | parents_fromRow[(size_t)(idx_vj + row)] = idx_vj + row - 1; | |
236 | 4036 | nvSubtree_fromRow[(size_t)(idx_vj + row)] = nvSubtree[joint] - row; | |
237 | 4036 | start_idx_v_fromRow[(size_t)(idx_vj + row)] = start_idx_v_fromRow[(size_t)idx_vj]; | |
238 | 4036 | end_idx_v_fromRow[(size_t)(idx_vj + row)] = end_idx_v_fromRow[(size_t)idx_vj]; | |
239 | } | ||
240 | } | ||
241 | 861 | } | |
242 | |||
243 | template<typename Scalar, int Options, template<typename, int> class JointCollectionTpl> | ||
244 | inline void | ||
245 | 861 | DataTpl<Scalar, Options, JointCollectionTpl>::computeSupports_fromRow(const Model & model) | |
246 | { | ||
247 | typedef typename Model::JointIndex JointIndex; | ||
248 | |||
249 |
2/2✓ Branch 0 taken 21035 times.
✓ Branch 1 taken 861 times.
|
21896 | for (JointIndex joint_id = 1; joint_id < (JointIndex)(model.njoints); joint_id++) |
250 | { | ||
251 |
1/2✓ Branch 2 taken 21035 times.
✗ Branch 3 not taken.
|
21035 | const int nvj = nv(model.joints[joint_id]); |
252 |
1/2✓ Branch 2 taken 21035 times.
✗ Branch 3 not taken.
|
21035 | const int idx_vj = idx_v(model.joints[joint_id]); |
253 | |||
254 |
2/4✓ Branch 0 taken 21035 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 21035 times.
✗ Branch 3 not taken.
|
21035 | assert(idx_vj >= 0 && idx_vj < model.nv); |
255 | |||
256 | 21035 | const int parent_fromRow = parents_fromRow[(size_t)idx_vj]; | |
257 | |||
258 |
2/2✓ Branch 0 taken 20184 times.
✓ Branch 1 taken 851 times.
|
21035 | if (parent_fromRow >= 0) |
259 |
1/2✓ Branch 3 taken 20184 times.
✗ Branch 4 not taken.
|
20184 | supports_fromRow[(size_t)idx_vj] = supports_fromRow[(size_t)parent_fromRow]; |
260 | |||
261 |
1/2✓ Branch 2 taken 21035 times.
✗ Branch 3 not taken.
|
21035 | supports_fromRow[(size_t)idx_vj].push_back(idx_vj); |
262 | |||
263 |
2/2✓ Branch 0 taken 4036 times.
✓ Branch 1 taken 21035 times.
|
25071 | for (int row = 1; row < nvj; ++row) |
264 | { | ||
265 |
1/2✓ Branch 3 taken 4036 times.
✗ Branch 4 not taken.
|
4036 | supports_fromRow[(size_t)(idx_vj + row)] = supports_fromRow[(size_t)(idx_vj + row - 1)]; |
266 |
1/2✓ Branch 2 taken 4036 times.
✗ Branch 3 not taken.
|
4036 | supports_fromRow[(size_t)(idx_vj + row)].push_back(idx_vj + row); |
267 | } | ||
268 | } | ||
269 | 861 | } | |
270 | |||
271 | template<typename Scalar, int Options, template<typename, int> class JointCollectionTpl> | ||
272 | 11 | bool operator==( | |
273 | const DataTpl<Scalar, Options, JointCollectionTpl> & data1, | ||
274 | const DataTpl<Scalar, Options, JointCollectionTpl> & data2) | ||
275 | { | ||
276 | 11 | bool value = | |
277 |
2/4✓ Branch 2 taken 11 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 11 times.
✗ Branch 6 not taken.
|
22 | data1.joints == data2.joints && data1.a == data2.a && data1.oa == data2.oa |
278 |
2/4✓ Branch 1 taken 11 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 11 times.
✗ Branch 5 not taken.
|
11 | && data1.oa_drift == data2.oa_drift && data1.oa_augmented == data2.oa_augmented |
279 |
3/6✓ Branch 1 taken 11 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 11 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 11 times.
✗ Branch 8 not taken.
|
11 | && data1.a_gf == data2.a_gf && data1.oa_gf == data2.oa_gf && data1.v == data2.v |
280 |
3/6✓ Branch 1 taken 11 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 11 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 11 times.
✗ Branch 8 not taken.
|
11 | && data1.ov == data2.ov && data1.f == data2.f && data1.of == data2.of |
281 |
3/6✓ Branch 1 taken 11 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 11 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 11 times.
✗ Branch 8 not taken.
|
11 | && data1.of_augmented == data2.of_augmented && data1.h == data2.h && data1.oh == data2.oh |
282 |
4/6✓ Branch 1 taken 10 times.
✓ Branch 2 taken 1 times.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
|
11 | && data1.oMi == data2.oMi && data1.liMi == data2.liMi && data1.tau == data2.tau |
283 |
3/6✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
|
10 | && data1.nle == data2.nle && data1.g == data2.g && data1.oMf == data2.oMf |
284 |
3/6✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
|
10 | && data1.Ycrb == data2.Ycrb && data1.dYcrb == data2.dYcrb && data1.M == data2.M |
285 |
3/6✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
|
10 | && data1.Minv == data2.Minv && data1.C == data2.C && data1.dHdq == data2.dHdq |
286 |
3/6✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
|
10 | && data1.dFdq == data2.dFdq && data1.dFdv == data2.dFdv && data1.dFda == data2.dFda |
287 |
3/6✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
|
10 | && data1.SDinv == data2.SDinv && data1.UDinv == data2.UDinv && data1.IS == data2.IS |
288 |
3/6✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
|
10 | && data1.vxI == data2.vxI && data1.Ivx == data2.Ivx && data1.oinertias == data2.oinertias |
289 |
3/6✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
|
10 | && data1.oYcrb == data2.oYcrb && data1.doYcrb == data2.doYcrb && data1.ddq == data2.ddq |
290 |
2/4✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
|
10 | && data1.Yaba == data2.Yaba && data1.oYaba == data2.oYaba |
291 |
3/6✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
|
10 | && data1.oYaba_contact == data2.oYaba_contact && data1.oL == data2.oL && data1.oK == data2.oK |
292 |
3/6✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
|
10 | && data1.u == data2.u && data1.Ag == data2.Ag && data1.dAg == data2.dAg |
293 |
3/6✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
|
10 | && data1.hg == data2.hg && data1.dhg == data2.dhg && data1.Ig == data2.Ig |
294 |
2/4✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
|
10 | && data1.Fcrb == data2.Fcrb && data1.lastChild == data2.lastChild |
295 |
1/2✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
|
10 | && data1.nvSubtree == data2.nvSubtree |
296 |
1/2✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
|
10 | && data1.start_idx_v_fromRow == data2.start_idx_v_fromRow |
297 |
2/4✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
|
10 | && data1.end_idx_v_fromRow == data2.end_idx_v_fromRow && data1.U == data2.U |
298 |
2/4✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
|
10 | && data1.D == data2.D && data1.Dinv == data2.Dinv |
299 |
1/2✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
|
10 | && data1.parents_fromRow == data2.parents_fromRow |
300 |
1/2✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
|
10 | && data1.supports_fromRow == data2.supports_fromRow |
301 |
2/4✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
|
10 | && data1.nvSubtree_fromRow == data2.nvSubtree_fromRow && data1.J == data2.J |
302 |
3/6✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
|
10 | && data1.dJ == data2.dJ && data1.ddJ == data2.ddJ && data1.psid == data2.psid |
303 |
3/6✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
|
10 | && data1.psidd == data2.psidd && data1.dVdq == data2.dVdq && data1.dAdq == data2.dAdq |
304 |
2/4✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
|
10 | && data1.dAdv == data2.dAdv && data1.dtau_dq == data2.dtau_dq |
305 |
2/4✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
|
10 | && data1.dtau_dv == data2.dtau_dv && data1.ddq_dq == data2.ddq_dq |
306 |
2/4✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
|
10 | && data1.ddq_dv == data2.ddq_dv && data1.dvc_dq == data2.dvc_dq |
307 |
2/4✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
|
10 | && data1.dac_dq == data2.dac_dq && data1.dac_dv == data2.dac_dv |
308 |
2/4✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
|
10 | && data1.dac_da == data2.dac_da && data1.osim == data2.osim |
309 |
2/4✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
|
10 | && data1.dlambda_dq == data2.dlambda_dq && data1.dlambda_dv == data2.dlambda_dv |
310 |
2/4✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
|
10 | && data1.dlambda_dtau == data2.dlambda_dtau && data1.dlambda_dx_prox == data2.dlambda_dx_prox |
311 |
3/6✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
|
10 | && data1.drhs_prox == data2.drhs_prox && data1.iMf == data2.iMf && data1.com == data2.com |
312 |
3/6✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
|
10 | && data1.vcom == data2.vcom && data1.acom == data2.acom && data1.mass == data2.mass |
313 |
2/4✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
|
10 | && data1.Jcom == data2.Jcom && data1.kinetic_energy == data2.kinetic_energy |
314 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
10 | && data1.potential_energy == data2.potential_energy |
315 |
2/4✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
|
10 | && data1.mechanical_energy == data2.mechanical_energy && data1.JMinvJt == data2.JMinvJt |
316 |
2/4✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
|
10 | && data1.lambda_c == data2.lambda_c && data1.lambda_c_prox == data2.lambda_c_prox |
317 |
2/4✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
|
10 | && data1.diff_lambda_c == data2.diff_lambda_c && data1.sDUiJt == data2.sDUiJt |
318 |
2/4✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
|
10 | && data1.torque_residual == data2.torque_residual && data1.dq_after == data2.dq_after |
319 |
2/4✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
|
10 | && data1.impulse_c == data2.impulse_c && data1.staticRegressor == data2.staticRegressor |
320 |
1/2✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
|
10 | && data1.bodyRegressor == data2.bodyRegressor |
321 |
1/2✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
|
10 | && data1.jointTorqueRegressor == data2.jointTorqueRegressor |
322 | // && data1.contact_chol == data2.contact_chol | ||
323 |
2/4✓ Branch 0 taken 11 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
|
22 | && data1.primal_dual_contact_solution == data2.primal_dual_contact_solution; |
324 | |||
325 | // operator== for Eigen::Tensor provides an Expression which might be not evaluated as a boolean | ||
326 |
2/6✓ Branch 1 taken 11 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 11 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
|
22 | value &= Tensor<bool, 0>((data1.kinematic_hessians == data2.kinematic_hessians).all())(0) |
327 |
6/14✓ Branch 1 taken 11 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 11 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 11 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 11 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 11 times.
✗ Branch 13 not taken.
✓ Branch 15 taken 11 times.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
|
22 | && Tensor<bool, 0>((data1.d2tau_dqdq == data2.d2tau_dqdq).all())(0) |
328 |
6/14✓ Branch 1 taken 11 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 11 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 11 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 11 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 11 times.
✗ Branch 13 not taken.
✓ Branch 15 taken 11 times.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
|
22 | && Tensor<bool, 0>((data1.d2tau_dvdv == data2.d2tau_dvdv).all())(0) |
329 |
6/14✓ Branch 1 taken 11 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 11 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 11 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 11 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 11 times.
✗ Branch 13 not taken.
✓ Branch 15 taken 11 times.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
|
22 | && Tensor<bool, 0>((data1.d2tau_dqdv == data2.d2tau_dqdv).all())(0) |
330 |
10/22✓ Branch 1 taken 11 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 11 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 11 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 11 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 11 times.
✗ Branch 13 not taken.
✓ Branch 15 taken 11 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 11 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 11 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 11 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 11 times.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
|
33 | && Tensor<bool, 0>((data1.d2tau_dadq == data2.d2tau_dadq).all())(0); |
331 | |||
332 | 11 | return value; | |
333 | } | ||
334 | |||
335 | template<typename Scalar, int Options, template<typename, int> class JointCollectionTpl> | ||
336 | 1 | bool operator!=( | |
337 | const DataTpl<Scalar, Options, JointCollectionTpl> & data1, | ||
338 | const DataTpl<Scalar, Options, JointCollectionTpl> & data2) | ||
339 | { | ||
340 | 1 | return !(data1 == data2); | |
341 | } | ||
342 | |||
343 | } // namespace pinocchio | ||
344 | |||
345 | /// @endcond | ||
346 | |||
347 | #endif // ifndef __pinocchio_multibody_data_hxx__ | ||
348 |