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);