22 #include <benchmark/benchmark.h>
28 void SetUp(benchmark::State & st)
32 const std::string RF =
"RLEG_LINK6";
34 const std::string LF =
"LLEG_LINK6";
37 ci_RF_6D = std::make_unique<pinocchio::RigidConstraintModel>(
39 ci_LF_6D = std::make_unique<pinocchio::RigidConstraintModel>(
42 contact_models_6D6D.clear();
43 contact_models_6D6D.push_back(*
ci_RF_6D);
44 contact_models_6D6D.push_back(*
ci_LF_6D);
46 contact_data_6D6D.clear();
66 std::unique_ptr<pinocchio::RigidConstraintModel>
ci_RF_6D;
67 std::unique_ptr<pinocchio::RigidConstraintModel>
ci_LF_6D;
93 & contact_models_6D6D,
96 contact.compute(
model,
data, contact_models_6D6D, contact_data_6D6D);
105 contact_chol_6D6D,
model,
data, contact_models_6D6D, contact_data_6D6D);
116 contact.inverse(H_inverse);
122 contact_chol_6D6D.compute(
model,
data, contact_models_6D6D, contact_data_6D6D);
123 Eigen::MatrixXd H_inverse(contact_chol_6D6D.size(), contact_chol_6D6D.size());
137 contact.getDelassusCholeskyExpression().updateDamping(damping);
141 benchmark::State & st)
144 contact_chol_6D6D.compute(
model,
data, contact_models_6D6D, contact_data_6D6D);
158 contact.getDelassusCholeskyExpression().solveInPlace(rhs_vector);
162 benchmark::State & st)
165 contact_chol_6D6D.compute(
model,
data, contact_models_6D6D, contact_data_6D6D);
205 col_major_llt.compute(col_major_square_matrices);
218 const Eigen::MatrixXd &
J,
219 const Eigen::MatrixXd & MJtJ_inv)
227 Eigen::MatrixXd
J(contact_chol_6D6D.constraintDim(),
model.nv);
230 Eigen::MatrixXd MJtJ_inv(
231 model.nv + contact_chol_6D6D.constraintDim(),
model.nv + contact_chol_6D6D.constraintDim());
234 Eigen::VectorXd gamma(contact_chol_6D6D.constraintDim());
255 const Eigen::VectorXd & q,
258 const Eigen::MatrixXd & damped_delassus_inverse)
266 Eigen::MatrixXd H_inverse(contact_chol_6D6D.size(), contact_chol_6D6D.size());
269 contact_chol_6D6D.compute(
model,
data, contact_models_6D6D, contact_data_6D6D, 1e-6);
270 contact_chol_6D6D.inverse(H_inverse);
272 Eigen::MatrixXd damped_delassus_inverse;
273 damped_delassus_inverse.resize(
274 contact_chol_6D6D.constraintDim(), contact_chol_6D6D.constraintDim());
281 model,
data,
q, contact_models_6D6D, contact_data_6D6D, damped_delassus_inverse);
292 const Eigen::VectorXd & q,
295 const Eigen::MatrixXd & damped_delassus_inverse)
302 benchmark::State & st)
304 Eigen::MatrixXd H_inverse(contact_chol_6D6D.size(), contact_chol_6D6D.size());
307 contact_chol_6D6D.compute(
model,
data, contact_models_6D6D, contact_data_6D6D, 1e-6);
308 contact_chol_6D6D.inverse(H_inverse);
310 Eigen::MatrixXd damped_delassus_inverse;
311 damped_delassus_inverse.resize(
312 contact_chol_6D6D.constraintDim(), contact_chol_6D6D.constraintDim());
319 model,
data,
q, contact_models_6D6D, contact_data_6D6D, damped_delassus_inverse);